]> git.argeo.org Git - lgpl/argeo-commons.git/blob - demo/plugins/org.argeo.demo.i18n/src/main/java/org/argeo/demo/i18n/views/SimpleTreeView.java
Improve CSV and tabular
[lgpl/argeo-commons.git] / demo / plugins / org.argeo.demo.i18n / src / main / java / org / argeo / demo / i18n / views / SimpleTreeView.java
1 package org.argeo.demo.i18n.views;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.demo.i18n.I18nDemoPlugin;
6 import org.argeo.demo.i18n.providers.SimpleContentProvider;
7 import org.argeo.demo.i18n.providers.SimpleLabelProvider;
8 import org.argeo.demo.i18n.utils.GenericDoubleClickListener;
9 import org.eclipse.jface.action.MenuManager;
10 import org.eclipse.jface.viewers.ISelectionChangedListener;
11 import org.eclipse.jface.viewers.ITreeContentProvider;
12 import org.eclipse.jface.viewers.SelectionChangedEvent;
13 import org.eclipse.jface.viewers.TreeViewer;
14 import org.eclipse.swt.SWT;
15 import org.eclipse.swt.layout.FillLayout;
16 import org.eclipse.swt.layout.GridData;
17 import org.eclipse.swt.layout.GridLayout;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Menu;
20 import org.eclipse.ui.part.ViewPart;
21
22 /**
23 * Basic View to display a tree with internationalized labels
24 */
25
26 public class SimpleTreeView extends ViewPart {
27 private final static Log log = LogFactory.getLog(SimpleTreeView.class);
28
29 public final static String ID = I18nDemoPlugin.ID + ".simpleTreeView";
30
31 // This page widgets
32 private TreeViewer treeViewer;
33 private SimpleContentProvider treeContentProvider;
34
35 @Override
36 public void createPartControl(Composite parent) {
37 parent.setLayout(new FillLayout());
38
39 // Creates the tree
40 Composite composite = new Composite(parent, SWT.NONE);
41 GridLayout gl = new GridLayout(1, false);
42 composite.setLayout(gl);
43
44 // tree viewer
45 treeContentProvider = new SimpleContentProvider();
46 treeViewer = createTreeViewer(composite, treeContentProvider);
47
48 // context menu : it is completely defined in the plugin.xml file.
49 MenuManager menuManager = new MenuManager();
50 Menu menu = menuManager.createContextMenu(treeViewer.getTree());
51 treeViewer.getTree().setMenu(menu);
52 getSite().registerContextMenu(menuManager, treeViewer);
53
54 getSite().setSelectionProvider(treeViewer);
55
56 treeViewer.setInput(getViewSite());
57 }
58
59 protected TreeViewer createTreeViewer(Composite parent,
60 final ITreeContentProvider treeContentProvider) {
61
62 final TreeViewer tmpTreeViewer = new TreeViewer(parent, SWT.MULTI);
63
64 tmpTreeViewer.getTree().setLayoutData(
65 new GridData(SWT.FILL, SWT.FILL, true, true));
66
67 tmpTreeViewer.setContentProvider(treeContentProvider);
68 tmpTreeViewer.setLabelProvider(new SimpleLabelProvider());
69 tmpTreeViewer
70 .addSelectionChangedListener(new ISelectionChangedListener() {
71 public void selectionChanged(SelectionChangedEvent event) {
72 // something can be done here
73 }
74 });
75
76 tmpTreeViewer.addDoubleClickListener(new GenericDoubleClickListener(
77 tmpTreeViewer));
78 return tmpTreeViewer;
79 }
80
81 @Override
82 public void setFocus() {
83 // Do nothing for the time being.
84
85 }
86
87 }