Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tm.te.ui.terminals/src/org/eclipse/tm/te/ui/terminals/actions/AbstractAction.java')
-rw-r--r--target_explorer/plugins/org.eclipse.tm.te.ui.terminals/src/org/eclipse/tm/te/ui/terminals/actions/AbstractAction.java184
1 files changed, 0 insertions, 184 deletions
diff --git a/target_explorer/plugins/org.eclipse.tm.te.ui.terminals/src/org/eclipse/tm/te/ui/terminals/actions/AbstractAction.java b/target_explorer/plugins/org.eclipse.tm.te.ui.terminals/src/org/eclipse/tm/te/ui/terminals/actions/AbstractAction.java
deleted file mode 100644
index 54d2ecee4..000000000
--- a/target_explorer/plugins/org.eclipse.tm.te.ui.terminals/src/org/eclipse/tm/te/ui/terminals/actions/AbstractAction.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.te.ui.terminals.actions;
-
-import java.util.Collections;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.te.ui.terminals.activator.UIPlugin;
-import org.eclipse.tm.te.ui.terminals.nls.Messages;
-import org.eclipse.tm.te.ui.terminals.tabs.TabFolderManager;
-import org.eclipse.tm.te.ui.terminals.tabs.TabFolderToolbarHandler;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-
-/**
- * Abstract terminal action wrapper implementation.
- */
-@SuppressWarnings("restriction")
-public abstract class AbstractAction extends AbstractTerminalAction {
- // Reference to the parent toolbar handler
- private final TabFolderToolbarHandler parent;
-
- /**
- * Constructor.
- *
- * @param parent
- * The parent toolbar handler instance. Must not be
- * <code>null</code>.
- * @param id
- * The terminal action id. Must not be <code>null</code>.
- */
- public AbstractAction(TabFolderToolbarHandler parent, String id) {
- super(id);
-
- Assert.isNotNull(parent);
- this.parent = parent;
- }
-
- /**
- * Returns the parent toolbar handler.
- *
- * @return The parent toolbar handler.
- */
- protected final TabFolderToolbarHandler getParent() {
- return parent;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#getTarget()
- */
- @Override
- protected ITerminalViewControl getTarget() {
- return getParent().getActiveTerminalViewControl();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#run()
- */
- @Override
- public void run() {
- // Get the active tab item from the tab folder manager
- TabFolderManager manager = (TabFolderManager)getParent().getAdapter(TabFolderManager.class);
- if (manager != null) {
- // If we have the active tab item, we can get the active terminal control
- CTabItem activeTabItem = manager.getActiveTabItem();
- if (activeTabItem != null) {
- // And execute the command
- executeCommand(activeTabItem.getData("customData")); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Executes the command for the given data node as current and active menu selection.
- * <p>
- * <b>Node:</b> If the provided data node is <code>null</code>, the method will trigger
- * the command with an empty selection.
- *
- * @param data The terminal custom data node or <code>null</code>.
- */
- protected void executeCommand(Object data) {
- // Get the command service from the workbench
- ICommandService service = (ICommandService)PlatformUI.getWorkbench().getAdapter(ICommandService.class);
- if (service != null && getCommandId() != null) {
- // Get the command
- final Command command = service.getCommand(getCommandId());
- if (command != null && command.isDefined()) {
- // Construct a selection element
- IStructuredSelection selection = data != null ? new StructuredSelection(data) : new StructuredSelection();
- // Construct the application context
- EvaluationContext context = new EvaluationContext(null, selection);
- // Apply the selection to the "activeMenuSelection" and "selection" variable too
- context.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
- context.addVariable(ISources.ACTIVE_MENU_SELECTION_NAME, selection);
- // Construct the execution event
- ExecutionEvent execEvent = new ExecutionEvent(command, Collections.EMPTY_MAP, this, context);
- // And execute the event
- try {
- command.executeWithChecks(execEvent);
- } catch (Exception e) {
- IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
- NLS.bind(Messages.AbstractAction_error_commandExecutionFailed, getCommandId(), e.getLocalizedMessage()),
- e);
- UIPlugin.getDefault().getLog().log(status);
- }
- }
- }
- }
-
- /**
- * Returns the command id of the command to execute.
- *
- * @return The command id. Must be never <code>null</code>.
- */
- protected abstract String getCommandId();
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction#updateAction(boolean)
- */
- @Override
- public void updateAction(boolean aboutToShow) {
- // Ignore the flag given from outside. We have to decide ourself
- // what the enabled state of the action is
- boolean enabled = getTarget() != null;
-
- // If a target terminal control is available, we need to find the corresponding
- // VLM target object which we need to trigger the handler
- if (enabled) {
- // The action will be enabled if we can determine the VLM target object
- enabled = false;
- // Get the active tab item from the tab folder manager
- TabFolderManager manager = (TabFolderManager)getParent().getAdapter(TabFolderManager.class);
- if (manager != null) {
- // If we have the active tab item, we can get the active terminal control
- CTabItem activeTabItem = manager.getActiveTabItem();
- if (activeTabItem != null) {
- enabled = checkEnableAction(activeTabItem.getData("customData")); //$NON-NLS-1$
- }
- }
- }
-
- setEnabled(enabled);
- }
-
- /**
- * Checks if the action should be enabled based on the given terminal data object.
- *
- * @param data The terminal data node or <code>null</code>.
- * @return <code>True</code> to enable the action, <code>false</code> otherwise.
- */
- protected boolean checkEnableAction(Object data) {
- return data != null;
- }
-
- /**
- * Returns if the action is a separator. Returning <code>true</code> here
- * means that an additional separator toolbar element is added right or
- * above of the action.
- *
- * @return <code>True</code> if the action is separating the parent contribution manager, <code>false</code> otherwise.
- */
- public boolean isSeparator() {
- return false;
- }
-}

Back to the top