KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > views > ConfigViewer


1 package org.terracotta.dso.views;
2
3 import org.eclipse.jface.action.IMenuListener;
4 import org.eclipse.jface.action.MenuManager;
5 import org.eclipse.jface.viewers.ISelectionProvider;
6 import org.eclipse.jface.viewers.TreeViewer;
7 import org.eclipse.swt.SWT;
8 import org.eclipse.swt.events.KeyListener;
9 import org.eclipse.swt.layout.GridData;
10 import org.eclipse.swt.widgets.Composite;
11 import org.eclipse.swt.widgets.Menu;
12 import org.eclipse.swt.widgets.Tree;
13 import org.eclipse.ui.IWorkbenchPartSite;
14
15 import com.terracottatech.config.TcConfigDocument.TcConfig;
16
17 class ConfigViewer extends TreeViewer {
18   private ConfigViewPart fPart;
19   private ConfigContentProvider fContentProvider;
20
21   ConfigViewer(Composite parent, ConfigViewPart part) {
22     super(new Tree(parent, SWT.MULTI));
23
24     fPart = part;
25
26     getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
27     setUseHashlookup(true);
28     setAutoExpandLevel(ALL_LEVELS);
29     fContentProvider = new ConfigContentProvider(fPart);
30     setContentProvider(fContentProvider);
31     setLabelProvider(new ConfigLabelProvider(this));
32
33     clearViewer();
34   }
35
36   void setConfig(TcConfig config) {
37     if(config != null) {
38       setInput(getTreeRoot(config));
39     } else {
40       clearViewer();
41     }
42   }
43
44   ConfigViewPart getPart() {
45     return fPart;
46   }
47
48   void setFocus() {
49     getControl().setFocus();
50   }
51
52   boolean isInFocus() {
53     return getControl().isFocusControl();
54   }
55
56   void addKeyListener(KeyListener keyListener) {
57     getControl().addKeyListener(keyListener);
58   }
59
60   private TreeRoot getTreeRoot(TcConfig root) {
61     return new TreeRoot(root);
62   }
63
64   void initContextMenu(IMenuListener menuListener, IWorkbenchPartSite viewSite, ISelectionProvider selectionProvider) {
65     MenuManager menuMgr= new MenuManager();
66     menuMgr.setRemoveAllWhenShown(true);
67     menuMgr.addMenuListener(menuListener);
68     Menu menu= menuMgr.createContextMenu(getTree());
69     getTree().setMenu(menu);
70     viewSite.registerContextMenu(menuMgr, selectionProvider);
71   }
72
73   void clearViewer() {
74     setInput(TreeRoot.EMPTY_ROOT);
75   }
76 }
77
Popular Tags