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