From 2c508b7ca36b0ebe380b3190902c23dfe68b195c Mon Sep 17 00:00:00 2001 From: Roger Ferrel Date: Tue, 25 Sep 2012 13:01:19 -0500 Subject: [PATCH] Issue #1215 Added runWithEvent override in PointToolAction. Reviewer comments implemented. Change-Id: I60fbf26f8721750a11ada9ceaffe65a2d3c9dabf Former-commit-id: 5d93bdd642990f129dda8a4aac736ab06df97723 [formerly 99378b0fe5e1261f5fe92e07b3c297a337a23eda] [formerly 5d93bdd642990f129dda8a4aac736ab06df97723 [formerly 99378b0fe5e1261f5fe92e07b3c297a337a23eda] [formerly 9df9bc7530c280fd1f7729870ee53c72e4c87d53 [formerly c22956889d2368d0ec4fe8f524c98745791737c6]]] Former-commit-id: 9df9bc7530c280fd1f7729870ee53c72e4c87d53 Former-commit-id: 9cb2d0abeaae2720218d3c6016904dd18606bee0 [formerly 11a7956541b23554270965a5b10bea9d67d8914a] Former-commit-id: 1f3b361e0dedbf0fb928ab8f071c2fc491877cb9 --- .../volumebrowser/vbui/PointToolAction.java | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/PointToolAction.java b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/PointToolAction.java index f821c6cf88..db0d22dbb7 100644 --- a/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/PointToolAction.java +++ b/cave/com.raytheon.viz.volumebrowser/src/com/raytheon/viz/volumebrowser/vbui/PointToolAction.java @@ -27,7 +27,9 @@ import org.eclipse.jface.action.ContributionItem; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.ToolItem; import com.raytheon.uf.viz.points.PointsDataManager; import com.raytheon.uf.viz.points.data.IPointNode; @@ -44,6 +46,8 @@ import com.raytheon.viz.volumebrowser.xml.MenuContribution; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Jul 29, 2012 rferrel Initial creation + * Sep 25, 2012 1215 rferrel Clicking anywhere on the Point button + * now opens the menu. * * * @@ -58,16 +62,34 @@ public class PointToolAction extends Action implements IMenuCreator { private IPointNode parentNode; + private PointsDataManager dataManager; + public PointToolAction(String text, String pointNames) { - super(text, SWT.DROP_DOWN); - this.pointNames = pointNames; - this.parentNode = null; + this(text, pointNames, null); } public PointToolAction(String text, String pointNames, IPointNode parentNode) { super(text, SWT.DROP_DOWN); this.pointNames = pointNames; this.parentNode = parentNode; + this.dataManager = PointsDataManager.getInstance(); + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets. + * Event) + */ + @Override + public void runWithEvent(Event event) { + if (menu == null) { + ToolItem item = (ToolItem) event.widget; + getMenu(item.getParent()); + } + menu.setVisible(true); + super.runWithEvent(event); } /* @@ -116,13 +138,12 @@ public class PointToolAction extends Action implements IMenuCreator { } private void fillMenu(final Menu menu) { - List nodes = PointsDataManager.getInstance().getChildren( - parentNode); + List nodes = dataManager.getChildren(parentNode); // Create the menu items for (IPointNode node : nodes) { if (node.isGroup()) { - if (PointsDataManager.getInstance().getChildren(node).size() > 0) { + if (dataManager.getChildren(node).size() > 0) { PointToolAction submenu = new PointToolAction("" + node.getName(), pointNames, node); submenu.menu = new Menu(menu);