blob: 3ddbb6e6136652e2d4467a56a4872b6e183041e2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2006 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.actions;
import org.eclipse.core.runtime.IProduct;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.IAction;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.internal.ActivateEditorAction;
import org.eclipse.ui.internal.CloseAllAction;
import org.eclipse.ui.internal.CloseAllPerspectivesAction;
import org.eclipse.ui.internal.CloseAllSavedAction;
import org.eclipse.ui.internal.CloseEditorAction;
import org.eclipse.ui.internal.CloseOthersAction;
import org.eclipse.ui.internal.ClosePerspectiveAction;
import org.eclipse.ui.internal.CycleEditorAction;
import org.eclipse.ui.internal.CyclePartAction;
import org.eclipse.ui.internal.CyclePerspectiveAction;
import org.eclipse.ui.internal.EditActionSetsAction;
import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
import org.eclipse.ui.internal.IntroAction;
import org.eclipse.ui.internal.LockToolBarAction;
import org.eclipse.ui.internal.MaximizePartAction;
import org.eclipse.ui.internal.MinimizePartAction;
import org.eclipse.ui.internal.NavigationHistoryAction;
import org.eclipse.ui.internal.OpenPreferencesAction;
import org.eclipse.ui.internal.QuickAccessMenu;
import org.eclipse.ui.internal.QuitAction;
import org.eclipse.ui.internal.ResetPerspectiveAction;
import org.eclipse.ui.internal.SaveAction;
import org.eclipse.ui.internal.SaveAllAction;
import org.eclipse.ui.internal.SaveAsAction;
import org.eclipse.ui.internal.SavePerspectiveAction;
import org.eclipse.ui.internal.ShowPartPaneMenuAction;
import org.eclipse.ui.internal.ShowViewMenuAction;
import org.eclipse.ui.internal.ToggleEditorsVisibilityAction;
import org.eclipse.ui.internal.WorkbenchEditorsAction;
import org.eclipse.ui.internal.WorkbenchImages;
import org.eclipse.ui.internal.WorkbenchMessages;
import org.eclipse.ui.internal.WorkbookEditorsAction;
import org.eclipse.ui.internal.about.AboutAction;
import org.eclipse.ui.internal.actions.DynamicHelpAction;
import org.eclipse.ui.internal.actions.HelpContentsAction;
import org.eclipse.ui.internal.actions.HelpSearchAction;
import org.eclipse.ui.internal.actions.NewEditorAction;
import org.eclipse.ui.internal.actions.OpenPerspectiveDialogAction;
import org.eclipse.ui.internal.actions.ToggleCoolbarVisibilityAction;
/**
* Access to standard actions provided by the workbench.
* <p>
* Most of the functionality of this class is provided by static methods and
* fields. Example usage:
*
* <pre>
* MenuManager menu = ...;
* ActionFactory.IWorkbenchAction closeEditorAction
* = ActionFactory.CLOSE.create(window);
* menu.add(closeEditorAction);
* </pre>
* </p>
* <p>
* Clients may declare other classes that provide additional application-specific
* action factories.
* </p>
*
* @since 3.0
*/
public abstract class ActionFactory {
/**
* Interface for a workbench action.
*/
public interface IWorkbenchAction extends IAction {
/**
* Disposes of this action. Once disposed, this action cannot be used.
* This operation has no effect if the action has already been
* disposed.
*/
public void dispose();
}
/**
* Workbench action: Displays the About dialog. This action maintains its
* enablement state.
*/
public static final ActionFactory ABOUT = new ActionFactory("about") { //$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new AboutAction(window);
action.setId(getId());
IProduct product = Platform.getProduct();
String productName = null;
if (product != null) {
productName = product.getName();
}
if (productName == null) {
productName = ""; //$NON-NLS-1$
}
action.setText(NLS.bind(WorkbenchMessages.AboutAction_text, productName ));
action.setToolTipText(NLS.bind(WorkbenchMessages.AboutAction_toolTip, productName ));
return action;
}
};
/**
* Workbench action (id "activateEditor"): Activate the most recently used
* editor. This action maintains its enablement state.
*/
public static final ActionFactory ACTIVATE_EDITOR = new ActionFactory(
"activateEditor") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ActivateEditorAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "back"): Back. This action is a
* {@link RetargetAction} with id "back". This action maintains
* its enablement state.
*/
public static final ActionFactory BACK = new ActionFactory("back") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(), WorkbenchMessages.Workbench_back);
action.setToolTipText(WorkbenchMessages.Workbench_backToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.back"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "backardHistory"): Backward in the navigation
* history. This action maintains its enablement state.
*/
public static final ActionFactory BACKWARD_HISTORY = new ActionFactory(
"backardHistory") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new NavigationHistoryAction(window, false);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "close"): Close the active editor. This action
* maintains its enablement state.
*/
public static final ActionFactory CLOSE = new ActionFactory("close") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CloseEditorAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "closeAll"): Close all open editors. This action
* maintains its enablement state.
*/
public static final ActionFactory CLOSE_ALL = new ActionFactory("closeAll") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CloseAllAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "closeOthers"): Close all editors except the one that
* is active. This action maintains its enablement state.
*
* @since 3.2
*/
public static final ActionFactory CLOSE_OTHERS = new ActionFactory("closeOthers") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CloseOthersAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "closeAllPerspectives"): Closes all perspectives.
* This action maintains its enablement state.
*/
public static final ActionFactory CLOSE_ALL_PERSPECTIVES = new ActionFactory(
"closeAllPerspectives") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CloseAllPerspectivesAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "closeAllSaved"): Close all open editors except
* those with unsaved changes. This action maintains its enablement state.
*/
public static final ActionFactory CLOSE_ALL_SAVED = new ActionFactory(
"closeAllSaved") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CloseAllSavedAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "closePerspective"): Closes the current
* perspective. This action maintains its enablement state.
*/
public static final ActionFactory CLOSE_PERSPECTIVE = new ActionFactory(
"closePerspective") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ClosePerspectiveAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "intro"): Activate the introduction extension.
*/
public static final ActionFactory INTRO = new ActionFactory("intro") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new IntroAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "copy"): Copy. This action is a
* {@link RetargetAction} with id "copy". This action maintains
* its enablement state.
*/
public static final ActionFactory COPY = new ActionFactory("copy") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_copy);
action.setToolTipText(WorkbenchMessages.Workbench_copyToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.copy"); //$NON-NLS-1$
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
action.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
return action;
}
};
/**
* Workbench action (id "cut"): Cut. This action is a
* {@link RetargetAction} with id "cut". This action maintains
* its enablement state.
*/
public static final ActionFactory CUT = new ActionFactory("cut") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_cut);
action.setToolTipText(WorkbenchMessages.Workbench_cutToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.cut"); //$NON-NLS-1$
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
action.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_CUT_DISABLED));
return action;
}
};
/**
* Workbench action (id "delete"): Delete. This action is a
* {@link RetargetAction} with id "delete". This action maintains
* its enablement state.
*/
public static final ActionFactory DELETE = new ActionFactory("delete") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_delete);
action.setToolTipText(WorkbenchMessages.Workbench_deleteToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.delete"); //$NON-NLS-1$
action.enableAccelerator(false);
window.getWorkbench().getHelpSystem().setHelp(action,
IWorkbenchHelpContextIds.DELETE_RETARGET_ACTION);
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
action
.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
return action;
}
};
/**
* Workbench action (id "editActionSets"): Edit the action sets. This
* action maintains its enablement state.
*/
public static final ActionFactory EDIT_ACTION_SETS = new ActionFactory(
"editActionSets") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new EditActionSetsAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "export"): Opens the export wizard. This action
* maintains its enablement state.
*/
public static final ActionFactory EXPORT = new ActionFactory("export") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ExportResourcesAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "find"): Find. This action is a
* {@link RetargetAction} with id "find". This action maintains
* its enablement state.
*/
public static final ActionFactory FIND = new ActionFactory("find") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_findReplace);
action.setToolTipText(WorkbenchMessages.Workbench_findReplaceToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.findReplace"); //$NON-NLS-1$
// Find's images are commented out due to a conflict with Search.
// See bug 16412.
// action.setImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_SEARCH_SRC));
// action.setDisabledImageDescriptor(WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_SEARCH_SRC_DISABLED));
return action;
}
};
/**
* Workbench action (id "forward"): Forward. This action is a
* {@link RetargetAction} with id "forward". This action
* maintains its enablement state.
*/
public static final ActionFactory FORWARD = new ActionFactory("forward") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_forward);
action.setToolTipText(WorkbenchMessages.Workbench_forwardToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.forward"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "forwardHistory"): Forward in the navigation
* history. This action maintains its enablement state.
*/
public static final ActionFactory FORWARD_HISTORY = new ActionFactory(
"forwardHistory") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new NavigationHistoryAction(window, true);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "goInto"): Go Into. This action is a
* {@link RetargetAction} with id "goInto". This action maintains
* its enablement state.
*/
public static final ActionFactory GO_INTO = new ActionFactory("goInto") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_goInto);
action.setToolTipText(WorkbenchMessages.Workbench_goIntoToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.goInto"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "import"): Opens the import wizard. This action
* maintains its enablement state.
*/
public static final ActionFactory IMPORT = new ActionFactory("import") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ImportResourcesAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "lockToolBar"): Lock/unlock the workbench window
* tool bar. This action maintains its enablement state.
*/
public static final ActionFactory LOCK_TOOL_BAR = new ActionFactory(
"lockToolBar") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new LockToolBarAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "maximize"): Maximize/restore the active part. This
* action maintains its enablement state.
*/
public static final ActionFactory MAXIMIZE = new ActionFactory("maximize") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new MaximizePartAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "minimize"): Minimizes the active part. This
* action maintains its enablement state.
*
* @since 3.1
*/
public static final ActionFactory MINIMIZE = new ActionFactory("minimize") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new MinimizePartAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "move"): Move. This action is a
* {@link RetargetAction} with id "move". This action maintains
* its enablement state.
*/
public static final ActionFactory MOVE = new ActionFactory("move") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_move);
action.setToolTipText(WorkbenchMessages.Workbench_moveToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.move"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "new"): Opens the new wizard dialog. This action maintains
* its enablement state.
*/
public static final ActionFactory NEW = new ActionFactory("new") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new NewWizardAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "newWizardDropDown"): Drop-down action which shows shows the new wizard drop down,
* or opens the new wizard dialog when pressed. For use in the toolbar.
* This action maintains its enablement state.
*
* @since 3.1
*/
public static final ActionFactory NEW_WIZARD_DROP_DOWN = new ActionFactory(
"newWizardDropDown") { //$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new NewWizardDropDownAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "next"): Next. This action is a
* {@link RetargetAction} with id "next". This action maintains
* its enablement state.
*/
public static final ActionFactory NEXT = new ActionFactory("next") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_next);
action.setToolTipText(WorkbenchMessages.Workbench_nextToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.next"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "nextEditor"): Next editor. This action maintains
* its enablement state.
* <p>
* <code>NEXT_EDITOR</code> and <code>PREVIOUS_EDITOR</code> form a
* cycle action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory NEXT_EDITOR = new ActionFactory(
"nextEditor") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CycleEditorAction(window, true);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "nextPart"): Next part. This action maintains its
* enablement state.
* <p>
* <code>NEXT_PART</code> and <code>PREVIOUS_PART</code> form a cycle
* action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory NEXT_PART = new ActionFactory("nextPart") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CyclePartAction(window, true);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "nextPerspective"): Next perspective. This action
* maintains its enablement state.
* <p>
* <code>NEXT_PERSPECTIVE</code> and <code>PREVIOUS_PERSPECTIVE</code>
* form a cycle action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory NEXT_PERSPECTIVE = new ActionFactory(
"nextPerspective") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CyclePerspectiveAction(window, true);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "openNewWindow"): Open a new workbench window. This
* action maintains its enablement state.
*/
public static final ActionFactory OPEN_NEW_WINDOW = new ActionFactory(
"openNewWindow") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new OpenInNewWindowAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "paste"): Paste. This action is a
* {@link RetargetAction} with id "paste". This action maintains
* its enablement state.
*/
public static final ActionFactory PASTE = new ActionFactory("paste") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_paste);
action.setToolTipText(WorkbenchMessages.Workbench_pasteToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.paste"); //$NON-NLS-1$
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
action.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED));
return action;
}
};
/**
* Workbench action (id "preferences"): Displays the Preferences dialog.
* This action maintains its enablement state.
*/
public static final ActionFactory PREFERENCES = new ActionFactory(
"preferences") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new OpenPreferencesAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "previous"): Previous. This action is a
* {@link RetargetAction} with id "previous". This action
* maintains its enablement state.
*/
public static final ActionFactory PREVIOUS = new ActionFactory("previous") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_previous);
action.setToolTipText(WorkbenchMessages.Workbench_previousToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.previous"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "previousEditor"): Previous editor. This action
* maintains its enablement state.
* <p>
* <code>NEXT_EDITOR</code> and <code>PREVIOUS_EDITOR</code> form a
* cycle action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory PREVIOUS_EDITOR = new ActionFactory(
"previousEditor") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CycleEditorAction(window, false);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "previousPart"): Previous part. This action
* maintains its enablement state.
* <p>
* <code>NEXT_PART</code> and <code>PREVIOUS_PART</code> form a cycle
* action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory PREVIOUS_PART = new ActionFactory(
"previousPart") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CyclePartAction(window, false);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "previousPerspective"): Previous perspective. This
* action maintains its enablement state.
* <p>
* <code>NEXT_PERSPECTIVE</code> and <code>PREVIOUS_PERSPECTIVE</code>
* form a cycle action pair. For a given window, use
* {@link ActionFactory#linkCycleActionPair
* ActionFactory.linkCycleActionPair</code>} to connect the two.
* </p>
*/
public static final ActionFactory PREVIOUS_PERSPECTIVE = new ActionFactory(
"previousPerspective") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new CyclePerspectiveAction(window, false);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "print"): Print. This action is a
* {@link RetargetAction} with id "print". This action maintains
* its enablement state.
*/
public static final ActionFactory PRINT = new ActionFactory("print") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_print);
action.setToolTipText(WorkbenchMessages.Workbench_printToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.file.print"); //$NON-NLS-1$
action
.setImageDescriptor(WorkbenchImages
.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_PRINT_EDIT));
action
.setDisabledImageDescriptor(WorkbenchImages
.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_PRINT_EDIT_DISABLED));
return action;
}
};
/**
* Workbench action (id "properties"): Properties. This action is a
* {@link RetargetAction} with id "properties". This action
* maintains its enablement state.
*/
public static final ActionFactory PROPERTIES = new ActionFactory(
"properties") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_properties);
action.setToolTipText(WorkbenchMessages.Workbench_propertiesToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.file.properties"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "quit"): Quit (close the workbench). This action
* maintains its enablement state.
*/
public static final ActionFactory QUIT = new ActionFactory("quit") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new QuitAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "redo"): Redo. This action is a
* {@link RetargetAction} with id "redo". This action maintains
* its enablement state.
*/
public static final ActionFactory REDO = new ActionFactory("redo") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
LabelRetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_redo);
action.setToolTipText(WorkbenchMessages.Workbench_redoToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.redo"); //$NON-NLS-1$
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
action.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_REDO_DISABLED));
return action;
}
};
/**
* Workbench action (id "refresh"): Refresh. This action is a
* {@link RetargetAction} with id "refresh". This action
* maintains its enablement state.
*/
public static final ActionFactory REFRESH = new ActionFactory("refresh") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_refresh);
action.setToolTipText(WorkbenchMessages.Workbench_refreshToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.file.refresh"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "rename"): Rename. This action is a
* {@link RetargetAction} with id "rename". This action maintains
* its enablement state.
*/
public static final ActionFactory RENAME = new ActionFactory("rename") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_rename);
action.setToolTipText(WorkbenchMessages.Workbench_renameToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.rename"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "resetPerspective"): Resets the current
* perspective. This action maintains its enablement state.
*/
public static final ActionFactory RESET_PERSPECTIVE = new ActionFactory(
"resetPerspective") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ResetPerspectiveAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "revert"): Revert. This action is a
* {@link RetargetAction} with id "revert". This action maintains
* its enablement state.
*/
public static final ActionFactory REVERT = new ActionFactory("revert") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_revert);
action.setToolTipText(WorkbenchMessages.Workbench_revertToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.file.revert"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "save"): Save the active editor. This action
* maintains its enablement state.
*/
public static final ActionFactory SAVE = new ActionFactory("save") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new SaveAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "saveAll"): Save all open editors with unsaved
* changes. This action maintains its enablement state.
*/
public static final ActionFactory SAVE_ALL = new ActionFactory("saveAll") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new SaveAllAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "saveAs"): Save As for the active editor. This
* action maintains its enablement state.
*/
public static final ActionFactory SAVE_AS = new ActionFactory("saveAs") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new SaveAsAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "savePerspective"): Save the current perspective.
* This action maintains its enablement state.
*/
public static final ActionFactory SAVE_PERSPECTIVE = new ActionFactory(
"savePerspective") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new SavePerspectiveAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "selectAll"): Select All. This action is a
* {@link RetargetAction} with id "selectAll". This action
* maintains its enablement state.
*/
public static final ActionFactory SELECT_ALL = new ActionFactory(
"selectAll") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction(getId(),WorkbenchMessages.Workbench_selectAll);
action.setToolTipText(WorkbenchMessages.Workbench_selectAllToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.selectAll"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "showEditor"): Show/hide the editor area. This
* action maintains its enablement state.
*/
public static final ActionFactory SHOW_EDITOR = new ActionFactory(
"showEditor") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ToggleEditorsVisibilityAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "showOpenEditors"): Show a list of open (and
* recently closed) editors. This action maintains its enablement state.
*/
public static final ActionFactory SHOW_OPEN_EDITORS = new ActionFactory(
"showOpenEditors") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new WorkbenchEditorsAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "showWorkbookEditors"): Shows a list of open editors
* in the current or last active workbook.
*/
public static final ActionFactory SHOW_WORKBOOK_EDITORS = new ActionFactory(
"showWorkBookEditors") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new WorkbookEditorsAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "showQuickAccess"): Shows a list of UI elements like editors, views, perspectives etc.
* @since 3.3
*/
public static final ActionFactory SHOW_QUICK_ACCESS = new ActionFactory(
"showQuickAccess") { //$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
IWorkbenchAction action = new QuickAccessMenu(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "showPartPaneMenu"): Show the part pane menu. This
* action maintains its enablement state.
*/
public static final ActionFactory SHOW_PART_PANE_MENU = new ActionFactory(
"showPartPaneMenu") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ShowPartPaneMenuAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "showViewMenu"): Show the view menu. This action
* maintains its enablement state.
*/
public static final ActionFactory SHOW_VIEW_MENU = new ActionFactory(
"showViewMenu") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ShowViewMenuAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "undo"): Undo. This action is a
* {@link RetargetAction} with id "undo". This action maintains
* its enablement state.
*/
public static final ActionFactory UNDO = new ActionFactory("undo") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
LabelRetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_undo);
action.setToolTipText(WorkbenchMessages.Workbench_undoToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.edit.undo"); //$NON-NLS-1$
ISharedImages sharedImages = window.getWorkbench()
.getSharedImages();
action.setImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_UNDO));
action.setDisabledImageDescriptor(sharedImages
.getImageDescriptor(ISharedImages.IMG_TOOL_UNDO_DISABLED));
return action;
}
};
/**
* Workbench action (id "up"): Up. This action is a
* {@link RetargetAction} with id "up". This action maintains its
* enablement state.
*/
public static final ActionFactory UP = new ActionFactory("up") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new LabelRetargetAction(getId(),WorkbenchMessages.Workbench_up);
action.setToolTipText(WorkbenchMessages.Workbench_upToolTip);
window.getPartService().addPartListener(action);
action.setActionDefinitionId("org.eclipse.ui.navigate.up"); //$NON-NLS-1$
return action;
}
};
/**
* Workbench action (id "helpContents"): Open the help contents. This action
* is always enabled.
*/
public static final ActionFactory HELP_CONTENTS = new ActionFactory(
"helpContents") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new HelpContentsAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "helpSearch"): Open the help search. This action
* is always enabled.
*
* @since 3.1
*/
public static final ActionFactory HELP_SEARCH = new ActionFactory(
"helpSearch") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new HelpSearchAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "dynamicHelp"): Open the dynamic help. This action
* is always enabled.
*
* @since 3.1
*/
public static final ActionFactory DYNAMIC_HELP = new ActionFactory(
"dynamicHelp") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new DynamicHelpAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "openPerspectiveDialog"): Open the Open Perspective dialog. This action
* is always enabled.
*
* @since 3.1
*/
public static final ActionFactory OPEN_PERSPECTIVE_DIALOG = new ActionFactory(
"openPerspectiveDialog") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new OpenPerspectiveDialogAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "newEditor"): Open a new editor on the active editor's input.
* This action maintains its enablement state.
*
* @since 3.1
*/
public static final ActionFactory NEW_EDITOR = new ActionFactory(
"newEditor") {//$NON-NLS-1$
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)
*/
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new NewEditorAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "toggleCoolbar"): Toggle the visibility of the
* coolbar and perspective switcher. This will only enable visibility of the
* coolbar and perspective bar if the window advisor creating the window
* allowed for their visibility initially.
*
* @since 3.3
*/
public static final ActionFactory TOGGLE_COOLBAR = new ActionFactory(
"toggleCoolbar") { //$NON-NLS-1$
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new ToggleCoolbarVisibilityAction(window);
action.setId(getId());
return action;
}
};
/**
* Establishes bi-direction connections between the forward and backward
* actions of a cycle pair.
* <p>
* Example usage:
*
* <pre>
* ActionFactory.IWorkbenchAction nextEditorAction = ActionFactory.NEXT_EDITOR
* .create(window);
* ActionFactory.IWorkbenchAction previousEditorAction = ActionFactory.PREVIOUS_EDITOR
* .create(window);
* ActionFactory.linkCycleActionPair(nextEditorAction, previousEditorAction);
* </pre>
*
* </p>
*
* @param next
* the action that moves forward
* @param previous
* the action that moves backward
*/
public static void linkCycleActionPair(IWorkbenchAction next,
IWorkbenchAction previous) {
if (!(next instanceof CyclePartAction)) {
throw new IllegalArgumentException();
}
if (!(previous instanceof CyclePartAction)) {
throw new IllegalArgumentException();
}
CyclePartAction n = (CyclePartAction) next;
CyclePartAction p = (CyclePartAction) previous;
n.setForwardActionDefinitionId(next.getActionDefinitionId());
n.setBackwardActionDefinitionId(previous.getActionDefinitionId());
p.setForwardActionDefinitionId(next.getActionDefinitionId());
p.setBackwardActionDefinitionId(previous.getActionDefinitionId());
}
/**
* Id of actions created by this action factory.
*/
private final String actionId;
/**
* Creates a new workbench action factory with the given id.
*
* @param actionId
* the id of actions created by this action factory
*/
protected ActionFactory(String actionId) {
this.actionId = actionId;
}
/**
* Creates a new standard action for the given workbench window. The action
* has an id as specified by the particular factory.
* <p>
* Actions automatically register listeners against the workbench window so
* that they can keep their enablement state up to date. Ordinarily, the
* window's references to these listeners will be dropped automatically
* when the window closes. However, if the client needs to get rid of an
* action while the window is still open, the client must call
* {@link IWorkbenchAction#dispose dispose}to give the action an
* opportunity to deregister its listeners and to perform any other
* cleanup.
* </p>
*
* @param window
* the workbench window
* @return the workbench action
*/
public abstract IWorkbenchAction create(IWorkbenchWindow window);
/**
* Returns the id of this action factory.
*
* @return the id of actions created by this action factory
*/
public String getId() {
return actionId;
}
}