Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemSubMenuManager.java')
-rw-r--r--rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemSubMenuManager.java404
1 files changed, 0 insertions, 404 deletions
diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemSubMenuManager.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemSubMenuManager.java
deleted file mode 100644
index cfe34b63c..000000000
--- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemSubMenuManager.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/********************************************************************************
- * Copyright (c) 2002, 2008 IBM 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
- *
- * Initial Contributors:
- * The following IBM employees contributed to the Remote System Explorer
- * component that contains this file: David McKnight, Kushal Munir,
- * Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
- * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin
- * David McKnight (IBM) - [225506] [api][breaking] RSE UI leaks non-API types
- ********************************************************************************/
-
-package org.eclipse.rse.internal.ui.actions;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.rse.ui.SystemBasePlugin;
-import org.eclipse.rse.ui.actions.ISystemAction;
-import org.eclipse.rse.ui.actions.SystemBaseSubMenuAction;
-import org.eclipse.swt.widgets.Shell;
-
-
-
-/**
- * For cascading menus, we need our own menu subclass so we can intercept
- * the state-setting methods of our frameworks, and foreword those onto the
- * sub-menu actions.
- * <p>
- * The state-setting methods including setShell, setSelection and setValue.
- */
-public class SystemSubMenuManager
- extends MenuManager
-{
- protected String toolTipText;
- protected ImageDescriptor image = null;
- protected Shell shell = null;
- protected Viewer viewer = null;
- protected boolean deferPopulation;
- protected boolean traceSelections = false;
- protected String traceTarget;
- protected ISelection selection;
- protected String label;
- protected SystemBaseSubMenuAction parentCascadingAction;
-
- /**
- * Constructor for SystemSubMenuManager
- */
- public SystemSubMenuManager(SystemBaseSubMenuAction parentAction)
- {
- super();
- this.parentCascadingAction = parentAction;
- }
- /**
- * Constructor for SystemSubMenuManager
- */
- public SystemSubMenuManager(SystemBaseSubMenuAction parentAction, String text)
- {
- super(text);
- this.label = text;
- this.parentCascadingAction = parentAction;
- }
- /**
- * Constructor for SystemSubMenuManager
- */
- public SystemSubMenuManager(SystemBaseSubMenuAction parentAction, String text, String id)
- {
- super(text, id);
- this.label = text;
- this.parentCascadingAction = parentAction;
- }
- /**
- * Constructor for SystemSubMenuManager
- */
- public SystemSubMenuManager(SystemBaseSubMenuAction parentAction, String text, String id, ImageDescriptor image)
- {
- super(text, id);
- this.label = text;
- this.image = image;
- this.parentCascadingAction = parentAction;
- }
-
- /**
- * Return the parent cascading menu action that created this.
- */
- public SystemBaseSubMenuAction getParentCascadingAction()
- {
- return parentCascadingAction;
- }
-
- /**
- * Set the tooltip text when this is used for in a cascading menu.
- * @see org.eclipse.rse.ui.actions.SystemBaseSubMenuAction
- */
- public void setToolTipText(String tip)
- {
- this.toolTipText = tip;
- }
- /**
- * Get the tooltip text when this is used for in a cascading menu
- */
- public String getToolTipText()
- {
- return toolTipText;
- }
-
- /**
- * Return the label for this submenu
- */
- public String getLabel()
- {
- return label;
- }
-
- // ------------------------
- // ISYSTEMACTION METHODS...
- // ------------------------
- /**
- * An optimization for performance reasons that allows all inputs to be set in one call.
- * This is called by SystemView's fillContextMenu method.
- */
- public void setInputs(Shell shell, Viewer v, ISelection selection)
- {
- if (traceSelections)
- issueTraceMessage(" INSIDE SETINPUTS FOR SUBMENUMGR FOR '"+label+"'"); //$NON-NLS-1$ //$NON-NLS-2$
- this.shell = shell;
- this.viewer = v;
- this.selection = selection;
- if (parentCascadingAction != null)
- parentCascadingAction.setInputsFromSubMenuManager(shell, v, selection);
- cascadeAllInputs();
- }
-
-
- /**
- * Sets the parent shell for this action. Usually context dependent.
- * We cascade this down to all of the actions added to this submenu.
- */
- public void setShell(Shell shell)
- {
- this.shell = shell;
- IContributionItem[] items = getItems();
- for (int idx=0; idx < items.length; idx++)
- {
- if ((items[idx] instanceof ActionContributionItem) &&
- (((ActionContributionItem)items[idx]).getAction() instanceof ISystemAction))
- {
- ISystemAction item = (ISystemAction) ( ((ActionContributionItem)items[idx]).getAction() );
- item.setShell(shell);
- }
- else if (items[idx] instanceof SystemSubMenuManager)
- {
- SystemSubMenuManager item = (SystemSubMenuManager)items[idx];
- item.setShell(shell);
- }
- }
- if (traceSelections)
- {
- issueTraceMessage("*** INSIDE SETSHELL FOR SUBMENUMGR "+label+". #ITEMS = "+items.length); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- }
-
- /**
- * This is called by the framework to set the selection input, just prior to showing the popup menu.
- * We cascade this down to all of the actions added to this submenu.
- */
- public void setSelection(ISelection selection)
- {
- this.selection = selection;
- IContributionItem[] items = getItems();
- for (int idx=0; idx < items.length; idx++)
- {
- if ((items[idx] instanceof ActionContributionItem) &&
- (((ActionContributionItem)items[idx]).getAction() instanceof ISystemAction))
- {
- ISystemAction item = (ISystemAction) ( ((ActionContributionItem)items[idx]).getAction() );
- item.setSelection(selection);
- }
- else if (items[idx] instanceof SystemSubMenuManager)
- {
- SystemSubMenuManager item = (SystemSubMenuManager)items[idx];
- item.setSelection(selection);
- }
- }
- if (traceSelections)
- {
- issueTraceMessage("*** INSIDE SETSELECTION FOR SUBMENUMGR"+label+". #ITEMS = "+items.length); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- }
- /**
- * Set the Viewer that called this action. It is good practice for viewers to call this
- * so actions can directly access them if needed.
- */
- public void setViewer(Viewer v)
- {
- this.viewer = v;
- IContributionItem[] items = getItems();
- for (int idx=0; idx < items.length; idx++)
- {
- if ((items[idx] instanceof ActionContributionItem) &&
- (((ActionContributionItem)items[idx]).getAction() instanceof ISystemAction))
- {
- ISystemAction item = (ISystemAction) ( ((ActionContributionItem)items[idx]).getAction() );
- item.setViewer(viewer);
- }
- else if (items[idx] instanceof SystemSubMenuManager)
- {
- SystemSubMenuManager item = (SystemSubMenuManager)items[idx];
- item.setViewer(viewer);
- }
- }
- }
-
- /**
- * Get the Viewer that called this action. Not guaranteed to be set,
- * depends if that viewer called setViewer or not. SystemView does.
- */
- public Viewer getViewer()
- {
- return viewer;
- }
- /**
- * Get the Shell that hosts this action. Not guaranteed to be set,
- */
- public Shell getShell()
- {
- return shell;
- }
- /**
- * Get the Selection
- */
- public IStructuredSelection getSelection()
- {
- return (IStructuredSelection)selection;
- }
-
- /**
- * @see ContributionManager#add(IAction)
- */
-
- // add(): solve problem that cascaded menu items were not receiving their
- // setSelection() call, due to them only being constructed on the
- // cascade's MenuAboutToShow(), after the setSelections have run.
-
- // THE QUESTION IS, IF WE DO THIS HERE WHEN ITEMS ARE ADDED TO THIS SUBMENU,
- // IS IT REDUNDANT TO ALSO DO IT WHEN SETINPUTS IS CALLED?
-
- /**
- * Intercept so we can cascade the selection, viewer and shell down
- */
- public void appendToGroup(String groupName, IAction action)
- {
- super.appendToGroup(groupName, action);
- if (action instanceof ISystemAction)
- cascadeAllInputs((ISystemAction)action);
- }
- /**
- * Intercept so we can cascade the selection, viewer and shell down
- */
- public void appendToGroup(String groupName, IContributionItem item)
- {
- super.appendToGroup(groupName, item);
- if (item instanceof SystemSubMenuManager)
- cascadeAllInputs((SystemSubMenuManager)item);
- }
- /**
- * Intercept so we can cascade the selection, viewer and shell down
- * THIS WAS ONLY CATCHING ACTIONS, NOT NESTED SUBMENUS. THE SUPER OF THIS
- * METHOD CALLS ADD(new ActionContributionItem(action)) SO WE NOW INTERCEPT
- * THERE INSTEAD, AS THAT IS WHAT IS CALLED FOR MULTI-CASCADING MENUS
- public void add(IAction action)
- {
- super.add(action);
- if (action instanceof ISystemAction)
- cascadeAllInputs((ISystemAction)action);
- }*/
- /**
- * Intercept so we can cascade the selection, viewer and shell down
- */
- public void add(IContributionItem item)
- {
- super.add(item);
- if (item instanceof ActionContributionItem)
- {
- IAction action = ((ActionContributionItem)item).getAction();
- if (action instanceof ISystemAction)
- cascadeAllInputs((ISystemAction)action);
- }
- else if (item instanceof SystemSubMenuManager)
- cascadeAllInputs((SystemSubMenuManager)item);
- }
-
- /**
- * Cascade in one shot all input state inputs to all actions
- */
- protected void cascadeAllInputs()
- {
- //super.menuAboutToShow(ourSubMenu);
- IContributionItem[] items = getItems();
- if (traceSelections)
- {
- issueTraceMessage("INSIDE CASCADEALLINPUTS FOR SUBMENUMGR FOR "+label+". NBR ITEMS = "+items.length); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- for (int idx=0; idx < items.length; idx++)
- {
- if ((items[idx] instanceof ActionContributionItem) &&
- (((ActionContributionItem)items[idx]).getAction() instanceof ISystemAction))
- {
- ISystemAction item = (ISystemAction) ( ((ActionContributionItem)items[idx]).getAction() );
- if (!item.isDummy())
- cascadeAllInputs(item);
- }
- else if (items[idx] instanceof SystemSubMenuManager)
- {
- SystemSubMenuManager item = (SystemSubMenuManager)items[idx];
- cascadeAllInputs(item);
- }
- }
-
- }
- /**
- * Cascade in one shot all input state inputs to one action
- */
- protected void cascadeAllInputs(ISystemAction action)
- {
- if (action.isDummy())
- return; // waste of time
- if (shell != null)
- action.setShell(shell);
- if (viewer != null)
- action.setViewer(viewer);
- if (selection != null)
- action.setSelection(selection);
- }
- /**
- * Cascade in one shot all input state inputs to one submenu
- */
- protected void cascadeAllInputs(SystemSubMenuManager submenu)
- {
- if (shell != null)
- submenu.setShell(shell);
- if (viewer != null)
- submenu.setViewer(viewer);
- if (selection != null)
- submenu.setSelection(selection);
- }
- // ------------------------
- // HELPER METHODS...
- // ------------------------
- /**
- * Turn on tracing for selections, shell and viewer to watch as it is set
- */
- public void setTracing(boolean tracing)
- {
- traceSelections = tracing;
- }
- /**
- * Turn on tracing for selections, shell and viewer to watch as it is set,
- * scoped to a particular class name (will use indexOf('xxx') to match).
- */
- public void setTracing(String tracingClassTarget)
- {
- traceSelections = (tracingClassTarget != null);
- traceTarget = tracingClassTarget;
- }
- /**
- * Turn on tracing for selections, shell and viewer to watch as it is set,
- * scoped to a particular class name (will use indexOf('xxx') to match).
- */
- public void setTracing(boolean tracing, String tracingClassTarget)
- {
- traceSelections = tracing;
- traceTarget = tracingClassTarget;
- }
-
- /**
- * Issue trace message
- */
- protected void issueTraceMessage(String msg)
- {
- if (traceSelections)
- {
- String className = this.getClass().getName();
- if ((traceTarget==null) || (className.indexOf(traceTarget)>=0))
- {
- className = className.substring(className.lastIndexOf('.'));
- SystemBasePlugin.logInfo(className+": "+msg); //$NON-NLS-1$
- }
- }
- }
-
-} \ No newline at end of file

Back to the top