Ejemplo n.º 1
0
  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();
    }
  }
Ejemplo n.º 2
0
  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);
    }
  }
Ejemplo n.º 3
0
 /**
  * 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);
   }
 }
Ejemplo n.º 4
0
  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);
  }
Ejemplo n.º 5
0
 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);
         }
       }
     }
   }
 }