Some refactoring of the model and of command handling.
authorBruno Sinou <bsinou@argeo.org>
Mon, 26 Sep 2011 15:59:48 +0000 (15:59 +0000)
committerBruno Sinou <bsinou@argeo.org>
Mon, 26 Sep 2011 15:59:48 +0000 (15:59 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@4753 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

23 files changed:
eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/OpenGenericJcrQueryEditor.java [new file with mode: 0644]
server/plugins/org.argeo.jcr.ui.explorer/META-INF/MANIFEST.MF
server/plugins/org.argeo.jcr.ui.explorer/plugin.properties [new file with mode: 0644]
server/plugins/org.argeo.jcr.ui.explorer/plugin.xml
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddFolderNode.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddRemoteRepository.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/GetNodeSize.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/OpenGenericJcrQueryEditor.java [deleted file]
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/OpenGenericNodeEditor.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/ChildNodesPage.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/EmptyNodePage.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/GenericJcrQueryEditor.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/GenericNodeEditor.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/GenericNodePage.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/NodeRightsManagementPage.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/editors/NodeVersionHistoryPage.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/providers/FullVersioningTreeContentProvider.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/GenericNodeDoubleClickListener.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java
server/plugins/org.argeo.jcr.ui.explorer/src/main/resources/org/argeo/jcr/ui/explorer/messages.properties

diff --git a/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/OpenGenericJcrQueryEditor.java b/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/OpenGenericJcrQueryEditor.java
new file mode 100644 (file)
index 0000000..1169747
--- /dev/null
@@ -0,0 +1,30 @@
+package org.argeo.eclipse.ui.jcr.commands;
+
+import org.argeo.eclipse.ui.jcr.editors.JcrQueryEditorInput;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/** Open a JCR query editor. */
+public class OpenGenericJcrQueryEditor extends AbstractHandler {
+       private String editorId;
+
+       public Object execute(ExecutionEvent event) throws ExecutionException {
+               try {
+                       JcrQueryEditorInput editorInput = new JcrQueryEditorInput("", null);
+                       IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(
+                                       event).getActivePage();
+                       activePage.openEditor(editorInput, editorId);
+               } catch (Exception e) {
+                       throw new ExecutionException("Cannot open editor", e);
+               }
+               return null;
+       }
+
+       public void setEditorId(String editorId) {
+               this.editorId = editorId;
+       }
+
+}
index e67562c113e0c60e406f51efea139f300aaf3785..bea753babb38b2d84187c46cac1d0d3eab107277 100644 (file)
@@ -4,6 +4,7 @@ Bundle-Name: JCR Explorer
 Bundle-SymbolicName: org.argeo.jcr.ui.explorer;singleton:=true
 Bundle-Version: 0.3.4.SNAPSHOT
 Bundle-Activator: org.argeo.jcr.ui.explorer.JcrExplorerPlugin
+Bundle-Localization: plugin
 Bundle-Vendor: Argeo
 Require-Bundle: org.eclipse.ui;resolution:=optional,
  org.eclipse.core.runtime;resolution:=optional,
diff --git a/server/plugins/org.argeo.jcr.ui.explorer/plugin.properties b/server/plugins/org.argeo.jcr.ui.explorer/plugin.properties
new file mode 100644 (file)
index 0000000..6dff863
--- /dev/null
@@ -0,0 +1,2 @@
+## commands label
+addNewFolderCmdLbl=Add folder
\ No newline at end of file
index 27a5d3d2cd5cd89b51d19372c75acd8f625ee7f0..358d5590d3dbd88bc7745eae73fc8b1ddd6e432a 100644 (file)
@@ -78,7 +78,7 @@
          <command
                defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
                id="org.argeo.jcr.ui.explorer.addFolderNode"
-               name="Create folder">
+               name="Create the new folder">
          </command>
          <command
                defaultHandler="org.argeo.eclipse.spring.SpringCommandHandler"
                name="Open current file">
          </command>
     </extension>
+
+    <!-- Menus --> 
        <extension point="org.eclipse.ui.menus">
                <menuContribution
-                locationURI="menu:org.argeo.jcr.ui.explorer.browserView">
-                <command
-                      commandId="org.argeo.jcr.ui.explorer.openGenericJcrQueryEditor"
-                      icon="icons/query.png"
-                      style="push">
-                </command>
-          </menuContribution>
+                       locationURI="menu:org.argeo.jcr.ui.explorer.browserView">
+            <command
+               commandId="org.argeo.jcr.ui.explorer.openGenericJcrQueryEditor"
+                icon="icons/query.png"
+                style="push">
+            </command>
+        </menuContribution>
                <menuContribution
-                locationURI="menu:org.argeo.jcr.ui.explorer.browserView">
-                <command
-                      commandId="org.argeo.jcr.ui.explorer.addRemoteRepository"
-                      icon="icons/addRepo.gif"
-                      style="push">
-                </command>
-          </menuContribution>
-  <menuContribution
-        locationURI="popup:org.argeo.jcr.ui.explorer.browserView">
-     <command
-           commandId="org.argeo.jcr.ui.explorer.refresh"
-           icon="icons/refresh.png"
-           style="push">
-     </command>
-     <command
-           commandId="org.argeo.jcr.ui.explorer.addFolderNode"
-           icon="icons/addFolder.gif"
-           style="push">
-     </command>
+                       locationURI="menu:org.argeo.jcr.ui.explorer.browserView">
+            <command
+               commandId="org.argeo.jcr.ui.explorer.addRemoteRepository"
+                icon="icons/addRepo.gif"
+                style="push">
+            </command>
+               </menuContribution>
+               <menuContribution
+                       locationURI="popup:org.argeo.jcr.ui.explorer.browserView">
+                       <command
+                               commandId="org.argeo.jcr.ui.explorer.refresh"
+                               icon="icons/refresh.png"
+                               style="push">
+                       </command>
+                       <command
+         commandId="org.argeo.jcr.ui.explorer.addFolderNode"
+         icon="icons/addFolder.gif"
+         label="%addNewFolderCmdLbl"
+         style="push">
+                               <visibleWhen>
+                                       <iterate>
+                                     <and>
+                                        <or>
+                                           <instanceof
+                                                 value="org.argeo.jcr.ui.explorer.model.SingleJcrNode">
+                                           </instanceof>
+                                           <instanceof
+                                                 value="org.argeo.jcr.ui.explorer.model.WorkspaceNode">
+                                           </instanceof>
+                                        </or>
+             <reference
+                   definitionId="expression.onlyOneItemSelected">
+             </reference>
+                                     </and>
+                                       </iterate>
+                               </visibleWhen>
+                       </command>
      <command
            commandId="org.argeo.jcr.ui.explorer.deleteNodes"
            icon="icons/remove.gif"
            style="push">
+        <visibleWhen>
+           <iterate>
+              <or>
+                 <instanceof
+                       value="org.argeo.jcr.ui.explorer.model.SingleJcrNode">
+                 </instanceof>
+                 <instanceof
+                       value="org.argeo.jcr.ui.explorer.model.WorkspaceNode">
+                 </instanceof>
+              </or>
+           </iterate>
+        </visibleWhen>
      </command>
      <command
            commandId="org.argeo.jcr.ui.explorer.importFileSystem"
            icon="icons/import_fs.png"
            style="push"
            tooltip="Import files from the files sytem to the repository">
+        <visibleWhen>
+           <iterate>
+              <and>
+                 <or>
+                    <instanceof
+                          value="org.argeo.jcr.ui.explorer.model.SingleJcrNode">
+                    </instanceof>
+                    <instanceof
+                          value="org.argeo.jcr.ui.explorer.model.WorkspaceNode">
+                    </instanceof>
+                 </or>
+                 <with
+                     variable="activeMenuSelection">
+                  <count
+                        value="1">
+                  </count>
+               </with>
+              </and>
+           </iterate>
+        </visibleWhen>
      </command>
      <command
            commandId="org.argeo.jcr.ui.explorer.addRemoteRepository"
            icon="icons/addRepo.gif"
            style="push">
+        <visibleWhen>
+           <iterate> 
+                               <or>
+                       <instanceof
+                       value="org.argeo.jcr.ui.explorer.model.RepositoriesNode">
+                                       </instanceof>
+                                       <instanceof
+                                               value="org.argeo.jcr.ui.explorer.model.RepositoryNode">
+                                       </instanceof>
+                               </or> 
+           </iterate>
+        </visibleWhen>
      </command>
      <command
            commandId="org.argeo.jcr.ui.explorer.getNodeSize"
            icon="icons/getSize.gif"
            style="push">
+        <visibleWhen>
+           <iterate>
+              <or>
+                 <instanceof
+                       value="org.argeo.jcr.ui.explorer.model.SingleJcrNode">
+                 </instanceof>
+                 <instanceof
+                       value="org.argeo.jcr.ui.explorer.model.WorkspaceNode">
+                 </instanceof>
+              </or>
+           </iterate>
+        </visibleWhen>
      </command>
   </menuContribution>
        </extension>
+       
+       <!-- Core expression definition --> 
+       
+       <extension
+         point="org.eclipse.core.expressions.definitions">
+      <definition
+            id="expression.onlyOneItemSelected">
+         <with
+               variable="activeMenuSelection">
+            <count
+                  value="1">
+            </count>
+         </with>
+      </definition>
+   </extension>
+       
   <extension
            point="org.eclipse.ui.activities">
         <activity
index e18992fe730131156cb91d160cee9c9a13f9e56f..c7b9cdd164ceb4c423e1815128bd04417b62b6a4 100644 (file)
@@ -6,8 +6,6 @@ import java.util.List;
 import javax.jcr.Node;
 import javax.jcr.Session;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.jcr.JcrUtils;
@@ -23,7 +21,8 @@ import org.eclipse.jface.viewers.Viewer;
  * 
  */
 public class NodeContentProvider implements ITreeContentProvider {
-       private final static Log log = LogFactory.getLog(NodeContentProvider.class);
+       // private final static Log log =
+       // LogFactory.getLog(NodeContentProvider.class);
 
        // Business Objects
        private RepositoryRegister repositoryRegister;
index ed81c88d9bf5c1a903d64da61e5e32c3e7999ba4..afc01b2a7bd0e02326c3431956e9aed7549737ba 100644 (file)
@@ -5,9 +5,12 @@ import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
 import org.argeo.eclipse.ui.ErrorFeedback;
+import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.dialogs.SingleValue;
 import org.argeo.eclipse.ui.jcr.JcrUiPlugin;
+import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
 import org.argeo.jcr.ui.explorer.model.SingleJcrNode;
+import org.argeo.jcr.ui.explorer.model.WorkspaceNode;
 import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -16,41 +19,68 @@ import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
 
-/** Adds a node of type nt:folder */
+/**
+ * Adds a node of type nt:folder, only on {@link SingleJcrNode} and
+ * {@link WorkspaceNode} TreeObject types.
+ * 
+ * 
+ * This handler assumes that a selection provider is available and picks only
+ * first selected item. It is UI's job to enable the command only when the
+ * selection contains one and only one element. Thus no parameter is passed
+ * through the command.
+ * 
+ * This handler is still 'hard linked' to a GenericJcrBrowser view to enable
+ * correct tree refresh when a node is added. This must be corrected in future
+ * versions.
+ */
 public class AddFolderNode extends AbstractHandler {
 
+       public final static String ID = JcrExplorerPlugin.ID + ".addFolderNode";
+
+       // public final static String DEFAULT_LABEL = JcrExplorerPlugin
+       // .getMessage("addFolderNodeCmdLbl");
+       // public final static String DEFAULT_ICON_REL_PATH = "icons/addRepo.gif";
+
        public Object execute(ExecutionEvent event) throws ExecutionException {
+
                ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
                                .getActivePage().getSelection();
+
                GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil
                                .getActiveWorkbenchWindow(event).getActivePage()
                                .findView(HandlerUtil.getActivePartId(event));
+
                if (selection != null && !selection.isEmpty()
                                && selection instanceof IStructuredSelection) {
                        Object obj = ((IStructuredSelection) selection).getFirstElement();
+                       TreeParent treeParentNode = null;
+                       Node jcrParentNode = null;
 
                        if (obj instanceof SingleJcrNode) {
-                               String folderName = SingleValue.ask("Folder name",
-                                               "Enter folder name");
-                               if (folderName != null) {
-                                       SingleJcrNode sjn = (SingleJcrNode) obj;
-                                       Node parentNode = sjn.getNode();
-                                       try {
-                                               Node newNode = parentNode.addNode(folderName,
-                                                               NodeType.NT_FOLDER);
-                                               parentNode.getSession().save();
-                                               view.nodeAdded(sjn);
-                                       } catch (RepositoryException e) {
-                                               ErrorFeedback.show("Cannot create folder " + folderName
-                                                               + " under " + parentNode, e);
-                                       }
+                               treeParentNode = (TreeParent) obj;
+                               jcrParentNode = ((SingleJcrNode) treeParentNode).getNode();
+                       } else if (obj instanceof WorkspaceNode) {
+                               treeParentNode = (TreeParent) obj;
+                               jcrParentNode = ((WorkspaceNode) treeParentNode).getRootNode();
+                       } else
+                               return null;
+
+                       String folderName = SingleValue.ask("Folder name",
+                                       "Enter folder name");
+                       if (folderName != null) {
+                               try {
+                                       jcrParentNode.addNode(folderName, NodeType.NT_FOLDER);
+                                       jcrParentNode.getSession().save();
+                                       view.nodeAdded(treeParentNode);
+                               } catch (RepositoryException e) {
+                                       ErrorFeedback.show("Cannot create folder " + folderName
+                                                       + " under " + treeParentNode, e);
                                }
-                       } else {
-                               ErrorFeedback.show(JcrUiPlugin
-                                               .getMessage("errorUnvalidNtFolderNodeType"));
                        }
+               } else {
+                       ErrorFeedback.show(JcrUiPlugin
+                                       .getMessage("errorUnvalidNtFolderNodeType"));
                }
                return null;
        }
-
 }
index 4e604e80234705089c3ad1b3d300474e8d86627e..9f12281d40c73b9529ef09e577657a54e1607982 100644 (file)
@@ -1,7 +1,6 @@
 package org.argeo.jcr.ui.explorer.commands;
 
 import java.util.Hashtable;
-import java.util.Map;
 
 import javax.jcr.Repository;
 import javax.jcr.RepositoryFactory;
@@ -13,8 +12,6 @@ import org.argeo.jcr.ui.explorer.JcrExplorerConstants;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.swt.widgets.Shell;
 import org.osgi.framework.BundleContext;
 
 /**
index a0e106906a3747b297d66f0c392505c761293fbf..098f5663bfed064562c4126d14cc1fdcb0d19609 100644 (file)
@@ -22,6 +22,10 @@ import org.eclipse.ui.handlers.HandlerUtil;
  * Deletes the selected nodes: both in the JCR repository and in the UI view.
  * Warning no check is done, except implementation dependent native checks,
  * handle with care.
+ * 
+ * This handler is still 'hard linked' to a GenericJcrBrowser view to enable
+ * correct tree refresh when a node is added. This must be corrected in future
+ * versions.
  */
 public class DeleteNodes extends AbstractHandler {
        public Object execute(ExecutionEvent event) throws ExecutionException {
index 5dab8cf722ec75e67abcf767d476679ee7eec71a..96f173b5ec4b8adbd175bad7f580160b2cfaabf7 100644 (file)
@@ -1,5 +1,9 @@
 package org.argeo.jcr.ui.explorer.commands;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import javax.jcr.Node;
 
 import org.argeo.eclipse.ui.ErrorFeedback;
@@ -7,7 +11,6 @@ import org.argeo.jcr.JcrUtils;
 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
 import org.argeo.jcr.ui.explorer.model.SingleJcrNode;
 import org.argeo.jcr.ui.explorer.model.WorkspaceNode;
-import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
@@ -21,10 +24,11 @@ import org.eclipse.ui.handlers.HandlerUtil;
 public class GetNodeSize extends AbstractHandler {
        // private final static Log log = LogFactory.getLog(GetNodeSize.class);
 
-       public final static String ID = "org.argeo.jcr.ui.explorer.getNodeSize";
-       public final static String DEFAULT_ICON_REL_PATH = "icons/getSize.gif";
-       public final static String DEFAULT_LABEL = JcrExplorerPlugin
-                       .getMessage("getNodeSizeCmdLbl");
+       public final static String ID = JcrExplorerPlugin.ID + ".getNodeSize";
+
+       // public final static String DEFAULT_ICON_REL_PATH = "icons/getSize.gif";
+       // public final static String DEFAULT_LABEL = JcrExplorerPlugin
+       // .getMessage("getNodeSizeCmdLbl");
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
                // JcrUtils.getRepositoryByAlias(repositoryRegister,
@@ -32,30 +36,54 @@ public class GetNodeSize extends AbstractHandler {
 
                ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
                                .getActivePage().getSelection();
-               GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil
-                               .getActiveWorkbenchWindow(event).getActivePage()
-                               .findView(HandlerUtil.getActivePartId(event));
 
                if (selection != null && !selection.isEmpty()
                                && selection instanceof IStructuredSelection) {
 
-                       // We only get
-                       IStructuredSelection iss = (IStructuredSelection) selection;
-                       if (iss.size() > 1)
-                               ErrorFeedback.show(JcrExplorerPlugin
-                                               .getMessage("warningInvalidMultipleSelection"), null);
+                       // IStructuredSelection iss = (IStructuredSelection) selection;
+                       // if (iss.size() > 1)
+                       // ErrorFeedback.show(JcrExplorerPlugin
+                       // .getMessage("warningInvalidMultipleSelection"), null);
 
                        long size = 0;
-                       Node node;
-                       if (iss.getFirstElement() instanceof SingleJcrNode)
-                               node = ((SingleJcrNode) iss.getFirstElement()).getNode();
-                       else if (iss.getFirstElement() instanceof WorkspaceNode)
-                               node = ((WorkspaceNode) iss.getFirstElement()).getRootNode();
-                       else
-                               // unvalid object type
-                               return null;
 
-                       size = JcrUtils.getNodeApproxSize(node);
+                       Iterator<?> it = ((IStructuredSelection) selection).iterator();
+
+                       // as the size method is recursive, we keep track of nodes for which
+                       // we already have computed size so that we don't count them twice.
+                       // In a first approximation, we assume that the structure selection
+                       // keep the nodes ordered.
+                       // TODO : enhance that.
+                       List<String> importedPathes = new ArrayList<String>();
+                       try {
+                               nodesIt: while (it.hasNext()) {
+                                       Object obj = it.next();
+                                       String curPath;
+                                       Node node;
+                                       if (obj instanceof SingleJcrNode) {
+                                               node = ((SingleJcrNode) obj).getNode();
+                                               curPath = node.getSession().getWorkspace().getName();
+                                               curPath += "/" + node.getPath();
+                                       } else if (obj instanceof WorkspaceNode) {
+                                               node = ((WorkspaceNode) obj).getRootNode();
+                                               curPath = node.getSession().getWorkspace().getName();
+                                       } else
+                                               // unvalid object type
+                                               continue nodesIt;
+
+                                       Iterator<String> itPath = importedPathes.iterator();
+                                       while (itPath.hasNext()) {
+                                               String refPath = itPath.next();
+                                               if (curPath.startsWith(refPath))
+                                                       // Already done : skip node
+                                                       continue nodesIt;
+                                       }
+                                       size += JcrUtils.getNodeApproxSize(node);
+                                       importedPathes.add(curPath);
+                               }
+                       } catch (Exception e) {
+                               ErrorFeedback.show("Cannot Get size of selected node ", e);
+                       }
 
                        String[] labels = { "OK" };
                        Shell shell = HandlerUtil.getActiveWorkbenchWindow(event)
diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/OpenGenericJcrQueryEditor.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/OpenGenericJcrQueryEditor.java
deleted file mode 100644 (file)
index 177dfd2..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.argeo.jcr.ui.explorer.commands;
-
-import org.argeo.eclipse.ui.jcr.editors.JcrQueryEditorInput;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/** Open a JCR query editor. */
-public class OpenGenericJcrQueryEditor extends AbstractHandler {
-       private String editorId;
-
-       public Object execute(ExecutionEvent event) throws ExecutionException {
-               try {
-                       JcrQueryEditorInput editorInput = new JcrQueryEditorInput("", null);
-                       IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(
-                                       event).getActivePage();
-                       activePage.openEditor(editorInput, editorId);
-               } catch (Exception e) {
-                       throw new ExecutionException("Cannot open editor", e);
-               }
-               return null;
-       }
-
-       public void setEditorId(String editorId) {
-               this.editorId = editorId;
-       }
-
-}
index 076e207c607710bf67b0cc90afda6d87c45f2f2f..fb9264ee49094c02070f3337b87c3ef2e69e3f50 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.jcr.ui.explorer.commands;
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.jcr.editors.NodeEditorInput;
 import org.argeo.jcr.ui.explorer.JcrExplorerConstants;
+import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
 import org.argeo.jcr.ui.explorer.editors.GenericNodeEditor;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -11,7 +12,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
 
 /** Opens the generic node editor. */
 public class OpenGenericNodeEditor extends AbstractHandler {
-       public final static String ID = "org.argeo.jcr.ui.explorer.openGenericNodeEditor";
+       public final static String ID = JcrExplorerPlugin.ID + ".openGenericNodeEditor";
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
                String path = event.getParameter(JcrExplorerConstants.PARAM_PATH);
index 175c06dba0cd3c882f0cb6748138ae8040b74f7a..6f4a2347e64ec4452492b2f9aed692bba79f6d87 100644 (file)
@@ -2,8 +2,6 @@ package org.argeo.jcr.ui.explorer.editors;
 
 import javax.jcr.Node;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
 import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider;
@@ -25,7 +23,7 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
  * accross the repository
  */
 public class ChildNodesPage extends FormPage {
-       private final static Log log = LogFactory.getLog(ChildNodesPage.class);
+       // private final static Log log = LogFactory.getLog(ChildNodesPage.class);
 
        // business objects
        private Node currentNode;
index b9f20b9cf764bebbb22605768b4946e696171d84..943bbe4c84f7f8b7a3212cf1c98f9076f2f31aa7 100644 (file)
@@ -1,7 +1,5 @@
 package org.argeo.jcr.ui.explorer.editors;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Label;
@@ -15,7 +13,7 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
  * yet been set
  */
 public class EmptyNodePage extends FormPage {
-       private final static Log log = LogFactory.getLog(EmptyNodePage.class);
+       // private final static Log log = LogFactory.getLog(EmptyNodePage.class);
 
        public EmptyNodePage(FormEditor editor, String title) {
                super(editor, "Empty Page", title);
index 5a31d923ea9769eb07d2e1f2038f959531276da3..fac3f9a142f69c01eeaa5c4faf71b94268dbccca 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.jcr.ui.explorer.editors;
 
 import org.argeo.eclipse.ui.jcr.editors.AbstractJcrQueryEditor;
+import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -12,7 +13,7 @@ import org.eclipse.swt.widgets.Text;
 
 /** Enables end user to type and execute any JCR query. */
 public class GenericJcrQueryEditor extends AbstractJcrQueryEditor {
-       public final static String ID = "org.argeo.jcr.ui.explorer.genericJcrQueryEditor";
+       public final static String ID = JcrExplorerPlugin.ID + ".genericJcrQueryEditor";
 
        private Text queryField;
 
index f7e57c6cb7dc11fe0191b422f85fbba89d8acf2c..422c6881e4136ad961092200df5d64b3145d774a 100644 (file)
@@ -2,8 +2,6 @@ package org.argeo.jcr.ui.explorer.editors;
 
 import javax.jcr.Node;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
@@ -21,8 +19,9 @@ import org.eclipse.ui.forms.editor.FormEditor;
  */
 public class GenericNodeEditor extends FormEditor {
 
-       private final static Log log = LogFactory.getLog(GenericNodeEditor.class);
-       public final static String ID = "org.argeo.jcr.ui.explorer.genericNodeEditor";
+       // private final static Log log =
+       // LogFactory.getLog(GenericNodeEditor.class);
+       public final static String ID = JcrExplorerPlugin.ID + ".genericNodeEditor";
 
        private Node currentNode;
 
index ca9d969925efc9219ab8c5f8f5ad922bd5d66aa9..975e6664e553a688c31b4d3cd9334625ca4c5ae6 100644 (file)
@@ -13,8 +13,6 @@ import javax.jcr.PropertyIterator;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.jcr.ui.explorer.JcrExplorerConstants;
@@ -24,7 +22,6 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.AbstractFormPart;
 import org.eclipse.ui.forms.IManagedForm;
@@ -39,7 +36,7 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
  */
 
 public class GenericNodePage extends FormPage implements JcrExplorerConstants {
-       private final static Log log = LogFactory.getLog(GenericNodePage.class);
+       // private final static Log log = LogFactory.getLog(GenericNodePage.class);
 
        // local constants
        private final static String JCR_PROPERTY_NAME = "jcr:name";
@@ -118,12 +115,12 @@ public class GenericNodePage extends FormPage implements JcrExplorerConstants {
        private void addPropertyLine(Composite parent, AbstractFormPart part,
                        Property prop) {
                try {
-                       Label lbl = tk.createLabel(parent, prop.getName());
-                       lbl = tk.createLabel(parent,
+                       tk.createLabel(parent, prop.getName());
+                       tk.createLabel(parent,
                                        "[" + JcrUtils.getPropertyDefinitionAsString(prop) + "]");
 
                        if (prop.getDefinition().isProtected()) {
-                               lbl = tk.createLabel(parent, formatReadOnlyPropertyValue(prop));
+                               tk.createLabel(parent, formatReadOnlyPropertyValue(prop));
                        } else
                                addModifyableValueWidget(parent, part, prop);
                } catch (RepositoryException re) {
index 485264b138b76a9f882826e384bee1a581ca1685..e5c1752bb6ddc1e4bbb965124fb76a4b6c89ad54 100644 (file)
@@ -2,8 +2,6 @@ package org.argeo.jcr.ui.explorer.editors;
 
 import javax.jcr.Node;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Label;
@@ -13,14 +11,16 @@ import org.eclipse.ui.forms.editor.FormPage;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 
 /**
- * This comments will be nicely fill by mbaudier in. 
+ * This comments will be nicely fill by mbaudier in.
  */
 public class NodeRightsManagementPage extends FormPage {
-       private final static Log log = LogFactory.getLog(NodeRightsManagementPage.class);
-
+       // private final static Log log =
+       // LogFactory.getLog(NodeRightsManagementPage.class);
 
        private Node currentNode;
-       public NodeRightsManagementPage(FormEditor editor, String title, Node currentNode) {
+
+       public NodeRightsManagementPage(FormEditor editor, String title,
+                       Node currentNode) {
                super(editor, "NodeRightsManagementPage", title);
                this.currentNode = currentNode;
        }
@@ -32,7 +32,7 @@ public class NodeRightsManagementPage extends FormPage {
                        twt.marginWidth = twt.marginHeight = 0;
                        form.getBody().setLayout(twt);
                        Label lbl = new Label(form.getBody(), SWT.NONE);
-                       lbl.setText("Implement this");
+                       lbl.setText("Implement this for node " + currentNode.getPath());
                } catch (Exception e) {
                        e.printStackTrace();
                }
index bd8265ce9d40b71d79e559fa21ef3dffb878aeb5..5b5e6ff1edec335e790f8d22e93f3e93516f8b89 100644 (file)
@@ -18,8 +18,6 @@ import javax.jcr.version.VersionHistory;
 import javax.jcr.version.VersionIterator;
 import javax.jcr.version.VersionManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.jcr.PropertyDiff;
@@ -53,8 +51,8 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
  * */
 public class NodeVersionHistoryPage extends FormPage implements
                JcrExplorerConstants {
-       private final static Log log = LogFactory
-                       .getLog(NodeVersionHistoryPage.class);
+       // private final static Log log = LogFactory
+       // .getLog(NodeVersionHistoryPage.class);
 
        // Utils
        protected DateFormat timeFormatter = new SimpleDateFormat(DATE_TIME_FORMAT);
@@ -189,9 +187,9 @@ public class NodeVersionHistoryPage extends FormPage implements
 
                                StringBuffer buf = new StringBuffer("");
                                Map<String, PropertyDiff> diffs = lst.get(i).getDiffs();
-                               props: for (String prop : diffs.keySet()) {
+                               for (String prop : diffs.keySet()) {
                                        PropertyDiff pd = diffs.get(prop);
-                                       String propName = pd.getRelPath();
+                                       // String propName = pd.getRelPath();
                                        Value refValue = pd.getReferenceValue();
                                        Value newValue = pd.getNewValue();
                                        String refValueStr = "";
@@ -282,7 +280,7 @@ public class NodeVersionHistoryPage extends FormPage implements
                                                                                Property.JCR_CREATED).getDate();
 
                                                } catch (Exception e) {
-                                                       // Silent that info is optionnal
+                                                       // Silent that info is optional
                                                }
                                                VersionDiff vd = new VersionDiff(lastUserName,
                                                                lastUpdate, diffs);
index 559c8aa73a2b206173e7d0625bccc367e3e26385..83a1f589885a1d0d69558edd6501fb436913555b 100644 (file)
@@ -20,13 +20,11 @@ import org.argeo.jcr.RepositoryRegister;
  */
 
 public class RepositoriesNode extends TreeParent {
-       private final String name;
        private final RepositoryRegister repositoryRegister;
 
        public RepositoriesNode(String name, RepositoryRegister repositoryRegister,
                        TreeParent parent) {
                super(name);
-               this.name = name;
                this.repositoryRegister = repositoryRegister;
        }
 
@@ -61,5 +59,4 @@ public class RepositoriesNode extends TreeParent {
        public RepositoryRegister getRepositoryRegister() {
                return repositoryRegister;
        }
-
 }
index e89f16e29f04edb3c81586e038304b38a34cf3f1..70fe774f66e751fffb8f0da82505e0eabe41a060 100644 (file)
@@ -12,7 +12,6 @@ import javax.jcr.version.VersionIterator;
 import javax.jcr.version.VersionManager;
 
 import org.argeo.ArgeoException;
-import org.argeo.jcr.ui.explorer.browser.ItemComparator;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
@@ -23,7 +22,7 @@ import org.eclipse.jface.viewers.Viewer;
  */
 public class FullVersioningTreeContentProvider implements ITreeContentProvider {
        // private Node rootNode;
-       private ItemComparator itemComparator = new ItemComparator();
+       // private ItemComparator itemComparator = new ItemComparator();
 
        /**
         * Sends back the first level of the Tree. input element must be a single
@@ -56,8 +55,6 @@ public class FullVersioningTreeContentProvider implements ITreeContentProvider {
                                List<Node> tmp = new ArrayList<Node>();
                                tmp.add(((Version) parentElement).getFrozenNode());
                                return tmp.toArray();
-                               // Node node = ((Version) parentElement).getFrozenNode();
-                               // return new Object[] { node };
                        }
                } catch (RepositoryException re) {
                        throw new ArgeoException("Unexpected error while getting child "
index 85d229d445a0d73843e0f556b126b1eb418ab01d..f97e1b57971475e39e1cd393f6f076a60b06e021 100644 (file)
@@ -4,8 +4,6 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.specific.FileHandler;
 import org.argeo.jcr.ui.explorer.JcrExplorerPlugin;
@@ -17,7 +15,6 @@ import org.argeo.jcr.ui.explorer.model.WorkspaceNode;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.ui.PartInitException;
 
@@ -26,8 +23,8 @@ import org.eclipse.ui.PartInitException;
  */
 public class GenericNodeDoubleClickListener implements IDoubleClickListener {
 
-       private final static Log log = LogFactory
-                       .getLog(GenericNodeDoubleClickListener.class);
+       // private final static Log log = LogFactory
+       // .getLog(GenericNodeDoubleClickListener.class);
 
        private TreeViewer nodeViewer;
        private JcrFileProvider jfp;
@@ -67,8 +64,9 @@ public class GenericNodeDoubleClickListener implements IDoubleClickListener {
                                        // various
                                        // repository.
                                        // TODO : enhanced that.
-                                       ITreeContentProvider itcp = (ITreeContentProvider) nodeViewer
-                                                       .getContentProvider();
+                                       // ITreeContentProvider itcp = (ITreeContentProvider)
+                                       // nodeViewer
+                                       // .getContentProvider();
                                        // jfp.setRootNodes((Object[]) itcp.getElements(null));
                                        fileHandler.openFile(name, id);
                                }
index 484a2d42c03f41ff6c434b9a127b70eec699947b..ee28eb863ec6dfed819fd5cc5961574447b5998b 100644 (file)
@@ -12,14 +12,11 @@ import javax.jcr.observation.Event;
 import javax.jcr.observation.EventListener;
 import javax.jcr.observation.ObservationManager;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;
 import org.argeo.eclipse.ui.jcr.utils.NodeViewerComparer;
 import org.argeo.eclipse.ui.jcr.views.AbstractJcrBrowser;
-import org.argeo.eclipse.ui.specific.FileHandler;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.jcr.RepositoryRegister;
@@ -28,7 +25,6 @@ import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider;
 import org.argeo.jcr.ui.explorer.browser.PropertiesContentProvider;
 import org.argeo.jcr.ui.explorer.model.SingleJcrNode;
 import org.argeo.jcr.ui.explorer.utils.GenericNodeDoubleClickListener;
-import org.argeo.jcr.ui.explorer.utils.JcrFileProvider;
 import org.argeo.jcr.ui.explorer.utils.JcrUiUtils;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -55,7 +51,8 @@ import org.eclipse.swt.widgets.Menu;
  */
 
 public class GenericJcrBrowser extends AbstractJcrBrowser {
-       private final static Log log = LogFactory.getLog(GenericJcrBrowser.class);
+       // private final static Log log =
+       // LogFactory.getLog(GenericJcrBrowser.class);
 
        /* DEPENDENCY INJECTION */
        private Session session;
@@ -68,8 +65,9 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
        private EventListener resultsObserver;
 
        // Manage documents
-       private JcrFileProvider jcrFileProvider;
-       private FileHandler fileHandler;
+       // private JcrFileProvider jcrFileProvider;
+
+       // private FileHandler fileHandler;
 
        @Override
        public void createPartControl(Composite parent) {
@@ -93,8 +91,8 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                // both RCP & RAP
                // Note that in RAP, it registers a service handler that provide the
                // access to the files.
-               jcrFileProvider = new JcrFileProvider();
-               fileHandler = new FileHandler(jcrFileProvider);
+               // jcrFileProvider = new JcrFileProvider();
+               // fileHandler = new FileHandler(jcrFileProvider);
 
                parent.setLayout(new FillLayout());
                SashForm sashForm = new SashForm(parent, SWT.VERTICAL);
@@ -112,9 +110,10 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                // nodes viewer
                nodesViewer = createNodeViewer(top, nodeContentProvider);
 
-               // context menu
+               // context menu : it is completely defined in the plugin.xml file.
                MenuManager menuManager = new MenuManager();
                Menu menu = menuManager.createContextMenu(nodesViewer.getTree());
+
                nodesViewer.getTree().setMenu(menu);
                getSite().registerContextMenu(menuManager, nodesViewer);
                getSite().setSelectionProvider(nodesViewer);
@@ -189,41 +188,6 @@ public class GenericJcrBrowser extends AbstractJcrBrowser {
                return new int[] { 70, 30 };
        }
 
-       // @Override
-       // public void setFocus() {
-       // nodesViewer.getTree().setFocus();
-       // }
-       //
-       // /*
-       // * NOTIFICATION
-       // */
-       // public void refresh(Object obj) {
-       // nodesViewer.refresh(obj);
-       // }
-       //
-       // public void nodeAdded(Node parentNode, Node newNode) {
-       // nodesViewer.refresh(parentNode);
-       // nodesViewer.expandToLevel(newNode, 0);
-       // }
-       //
-       // public void nodeRemoved(Node parentNode) {
-       //
-       // IStructuredSelection newSel = new StructuredSelection(parentNode);
-       // nodesViewer.setSelection(newSel, true);
-       // // Force refresh
-       // IStructuredSelection tmpSel = (IStructuredSelection) nodesViewer
-       // .getSelection();
-       // nodesViewer.refresh(tmpSel.getFirstElement());
-       // }
-
-       // private JcrFileProvider getJcrFileProvider() {
-       // return jcrFileProvider;
-       // }
-       //
-       // private FileHandler getFileHandler() {
-       // return fileHandler;
-       // }
-
        protected TreeViewer createNodeViewer(Composite parent,
                        final ITreeContentProvider nodeContentProvider) {
 
index 60f9f2f1189d3f2a38167eec91d72349b172aafb..9fd9db10da73664d14171581840ab52892ce6dfa 100644 (file)
@@ -11,6 +11,7 @@ warningNoChildNode= Warning: current node has no children.
 
 ## Commands 
 getNodeSizeCmdLbl= Get approx. size
+addFolderNodeCmdLbl= Add Folder
 
 ## GenericNodeEditor 
 nodeEditorLbl=Generic node editor