| /******************************************************************************* |
| * <copyright> |
| * |
| * Copyright (c) 2005, 2010 SAP AG. |
| * 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: |
| * SAP AG - initial API, implementation and documentation |
| * |
| * </copyright> |
| * |
| *******************************************************************************/ |
| package org.eclipse.graphiti.tb; |
| |
| import java.util.List; |
| |
| import org.eclipse.graphiti.datatypes.IRectangle; |
| |
| /** |
| * The interface IContextButtonPadData allows to define all information needed |
| * to show a context button pad. |
| * |
| * @noimplement This interface is not intended to be implemented by clients. |
| * @noextend This interface is not intended to be extended by clients. |
| */ |
| public interface IContextButtonPadData { |
| |
| /** |
| * Returns the location of the context button pad. It can not be null. These |
| * are not the outer bounds of the context button pad, but the inner |
| * rectangle, around which the context button pad is shown. Often these are |
| * the outer bounds of the figure, for which the context button pad is |
| * shown. But in some cases it makes sense to use the outer bounds of an |
| * inner figure or to shrink/enlarge the rectangle. |
| * <p> |
| * The location can be changed by working directly on the result rectangle |
| * (e.g. getPadLocation().setRectangle()). |
| * |
| * @return The location of the context button pad. |
| */ |
| IRectangle getPadLocation(); |
| |
| /** |
| * Returns the generic context buttons (remove, delete, update, ...) to show |
| * in the context button pad. It can not be null, but it can be empty. Note, |
| * that the differentiation between the button semantics (generic, |
| * domain-specific, collapse, ...) is only made to display the buttons |
| * differently. |
| * <p> |
| * The button list can be changed by working directly on the result list |
| * (e.g. getGenericContextButtons().add()). |
| * <p> |
| * To ensure, that the generic context buttons are identical in all tools, |
| * you have to create them using |
| * {@link DefaultToolBehaviorProvider#setGenericContextButtons(IContextButtonPadData, org.eclipse.graphiti.mm.pictograms.PictogramElement, int)}. |
| * |
| * @return The generic context buttons (remove, delete, update, ...) to show |
| * in the context button pad. |
| * |
| * @see DefaultToolBehaviorProvider#setGenericContextButtons(IContextButtonPadData, |
| * org.eclipse.graphiti.mm.pictograms.PictogramElement, int) |
| */ |
| List<IContextButtonEntry> getGenericContextButtons(); |
| |
| /** |
| * Returns the domain specific context buttons to show in the context button |
| * pad. It can not be null, but it can be empty. Note, that the |
| * differentiation between the button semantics (generic, domain-specific, |
| * collapse, ...) is only made to display the buttons differently. |
| * <p> |
| * The button list can be changed by working directly on the result list |
| * (e.g. getDomainSpecificContextButtons().add()). |
| * |
| * @return The domain specific context buttons to show in the context button |
| * pad. |
| */ |
| List<IContextButtonEntry> getDomainSpecificContextButtons(); |
| |
| /** |
| * Returns the collapse context button to show in the context button pad. It |
| * can be null. Note, that the differentiation between the button semantics |
| * (generic, domain-specific, collapse, ...) is only made to display the |
| * buttons differently. |
| * |
| * @return The collapse context button to show in the context button pad. |
| */ |
| IContextButtonEntry getCollapseContextButton(); |
| |
| /** |
| * Sets the collapse context button to show in the context button pad. Note, |
| * that the differentiation between the button semantics (generic, |
| * domain-specific, collapse, ...) is only made to display the buttons |
| * differently. |
| * <p> |
| * To ensure, that the collapse context button is identical in all tools, |
| * you have to create it using |
| * {@link ContextEntryHelper#createCollapseContextButton(boolean, org.eclipse.graphiti.features.IFeature, org.eclipse.graphiti.features.context.IContext)}. |
| * |
| * @param collapseContextButton |
| * The collapse context button to show in the context button pad. |
| * A value of null means, that there is no collapse context |
| * button. |
| * |
| * @see ContextEntryHelper#createCollapseContextButton(boolean, |
| * org.eclipse.graphiti.features.IFeature, |
| * org.eclipse.graphiti.features.context.IContext) |
| */ |
| void setCollapseContextButton(IContextButtonEntry collapseContextButton); |
| } |