public void detach() { IModel<Node> nodeModel = documentService.getModel(); if (nodeModel == null || nodeModel.getObject() == null) { nodeModel = folderService.getModel(); } if (nodeModel != null && nodeModel.getObject() != null) { path = new JcrItemModel(nodeModel.getObject()).getPath(); } else { path = null; } folderService.detach(); documentService.detach(); if (folder != null) { folder.detach(); } }
public void selectFolder(IModel<Node> model) { if (model != null && (model instanceof JcrNodeModel) && !model.equals(folder)) { folder = (JcrNodeModel) model; documentService.updateModel(new JcrNodeModel((Node) null)); folderService.updateModel(folder); } }
/** * Use the supplied model of a Node (or Version) to set folder and document models. When a Version * is supplied from the version storage, the physical node is used. */ public void browse(IModel<Node> model) { JcrNodeModel document = findDocument(getPhysicalNode((JcrNodeModel) model)); if (folder != null) { documentService.updateModel(document); folderService.updateModel(folder); } else { log.warn("No folder found for model {}", model); } }
public BrowseService( final IPluginContext context, final IPluginConfig config, JcrNodeModel document) { document = findDocument(document); context.registerService( this, config.getString(IBrowseService.BROWSER_ID, BrowseService.class.getName())); context.registerService(this, IRefreshable.class.getName()); documentService = new DocumentModelService(config, document); documentService.init(context); folderService = new FolderModelService(config, folder); folderService.init(context); }
public void refresh() { if (path != null) { IModel<Node> nodeModel = documentService.getModel(); if (nodeModel.getObject() == null) { nodeModel = folderService.getModel(); if (nodeModel.getObject() == null) { // detect move/delete of ancestor nodeModel = new JcrNodeModel(path); boolean hasChanged = false; while (nodeModel.getObject() == null && path.length() > 0) { path = path.substring(0, path.lastIndexOf('/')); nodeModel = new JcrNodeModel(path); hasChanged = true; } if (hasChanged && nodeModel != null) { browse(nodeModel); } } } } }