--- /dev/null
+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;
+ }
+
+}
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,
--- /dev/null
+## commands label
+addNewFolderCmdLbl=Add folder
\ No newline at end of file
<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
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;
*
*/
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;
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;
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;
}
-
}
package org.argeo.jcr.ui.explorer.commands;
import java.util.Hashtable;
-import java.util.Map;
import javax.jcr.Repository;
import javax.jcr.RepositoryFactory;
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;
/**
* 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 {
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;
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;
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,
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)
+++ /dev/null
-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;
- }
-
-}
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;
/** 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);
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;
* 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;
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;
* 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);
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;
/** 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;
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;
*/
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;
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;
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;
*/
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";
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) {
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;
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;
}
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();
}
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;
* */
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);
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 = "";
Property.JCR_CREATED).getDate();
} catch (Exception e) {
- // Silent that info is optionnal
+ // Silent that info is optional
}
VersionDiff vd = new VersionDiff(lastUserName,
lastUpdate, diffs);
*/
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;
}
public RepositoryRegister getRepositoryRegister() {
return repositoryRegister;
}
-
}
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;
*/
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
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 "
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;
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;
*/
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;
// 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);
}
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;
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;
*/
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;
private EventListener resultsObserver;
// Manage documents
- private JcrFileProvider jcrFileProvider;
- private FileHandler fileHandler;
+ // private JcrFileProvider jcrFileProvider;
+
+ // private FileHandler fileHandler;
@Override
public void createPartControl(Composite parent) {
// 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);
// 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);
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) {
## Commands
getNodeSizeCmdLbl= Get approx. size
+addFolderNodeCmdLbl= Add Folder
## GenericNodeEditor
nodeEditorLbl=Generic node editor