Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 63765 Details for
Bug 182339
Made it possible to work with figures, stacked by parent layout
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Different means to select nested elements
org.eclipse.gmf.codegen.model.txt (text/plain), 20.71 KB, created by
Anna Karjakina
on 2007-04-13 11:22:05 EDT
(
hide
)
Description:
Different means to select nested elements
Filename:
MIME Type:
Creator:
Anna Karjakina
Created:
2007-04-13 11:22:05 EDT
Size:
20.71 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.graphdef.editor >Index: src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/AbstractFigureEditPart.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/AbstractFigureEditPart.java,v >retrieving revision 1.1 >diff -u -r1.1 AbstractFigureEditPart.java >--- src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/AbstractFigureEditPart.java 2 Mar 2007 18:36:49 -0000 1.1 >+++ src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/AbstractFigureEditPart.java 13 Apr 2007 15:03:17 -0000 >@@ -10,8 +10,10 @@ > */ > package org.eclipse.gmf.graphdef.editor.edit.parts; > >+import java.util.ArrayList; > import java.util.Collection; > import java.util.Iterator; >+import java.util.List; > > import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.IFigure; >@@ -21,10 +23,13 @@ > import org.eclipse.draw2d.XYLayout; > import org.eclipse.draw2d.geometry.PointList; > import org.eclipse.draw2d.geometry.Rectangle; >+import org.eclipse.gef.DragTracker; > import org.eclipse.gef.EditPart; >+import org.eclipse.gef.tools.AbstractTool; > import org.eclipse.gmf.gmfgraph.Alignment; > import org.eclipse.gmf.gmfgraph.BorderLayout; > import org.eclipse.gmf.gmfgraph.BorderLayoutData; >+import org.eclipse.gmf.gmfgraph.Figure; > import org.eclipse.gmf.gmfgraph.FlowLayout; > import org.eclipse.gmf.gmfgraph.GMFGraphPackage; > import org.eclipse.gmf.gmfgraph.GridLayout; >@@ -35,10 +40,15 @@ > import org.eclipse.gmf.gmfgraph.Point; > import org.eclipse.gmf.gmfgraph.XYLayoutData; > import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; > import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ConnectionHandleEditPolicy; >+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; >+import org.eclipse.gmf.runtime.diagram.ui.handles.ConnectionHandle; > import org.eclipse.gmf.runtime.notation.View; > > public abstract class AbstractFigureEditPart extends ShapeNodeEditPart { >+ public static final String EMPTY_STRING = ""; //$NON-NLS-1$ > > public AbstractFigureEditPart(View view) { > super(view); >@@ -201,15 +211,13 @@ > // not implemented yet in .gmfgraph > // GridLayout gridLayout = (GridLayout) layout; > /* >- * < % = >- * importManager.getImportedName("org.eclipse.gmf.internal.codegen.draw2d.GridLayout")%> >- * layoutManager; if (myFigure.getLayoutManager() instanceof < % = >- * importManager.getImportedName("org.eclipse.gmf.internal.codegen.draw2d.GridLayout")%>) { >- * layoutManager = (< % = >- * importManager.getImportedName("org.eclipse.gmf.internal.codegen.draw2d.GridLayout")%>) >- * myFigure.getLayoutManager(); } else { layoutManager = new < % = >- * importManager.getImportedName("org.eclipse.gmf.internal.codegen.draw2d.GridLayout")%>(); >- * myFigure.setLayoutManager(layoutManager); } >+ org.eclipse.gmf.internal.codegen.draw2d.GridLayout layoutManager; >+ if (getFigureLayoutManager() instanceof org.eclipse.gmf.internal.codegen.draw2d.GridLayout) { >+ layoutManager = (org.eclipse.gmf.internal.codegen.draw2d.GridLayout)getFigureLayoutManager(); >+ } else { >+ layoutManager = new org.eclipse.gmf.internal.codegen.draw2d.GridLayout(); >+ } >+ setFigureLayoutManager(layoutManager); } > */ > break; > } >@@ -284,5 +292,65 @@ > } > return result; > } >+ >+ protected void createDefaultEditPolicies() { >+ super.createDefaultEditPolicies(); >+ >+ // override default connection handles behavior, that could be installed by parent >+ installEditPolicy(EditPolicyRoles.CONNECTION_HANDLES_ROLE, new MyConnectionHandleEditPolicy()); >+ } >+ >+ private static class MyConnectionHandleEditPolicy extends ConnectionHandleEditPolicy { >+ >+ protected List getHandleFigures() { >+ IGraphicalEditPart selectedPart = (IGraphicalEditPart) getHost(); >+ List result = new ArrayList(selectedPart.getChildren().size()); >+ for (int i=0; i<selectedPart.getChildren().size(); i++) { >+ final EditPart next = (EditPart) selectedPart.getChildren().get(i); >+ String tooltip = EMPTY_STRING; >+ if (next instanceof AbstractFigureEditPart) { >+ final AbstractFigureEditPart nextAF = (AbstractFigureEditPart) next; >+ View model = (View) nextAF.getModel(); >+ Figure modelElement = (Figure) model.getElement(); >+ String name = modelElement.getName(); >+ tooltip = modelElement.eClass().getName()+":"+(name != null && name.length() != 0? name : String.valueOf(i+1)); >+ } >+ result.add(new MyConnectionHandle(selectedPart, next, tooltip)); >+ } >+ return result; >+ } >+ } >+ >+ private static class MyConnectionHandle extends ConnectionHandle { >+ private final MyHandleTool myTool; > >+ public MyConnectionHandle(IGraphicalEditPart ownerEditPart, EditPart nextChild, String tooltip) { >+ super(ownerEditPart, HandleDirection.INCOMING, tooltip); >+ myTool = new MyHandleTool(nextChild, tooltip); >+ } >+ >+ protected DragTracker createDragTracker() { >+ return myTool; >+ } >+ } >+ >+ private static class MyHandleTool extends AbstractTool implements DragTracker { >+ private final EditPart myTarget; >+ private final String myCommandName; >+ >+ public MyHandleTool(EditPart target, String commandName) { >+ super(); >+ myTarget = target; >+ myCommandName = commandName; >+ } >+ >+ protected boolean handleButtonUp(int button) { >+ myTarget.getViewer().select(myTarget); >+ return true; >+ } >+ >+ protected String getCommandName() { >+ return myCommandName; >+ } >+ } > } >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/plugin.xml,v >retrieving revision 1.14 >diff -u -r1.14 plugin.xml >--- plugin.xml 4 Apr 2007 20:23:26 -0000 1.14 >+++ plugin.xml 13 Apr 2007 15:03:17 -0000 >@@ -640,4 +640,20 @@ > </selectionEnablement> > </linkHelper> > </extension> >+ >+ <extension id="SelectStackedElementsPopup" name="StackedElements" >+ point="org.eclipse.ui.popupMenus"> >+ <?gmfgen generated="false"?> >+ <objectContribution adaptable="false" id="org.eclipse.gmf.graphdef.editor.SelectStackedElements" >+ objectClass="org.eclipse.gmf.graphdef.editor.edit.parts.AbstractFigureEditPart"> >+ <action >+ class="org.eclipse.gmf.graphdef.editor.edit.parts.SelectStackedElementsAction" >+ enablesFor="1" >+ id="org.eclipse.gmf.graphdef.editor.SelectStackedElementsAction" >+ label="Select Stacked Elements" >+ menubarPath="additions"> >+ </action> >+ </objectContribution> >+ </extension> >+ > </plugin> >Index: templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt,v >retrieving revision 1.2 >diff -u -r1.2 NodeEditPart.xpt >--- templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt 2 Mar 2007 15:39:20 -0000 1.2 >+++ templates/aspects/xpt/diagram/editparts/NodeEditPart.xpt 13 Apr 2007 15:03:17 -0000 >@@ -511,6 +511,18 @@ > «ENDDEFINE» > > «AROUND setupNodePlate FOR gmfgen::GenNode-» >-«IF generateSyncronizationCode(metaclass()) && isInnerClassViewmap(viewmap)»myNodeFigure = result;«ELSE»«targetDef.proceed()»«ENDIF-» >-«ENDAROUND» >+«IF generateSyncronizationCode(metaclass()) && isInnerClassViewmap(viewmap)-» >+«EXPAND setInsets-» >+myNodeFigure = result; >+«ELSE»«targetDef.proceed()-»«ENDIF»«ENDAROUND» >+ >+«DEFINE setInsets FOR gmfgen::GenChildNode-» >+«IF containers.typeSelect(gmfgen::GenCompartment).size() > 0-» >+org.eclipse.draw2d.LineBorder contourBorder = new org.eclipse.draw2d.LineBorder(org.eclipse.swt.widgets.Display.getDefault().getSystemColor(org.eclipse.swt.SWT.COLOR_WIDGET_NORMAL_SHADOW)); >+org.eclipse.draw2d.MarginBorder marginBorder = new org.eclipse.draw2d.MarginBorder(5); >+org.eclipse.draw2d.CompoundBorder compoundBorder = new org.eclipse.draw2d.CompoundBorder(contourBorder, marginBorder); >+result.setBorder(compoundBorder);«ENDIF»«ENDDEFINE» >+ >+«DEFINE setInsets FOR gmfgen::GenNode-» >+«ENDDEFINE» > >Index: templates/editor/manifest.mfjet >=================================================================== >RCS file: templates/editor/manifest.mfjet >diff -N templates/editor/manifest.mfjet >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ templates/editor/manifest.mfjet 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,80 @@ >+<%@ jet package="org.eclipse.gmf.codegen.templates.editor" class="ManifestGenerator" >+ imports="org.eclipse.gmf.codegen.gmfgen.* org.eclipse.emf.codegen.ecore.genmodel.* java.util.*"%> >+<% >+final GenPlugin genPlugin = (GenPlugin) argument; >+final GenModel genModel = genPlugin.getEditorGen().getDomainGenModel(); >+final Set<String> requiredPluginIDs = new LinkedHashSet<String>(); >+if (genModel != null) { >+ requiredPluginIDs.add(genModel.getModelPluginID()); >+ requiredPluginIDs.add(genModel.getEditPluginID()); >+ >+ for (Iterator it = genModel.getAllUsedGenPackagesWithClassifiers().iterator(); it.hasNext();) { >+ GenModel nextGenModel = ((GenPackage) it.next()).getGenModel(); >+ if (nextGenModel.hasEditSupport()) { >+ requiredPluginIDs.add(nextGenModel.getModelPluginID()); >+ requiredPluginIDs.add(nextGenModel.getEditPluginID()); >+ } >+ } >+} >+ requiredPluginIDs.addAll(genPlugin.getRequiredPluginIDs()); >+ for (Iterator<String> it = requiredPluginIDs.iterator(); it.hasNext();) { >+ String next = it.next(); >+ if (next == null || next.trim().length() == 0) { >+ it.remove(); >+ } >+ } >+ >+Iterator<String> requiredBundleIterator = requiredPluginIDs.iterator(); >+%> >+Manifest-Version: 1.0 >+Bundle-ManifestVersion: 2 >+Bundle-Name: %pluginName >+Bundle-SymbolicName: <%=genPlugin.getID()%>; singleton:=true >+Bundle-Version: <%=genPlugin.getVersion()%> >+Bundle-ClassPath: . >+Bundle-Activator: <%=genPlugin.getActivatorQualifiedClassName()%> >+Bundle-Vendor: %providerName >+Bundle-Localization: plugin >+Export-Package: <%=genPlugin.getEditorGen().getDiagram().getEditPartsPackageName()%>, >+ <%=genPlugin.getEditorGen().getEditor().getPackageName()%>, >+ <%=genPlugin.getEditorGen().getDiagram().getProvidersPackageName()%> >+Require-Bundle: org.eclipse.core.runtime, >+<%if (genPlugin.getEditorGen().getApplication() == null) {%> >+ org.eclipse.core.resources,<%}%> >+<%if (genPlugin.getEditorGen().getDiagram().generateShortcutIcon() || (genPlugin.getEditorGen().getNavigator() != null && genPlugin.getEditorGen().getNavigator().isGenerateDomainModelNavigator())) {%> >+ org.eclipse.core.expressions,<%}%> >+ org.eclipse.jface, >+<%if (genPlugin.getEditorGen().getApplication() == null) {%> >+ org.eclipse.ui.ide,<%}%> >+ org.eclipse.ui.views, >+<%if (genPlugin.getEditorGen().getNavigator() != null) {%> >+ org.eclipse.ui.navigator,<%}%> >+ org.eclipse.emf.ecore, >+ org.eclipse.emf.ecore.xmi, >+ org.eclipse.emf.edit.ui, >+ org.eclipse.gef;visibility:=reexport, >+ <%//XXX start: this dependency is essential for xPand templates%> >+ org.eclipse.gmf.codegen, >+ <%//XXX end.%> >+ org.eclipse.gmf.runtime.emf.core, >+ org.eclipse.gmf.runtime.emf.commands.core, >+ org.eclipse.gmf.runtime.emf.ui.properties, >+ org.eclipse.gmf.runtime.diagram.ui, >+ <%if (genPlugin.isPrintingEnabled()) {%> >+ org.eclipse.gmf.runtime.diagram.ui.printing.render, >+ org.eclipse.gmf.runtime.diagram.ui.printing,<%}%> >+ <%if (genPlugin.getEditorGen().getPropertySheet() != null) {%> >+ org.eclipse.gmf.runtime.diagram.ui.properties,<%}%> >+ org.eclipse.gmf.runtime.diagram.ui.providers, >+<%if (genPlugin.getEditorGen().getApplication() == null) {%> >+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,<%}%> >+ org.eclipse.gmf.runtime.diagram.ui.render, >+ org.eclipse.gmf.runtime.diagram.ui.resources.editor, >+<%if (genPlugin.getEditorGen().getApplication() == null) {%> >+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,<%}%> >+ org.eclipse.gmf.runtime.notation.providers >+<%while(requiredBundleIterator.hasNext()) {%>, >+ <%=requiredBundleIterator.next()%>;visibility:=reexport >+<%}%> >+Eclipse-LazyStart: true >+Bundle-RequiredExecutionEnvironment: J2SE-1.4 >Index: src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/SelectStackedElementsAction.java >=================================================================== >RCS file: src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/SelectStackedElementsAction.java >diff -N src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/SelectStackedElementsAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-extra/org/eclipse/gmf/graphdef/editor/edit/parts/SelectStackedElementsAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,260 @@ >+/* >+ * Copyright (c) 2006, 2007 Borland Software Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Borland Software Corporation - initial API and implementation >+ */ >+package org.eclipse.gmf.graphdef.editor.edit.parts; >+ >+import java.text.Collator; >+import java.text.MessageFormat; >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.gef.EditPart; >+import org.eclipse.gmf.gmfgraph.Figure; >+import org.eclipse.gmf.runtime.notation.View; >+import org.eclipse.jface.action.Action; >+import org.eclipse.jface.action.ActionContributionItem; >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.action.IMenuCreator; >+import org.eclipse.jface.viewers.ISelection; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.events.MenuEvent; >+import org.eclipse.swt.events.MenuListener; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Menu; >+import org.eclipse.swt.widgets.MenuItem; >+import org.eclipse.swt.widgets.Widget; >+import org.eclipse.ui.IObjectActionDelegate; >+import org.eclipse.ui.IWorkbenchPart; >+ >+public class SelectStackedElementsAction extends Action implements IMenuCreator, MenuListener, IObjectActionDelegate { >+ public static final String EMPTY_STRING = ""; //$NON-NLS-1$ >+ >+ /** >+ * The menu created by this action >+ */ >+ private Menu myMenu; >+ >+ private AbstractFigureEditPart mySelectedElement; >+ >+ public void setActivePart(IAction action, IWorkbenchPart targetPart) { >+ action.setMenuCreator(getMenuCreator()); >+ } >+ >+ public IMenuCreator getMenuCreator() { >+ return this; >+ } >+ >+ public Menu getMenu(Control parent) { >+ return createMenu(parent); >+ } >+ >+ public Menu getMenu(Menu parent) { >+ return createMenu(parent); >+ } >+ >+ protected Menu createMenu(Widget parent) { >+ if (parent == null) { >+ return null; >+ } >+ if (myMenu != null) { >+ myMenu.dispose(); >+ } >+ myMenu = createMenuFromMenuOrControlParent(parent); >+ myMenu.addMenuListener(this); >+ return myMenu; >+ } >+ >+ public void menuShown(MenuEvent e) { >+ clearMenu(myMenu); >+ fillMenu(myMenu, mySelectedElement); >+ } >+ >+ public void menuHidden(MenuEvent e) { >+ } >+ >+ public void dispose() { >+ if (myMenu != null) { >+ myMenu.dispose(); >+ } >+ myMenu = null; >+ } >+ >+ private void clearMenu(Menu menu) { >+ MenuItem[] actions = menu.getItems(); >+ for (int i=0; i<actions.length; i++) { >+ actions[i].dispose(); >+ } >+ } >+ >+ private static Menu createMenuFromMenuOrControlParent(Widget parent) { >+ Menu result = null; >+ if (parent instanceof Menu) { >+ result = new Menu((Menu)parent); >+ } else if (parent instanceof Control) { >+ result = new Menu((Control) parent); >+ } >+ return result; >+ } >+ >+ private static void fillMenu(Menu menu, EditPart selectedElement) { >+ if (selectedElement == null) { >+ return; >+ } >+ int numChildren = selectedElement.getChildren().size(); >+ IAction[] selectChildActions = new IAction[numChildren]; >+ List expandChildrenActions = new ArrayList(numChildren); >+ for (int i=0; i<numChildren; i++) { >+ final EditPart next = (EditPart) selectedElement.getChildren().get(i); >+ String className = next.getClass().getName(); >+ String preciseName = String.valueOf(i); >+ if (next instanceof AbstractFigureEditPart) { >+ View model = (View) ((AbstractFigureEditPart) next).getModel(); >+ Figure modelElement = (Figure) model.getElement(); >+ className = modelElement.eClass().getName(); >+ String elementName = modelElement.getName(); >+ if (elementName != null && elementName.length() != 0) { >+ preciseName = elementName; >+ } >+ } >+ String selectChildCommandName = MessageFormat.format("{0}:{1}", new Object[] {className, preciseName}); >+ selectChildActions[i] = new SelectChildAction(next, selectChildCommandName); >+ if (next.getChildren().size() > 0) { >+ String expandChildrenCommandName = numChildren > 1 ? MessageFormat.format("Select Children of {0}", new Object[] {selectChildCommandName}) : "Select Children"; >+ expandChildrenActions.add(new ExpandChildrenAction(next, expandChildrenCommandName)); >+ } >+ } >+ for (int i=0; i<selectChildActions.length; i++) { >+ ActionContributionItem item = new ActionContributionItem(selectChildActions[i]); >+ item.fill(menu, -1); >+ } >+ int numExpandableCommands = expandChildrenActions.size(); >+ if (numExpandableCommands > 0) { >+ new MenuItem(menu, SWT.SEPARATOR, selectChildActions.length); >+ for (int i=0; i<numExpandableCommands; i++) { >+ IAction next = (IAction) expandChildrenActions.get(i); >+ ActionContributionItem item = new ActionContributionItem(next); >+ item.fill(menu, selectChildActions.length + i + 1); >+ } >+ } >+ } >+ >+ public void run(IAction action) { >+ //do nothing, this action just creates a cascading menu. >+ } >+ >+ public void selectionChanged(IAction action, ISelection selection) { >+ mySelectedElement = null; >+ if (selection instanceof IStructuredSelection) { >+ IStructuredSelection structuredSelection = (IStructuredSelection) selection; >+ if (structuredSelection.size() == 1 && structuredSelection.getFirstElement() instanceof AbstractFigureEditPart) { >+ mySelectedElement = (AbstractFigureEditPart) structuredSelection.getFirstElement(); >+ } >+ } >+ action.setEnabled(isEnabled()); >+ } >+ >+ public boolean isEnabled() { >+ return mySelectedElement != null && mySelectedElement.getChildren().size() > 0; >+ } >+ >+ private static class SelectChildAction extends Action implements Comparable { >+ private final EditPart myTarget; >+ private final String myName; >+ >+ public SelectChildAction(EditPart target, String name) { >+ super(name, IAction.AS_PUSH_BUTTON); >+ myName = name; >+ myTarget = target; >+ } >+ >+ public EditPart getTargetPart() { >+ return myTarget; >+ } >+ >+ public String getName() { >+ return myName; >+ } >+ >+ public void run() { >+ myTarget.getViewer().select(myTarget); >+ } >+ >+ public int compareTo(Object o) { >+ if (!(o instanceof SelectChildAction)) { >+ return -1; >+ } >+ String otherName = ((SelectChildAction)o).getName(); >+ return Collator.getInstance().compare(getName(), otherName); >+ } >+ } >+ >+ private static class ExpandChildrenAction extends Action implements IMenuCreator, Comparable { >+ private final EditPart myTarget; >+ private final String myName; >+ private Menu myMenu; >+ >+ public ExpandChildrenAction(EditPart target, String name) { >+ super(name, IAction.AS_DROP_DOWN_MENU); >+ myName = name; >+ myTarget = target; >+ } >+ >+ public IMenuCreator getMenuCreator() { >+ return this; >+ } >+ >+ public EditPart getTargetPart() { >+ return myTarget; >+ } >+ >+ public String getName() { >+ return myName; >+ } >+ >+ public void run() { >+ //do nothing, this action just creates a cascading menu. >+ } >+ >+ public int compareTo(Object o) { >+ if (!(o instanceof SelectChildAction)) { >+ return -1; >+ } >+ String otherName = ((SelectChildAction)o).getName(); >+ return Collator.getInstance().compare(getName(), otherName); >+ } >+ >+ public void dispose() { >+ if (myMenu != null) { >+ myMenu.dispose(); >+ } >+ myMenu = null; >+ } >+ >+ public Menu getMenu(Control parent) { >+ return createMenu(parent); >+ } >+ >+ public Menu getMenu(Menu parent) { >+ return createMenu(parent); >+ } >+ >+ private Menu createMenu(Widget parent) { >+ if (myMenu == null) { >+ if (parent == null) { >+ return null; >+ } >+ myMenu = SelectStackedElementsAction.createMenuFromMenuOrControlParent(parent); >+ SelectStackedElementsAction.fillMenu(myMenu, myTarget); >+ } >+ return myMenu; >+ } >+ } >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
tikhomirov.artem
:
review+
Actions:
View
|
Diff
Attachments on
bug 182339
: 63765 |
63766