]> git.argeo.org Git - lgpl/argeo-commons.git/blob - demo/plugins/org.argeo.demo.i18n/src/main/java/org/argeo/demo/i18n/utils/GenericDoubleClickListener.java
e7ffda6aadba4e19ecb5ec32eac746aae2b2779e
[lgpl/argeo-commons.git] / demo / plugins / org.argeo.demo.i18n / src / main / java / org / argeo / demo / i18n / utils / GenericDoubleClickListener.java
1 package org.argeo.demo.i18n.utils;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.ArgeoException;
6 import org.argeo.demo.i18n.I18nDemoPlugin;
7 import org.argeo.demo.i18n.editors.SimpleMultitabEditor;
8 import org.argeo.demo.i18n.editors.SimpleMultitabEditorInput;
9 import org.argeo.eclipse.ui.TreeParent;
10 import org.eclipse.jface.viewers.DoubleClickEvent;
11 import org.eclipse.jface.viewers.IDoubleClickListener;
12 import org.eclipse.jface.viewers.IStructuredSelection;
13 import org.eclipse.jface.viewers.TreeViewer;
14 import org.eclipse.ui.PartInitException;
15
16 /**
17 * Centralizes the management of double click on a NodeTreeViewer
18 */
19 public class GenericDoubleClickListener implements IDoubleClickListener {
20
21 private final static Log log = LogFactory
22 .getLog(GenericDoubleClickListener.class);
23
24 private TreeViewer treeViewer;
25
26 public GenericDoubleClickListener(TreeViewer treeViewer) {
27 this.treeViewer = treeViewer;
28 }
29
30 public void doubleClick(DoubleClickEvent event) {
31 Object obj = ((IStructuredSelection) event.getSelection())
32 .getFirstElement();
33 if (obj instanceof TreeParent) {
34 try {
35 TreeParent tp = (TreeParent) obj;
36 // open an editor
37 SimpleMultitabEditorInput smei = new SimpleMultitabEditorInput(
38 tp.getName());
39 I18nDemoPlugin.getDefault().getWorkbench()
40 .getActiveWorkbenchWindow().getActivePage()
41 .openEditor(smei, SimpleMultitabEditor.ID);
42 } catch (PartInitException pie) {
43 throw new ArgeoException(
44 "Unexpected exception while opening node editor", pie);
45 }
46 }
47 // else do nothing
48 }
49 }