- public void nodeRemoved(Node parentNode) {
-
- List<Node> al = new ArrayList<Node>();
- al.add(parentNode);
-
- IStructuredSelection newSel = new StructuredSelection(al);
- // IStructuredSelection newSel = new StructuredSelection(parentNode);
-
- if (log.isDebugEnabled())
- log.debug("new selection size = " + newSel.size());
-
- nodesViewer.setSelection(newSel, true);
- IStructuredSelection tmpSel = (IStructuredSelection) nodesViewer
- .getSelection();
-
- if (log.isDebugEnabled())
- log.debug("set selection size = " + tmpSel.size());
-
- nodesViewer.refresh();
-
- //
- // log.debug(" Class selected (Parent 1ST element) : "
- // + tmpSel.getFirstElement().getClass());
- // setFocus();
- //
- // nodesViewer.refresh(parentNode);
-
- // // Call the refresh node command
- // try {
- // IWorkbench iw = JcrUiPlugin.getDefault().getWorkbench();
- // IHandlerService handlerService = (IHandlerService) iw
- // .getService(IHandlerService.class);
- //
- // // get the command from plugin.xml
- // IWorkbenchWindow window = iw.getActiveWorkbenchWindow();
- // ICommandService cmdService = (ICommandService) window
- // .getService(ICommandService.class);
- // Command cmd = cmdService
- // .getCommand(OpenEbiDetailsEditor.COMMAND_NAME);
- //
- // // log.debug("cmd : " + cmd);
- // ArrayList<Parameterization> parameters = new
- // ArrayList<Parameterization>();
- //
- // // get the parameter
- // IParameter iparam = cmd
- // .getParameter(OpenEbiDetailsEditor.PARAM_UUID);
- //
- // Parameterization params = new Parameterization(iparam,
- // ((String[]) obj)[0]);
- // parameters.add(params);
- //
- // // build the parameterized command
- // ParameterizedCommand pc = new ParameterizedCommand(cmd,
- // parameters.toArray(new Parameterization[parameters.size()]));
- //
- // // execute the command
- // handlerService = (IHandlerService) window
- // .getService(IHandlerService.class);
- // handlerService.executeCommand(pc, null);
- //
- // } catch (Exception e) {
- // throw new ArgeoException("Error opening EBI", e);
- // }
+ protected TreeViewer createNodeViewer(Composite parent,
+ final ITreeContentProvider nodeContentProvider) {
+
+ final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI);
+
+ tmpNodeViewer.getTree().setLayoutData(
+ new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ tmpNodeViewer.setContentProvider(nodeContentProvider);
+ tmpNodeViewer.setLabelProvider(new NodeLabelProvider());
+ tmpNodeViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ if (!event.getSelection().isEmpty()) {
+ IStructuredSelection sel = (IStructuredSelection) event
+ .getSelection();
+ propertiesViewer.setInput(sel.getFirstElement());
+ } else {
+ propertiesViewer.setInput(getViewSite());
+ }
+ }
+ });
+
+ tmpNodeViewer.addDoubleClickListener(new IDoubleClickListener() {
+ public void doubleClick(DoubleClickEvent event) {
+ if (event.getSelection() == null
+ || event.getSelection().isEmpty())
+ return;
+ Object obj = ((IStructuredSelection) event.getSelection())
+ .getFirstElement();
+ if (obj instanceof RepositoryNode) {
+ RepositoryNode rpNode = (RepositoryNode) obj;
+ rpNode.login();
+ tmpNodeViewer.refresh(obj);
+ } else if (obj instanceof WorkspaceNode) {
+ ((WorkspaceNode) obj).login();
+ tmpNodeViewer.refresh(obj);
+ } else if (obj instanceof Node) {
+ Node node = (Node) obj;
+
+ // double clic on a file node triggers its opening
+ try {
+ if (node.isNodeType(NodeType.NT_FILE)) {
+ String name = node.getName();
+ String id = node.getIdentifier();
+ // For the file provider to be able to browse the
+ // various
+ // repository.
+ // TODO : enhanced that.
+ getJcrFileProvider().setRootNodes(
+ (Object[]) nodeContentProvider
+ .getElements(null));
+
+ getFileHandler().openFile(name, id);
+ }
+ } catch (RepositoryException re) {
+ throw new ArgeoException(
+ "Repository error while getting Node file info",
+ re);
+ }
+ }
+ }
+ });
+ return tmpNodeViewer;
+ }
+
+ @Override
+ protected TreeViewer getNodeViewer() {
+ return nodesViewer;