blob: 9dbf9a6d8f834b4c307450da4dcf14688b32d5b1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.menus;
import java.util.Map;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.services.IServiceLocator;
/**
* A help class for the various parameters that can be used with command
* contributions. Mandatory parameters are in the constructor, and public fields
* can be set to fill in other parameters.
*
* @since 3.4
*/
public class CommandContributionItemParameter {
/**
* a service locator that is most appropriate for this contribution.
* Typically the local {@link IWorkbenchWindow} or
* {@link IWorkbenchPartSite} will be sufficient. Must not be
* <code>null</code>.
*/
public IServiceLocator serviceLocator;
/**
* The id for this item. May be <code>null</code>. Items without an id
* cannot be referenced later.
*/
public String id;
/**
* A command id for a defined command. Must not be <code>null</code>.
*/
public String commandId;
/**
* A map of strings to strings which represent parameter names to values.
* The parameter names must match those in the command definition. May be
* <code>null</code>
*/
public Map parameters;
/**
* An icon for this item. May be <code>null</code>.
*/
public ImageDescriptor icon;
/**
* A disabled icon for this item. May be <code>null</code>.
*/
public ImageDescriptor disabledIcon;
/**
* A hover icon for this item. May be <code>null</code>.
*/
public ImageDescriptor hoverIcon;
/**
* A label for this item. May be <code>null</code>.
*/
public String label;
/**
* A mnemonic for this item to be applied to the label. May be
* <code>null</code>.
*/
public String mnemonic;
/**
* A tooltip for this item. May be <code>null</code>. Tooltips are
* currently only valid for toolbar contributions.
*/
public String tooltip;
/**
* The style of this menu contribution. See the CommandContributionItem
* STYLE_* contants.
*/
public int style;
/**
* The help context id to be applied to this contribution. May be
* <code>null</code>
*/
public String helpContextId;
/**
* The icon style to use. May be <code>null</code> for default style.
*
* @see org.eclipse.ui.commands.ICommandImageService
*/
public String iconStyle;
/**
* The visibility tracking for a menu contribution.
*/
public boolean visibleEnabled;
/**
* Any number of mode bits, like
* {@link CommandContributionItem#MODE_FORCE_TEXT}.
*/
public int mode;
/**
* Create the parameter object. Nullable attributes can be set directly.
*
* @param serviceLocator
* a service locator that is most appropriate for this
* contribution. Typically the local {@link IWorkbenchWindow} or
* {@link IWorkbenchPartSite} will be sufficient. Must not be
* <code>null</code>.
* @param id
* The id for this item. May be <code>null</code>. Items
* without an id cannot be referenced later.
* @param commandId
* A command id for a defined command. Must not be
* <code>null</code>.
* @param style
* The style of this menu contribution. See the STYLE_* contants.
*/
public CommandContributionItemParameter(IServiceLocator serviceLocator,
String id, String commandId, int style) {
this.serviceLocator = serviceLocator;
this.id = id;
this.commandId = commandId;
this.style = style;
}
/**
* Build the parameter object.
* <p>
* <b>Note:</b> This constructor should not be called outside the framework.
* </p>
*
* @param serviceLocator
* a service locator that is most appropriate for this
* contribution. Typically the local {@link IWorkbenchWindow} or
* {@link IWorkbenchPartSite} will be sufficient. Must not be
* <code>null</code>.
* @param id
* The id for this item. May be <code>null</code>. Items
* without an id cannot be referenced later.
* @param commandId
* A command id for a defined command. Must not be
* <code>null</code>.
* @param parameters
* A map of strings to strings which represent parameter names to
* values. The parameter names must match those in the command
* definition. May be <code>null</code>
* @param icon
* An icon for this item. May be <code>null</code>.
* @param disabledIcon
* A disabled icon for this item. May be <code>null</code>.
* @param hoverIcon
* A hover icon for this item. May be <code>null</code>.
* @param label
* A label for this item. May be <code>null</code>.
* @param mnemonic
* A mnemonic for this item to be applied to the label. May be
* <code>null</code>.
* @param tooltip
* A tooltip for this item. May be <code>null</code>. Tooltips
* are currently only valid for toolbar contributions.
* @param style
* The style of this menu contribution. See the STYLE_* contants.
* @param helpContextId
* the help context id to be applied to this contribution. May be
* <code>null</code>
* @param visibleEnabled
* Visibility tracking for the menu contribution.
* @noreference This constructor is not intended to be referenced by clients.
*/
public CommandContributionItemParameter(IServiceLocator serviceLocator,
String id, String commandId, Map parameters, ImageDescriptor icon,
ImageDescriptor disabledIcon, ImageDescriptor hoverIcon,
String label, String mnemonic, String tooltip, int style,
String helpContextId, boolean visibleEnabled) {
this.serviceLocator = serviceLocator;
this.id = id;
this.commandId = commandId;
this.parameters = parameters;
this.icon = icon;
this.disabledIcon = disabledIcon;
this.hoverIcon = hoverIcon;
this.label = label;
this.mnemonic = mnemonic;
this.tooltip = tooltip;
this.style = style;
this.helpContextId = helpContextId;
this.visibleEnabled = visibleEnabled;
}
}