01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package org.terracotta.dso.actions;
05:
06: import org.eclipse.jdt.core.ICompilationUnit;
07: import org.eclipse.jdt.core.IJavaElement;
08: import org.eclipse.jdt.core.IType;
09: import org.eclipse.jface.viewers.ISelection;
10: import org.eclipse.swt.widgets.Menu;
11:
12: /**
13: * Popup action submenu that contains module-related actions.
14: *
15: * @see org.eclipse.jdt.core.ICompilationUnit
16: * @see BaseMenuCreator
17: * @see AdaptableAction
18: * @see ExcludedTypeAction
19: * @see BootJarTypeAction
20: */
21:
22: public class ModuleHandler extends BaseMenuCreator {
23: private AdaptableAction m_adaptableAction;
24: private ExcludedTypeAction m_excludedAction;
25: private BootJarTypeAction m_bootJarAction;
26:
27: public ModuleHandler() {
28: super ();
29:
30: m_adaptableAction = new AdaptableAction();
31: m_excludedAction = new ExcludedTypeAction();
32: m_bootJarAction = new BootJarTypeAction();
33: }
34:
35: protected IJavaElement getJavaElement(ISelection selection) {
36: ICompilationUnit module = ActionUtil
37: .findSelectedCompilationUnit(selection);
38: String label = "Module";
39:
40: if (module != null) {
41: label = "Module " + module.getElementName();
42: }
43:
44: m_delegateAction.setText(label);
45:
46: return module;
47: }
48:
49: protected void fillMenu(Menu menu) {
50: if (m_element != null) {
51: IType type = ((ICompilationUnit) m_element)
52: .findPrimaryType();
53:
54: if (type != null) {
55: m_adaptableAction.setJavaElement(type);
56: addMenuAction(menu, m_adaptableAction);
57:
58: m_excludedAction.setJavaElement(type);
59: addMenuAction(menu, m_excludedAction);
60:
61: m_bootJarAction.setType(type);
62: addMenuAction(menu, m_bootJarAction);
63: }
64: }
65: }
66: }
|