X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui.workbench%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fworkbench%2Fjcr%2Finternal%2Fparts%2FChildNodesPage.java;h=1a0b31dcf5644c6365179544cda70575026a2e3a;hb=ab81a6a1a62b51e670eae7482b1aa9181801cfbd;hp=2340f362e3ef3b2f097950f0eb422e7aa668ca16;hpb=21a4ea1fb5380ce1dd763c1ea09067cdd2dfd0f3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/internal/parts/ChildNodesPage.java b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/internal/parts/ChildNodesPage.java index 2340f362e..1a0b31dcf 100644 --- a/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/internal/parts/ChildNodesPage.java +++ b/org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/internal/parts/ChildNodesPage.java @@ -18,16 +18,21 @@ package org.argeo.eclipse.ui.workbench.jcr.internal.parts; import javax.jcr.Node; import org.argeo.ArgeoException; +import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin; -import org.argeo.eclipse.ui.workbench.jcr.internal.GenericNodeDoubleClickListener; +import org.argeo.eclipse.ui.workbench.jcr.DefaultNodeEditor; import org.argeo.eclipse.ui.workbench.jcr.internal.NodeLabelProvider; import org.argeo.eclipse.ui.workbench.jcr.internal.SingleNodeAsTreeContentProvider; +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.swt.SWT; -import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; @@ -64,7 +69,6 @@ public class ChildNodesPage extends FormPage { managedForm.getToolkit().createLabel(body, WorkbenchUiPlugin.getMessage("warningNoChildNode")); } else { - nodeContentProvider = new SingleNodeAsTreeContentProvider(); nodesViewer = createNodeViewer(body, nodeContentProvider); nodesViewer.setInput(currentNode); @@ -78,16 +82,37 @@ public class ChildNodesPage extends FormPage { 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)); - + final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.BORDER); + Tree tree = tmpNodeViewer.getTree(); + tree.setLinesVisible(true); + tmpNodeViewer.getTree().setLayoutData(EclipseUiUtils.fillAll()); tmpNodeViewer.setContentProvider(nodeContentProvider); tmpNodeViewer.setLabelProvider(new NodeLabelProvider()); - tmpNodeViewer - .addDoubleClickListener(new GenericNodeDoubleClickListener( - tmpNodeViewer)); + tmpNodeViewer.addDoubleClickListener(new DClickListener()); return tmpNodeViewer; } -} + + public class DClickListener implements IDoubleClickListener { + + public void doubleClick(DoubleClickEvent event) { + if (event.getSelection() == null || event.getSelection().isEmpty()) + return; + Object obj = ((IStructuredSelection) event.getSelection()) + .getFirstElement(); + if (obj instanceof Node) { + Node node = (Node) obj; + try { + GenericNodeEditorInput gnei = new GenericNodeEditorInput( + node); + WorkbenchUiPlugin.getDefault().getWorkbench() + .getActiveWorkbenchWindow().getActivePage() + .openEditor(gnei, DefaultNodeEditor.ID); + } catch (PartInitException pie) { + throw new ArgeoException( + "Unexepected exception while opening node editor", + pie); + } + } + } + } +} \ No newline at end of file