blob: e361e748ecbb88a35fec47b730e6998df84ba841 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 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/eplv10.html
//
// Contributors:
// IBM Corporation initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.rcp.ui.actions;
import org.eclipse.epf.rcp.ui.RCPUIResources;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.RetargetAction;
/**
* Creates actions that are specific to the EPF Composer workbench.
*
* @author Bingxue Xu
* @author Kelvin Low
* @since 1.0
*/
public abstract class UIActionFactory extends ActionFactory {
/**
* Creates a new instance.
*/
protected UIActionFactory(String actionId) {
super(actionId);
}
/**
* Create a customized SHOW_INTRO action
*/
public static final ActionFactory SHOW_INTRO = new ActionFactory("intro") { //$NON-NLS-1$
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new IntroductionAction(window);
action.setId(getId());
return action;
}
};
/**
* Create a customized OPEN_ELEMENT action that is equavilent to the EDIT menu
*/
public static final ActionFactory OPEN_ELEMENT = new ActionFactory("edit") { //$NON-NLS-1$
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
RetargetAction action = new RetargetAction("OpenElement", //$NON-NLS-1$
RCPUIResources.editMenuItem_text);
window.getPartService().addPartListener(action);
action
.setActionDefinitionId("org.eclipse.epf.rcp.ui.actions.openElement"); //$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;
}
};
/**
* Create a customized IMPORT action
*/
public static final ActionFactory UI_IMPORT = new ActionFactory("import") { //$NON-NLS-1$
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new UIImportResourcesAction(window);
action.setId(getId());
return action;
}
};
/**
* Workbench action (id "export"): Opens the export wizard. This action
* maintains its enablement state.
*/
public static final ActionFactory UI_EXPORT = new ActionFactory("export") { //$NON-NLS-1$
public IWorkbenchAction create(IWorkbenchWindow window) {
if (window == null) {
throw new IllegalArgumentException();
}
IWorkbenchAction action = new UIExportResourcesAction(window);
action.setId(getId());
return action;
}
};
}