| <?xml version='1.0' encoding='UTF-8'?> |
| <!-- Schema file written by PDE --> |
| <schema targetNamespace="org.eclipse.sirius.diagram.ui" xmlns="http://www.w3.org/2001/XMLSchema"> |
| <annotation> |
| <appInfo> |
| <meta.schema plugin="org.eclipse.sirius.diagram.ui" id="tabbarContributor" name="Tabbar Contributor Extension"/> |
| </appInfo> |
| <documentation> |
| This extension-point allows providing a full customized tab-bar by implementing the <code>org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.ITabbarContributor</code>. See the ITabbarContributor documentation for more details. |
| </documentation> |
| </annotation> |
| |
| <element name="extension"> |
| <annotation> |
| <appInfo> |
| <meta.element /> |
| </appInfo> |
| </annotation> |
| <complexType> |
| <sequence minOccurs="1" maxOccurs="unbounded"> |
| <element ref="tabbarContributor"/> |
| </sequence> |
| <attribute name="point" type="string" use="required"> |
| <annotation> |
| <documentation> |
| The fully qualified identifier of the target extension point. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="id" type="string"> |
| <annotation> |
| <documentation> |
| An optional identifier of the extension instance. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation> |
| An optional name of the extension instance. |
| </documentation> |
| <appInfo> |
| <meta.attribute translatable="true"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <element name="tabbarContributor"> |
| <annotation> |
| <documentation> |
| ITabbarContributor implementation |
| </documentation> |
| </annotation> |
| <complexType> |
| <attribute name="class" type="string" use="required"> |
| <annotation> |
| <documentation> |
| An implementation of ITabbarContributor. An abstract implementation AbstractTabbarContributor is available to reuse the existing Sirius actions. See the interface javadoc for more details. |
| </documentation> |
| <appInfo> |
| <meta.attribute kind="java" basedOn=":org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.ITabbarContributor"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="since"/> |
| </appInfo> |
| <documentation> |
| This extension-point is available since Sirius 4.0.0. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="examples"/> |
| </appInfo> |
| <documentation> |
| <pre><extension |
| point="org.eclipse.sirius.diagram.ui.tabbarContributor"> |
| <tabbarContributor |
| class="org.eclipse.sirius.tests.swtbot.tabbar.SampleTabbarExt"> |
| </tabbarContributor> |
| </extension> |
| </pre> |
| Example of ITabbarContributor implementation. In this example, we provide two different contributions when the diagram background is selected or when a diagram element is selected. If an edge is selected, the accept method return false. Thus, the tabbar will be empty. |
| <pre> |
| public class SampleTabbarExt extends AbstractTabbarContributor { |
| |
| private ArrayList<IContributionItem> diagramContributionItems; |
| |
| private ArrayList<IContributionItem> diagramElementContributionItems; |
| |
| @Override |
| public List<IContributionItem> getContributionItems(ISelection selection, IDiagramWorkbenchPart part, ToolBarManager manager) { |
| List<IContributionItem> contributionItems = new ArrayList<IContributionItem>(); |
| if (selection instanceof IStructuredSelection) { |
| Object firstElement = ((IStructuredSelection) selection).getFirstElement(); |
| if (firstElement instanceof AbstractDDiagramEditPart) { |
| //If the user selects the diagram background, a specifc contribution items list is returned. |
| contributionItems = getDiagramContributionItem(part, manager); |
| } else if (firstElement instanceof IAbstractDiagramNodeEditPart) { |
| //If the user selects a DDIagramElement, another contribution items list is returned. |
| contributionItems = getDiagramElementContributionItem(part, manager); |
| } |
| } |
| return contributionItems; |
| } |
| |
| @Override |
| public boolean accept(ISelection selection) { |
| boolean accept = false; |
| if (selection == null) { |
| accept = true; |
| } else if (selection instanceof IStructuredSelection) { |
| Object firstElement = ((IStructuredSelection) selection).getFirstElement(); |
| if (firstElement instanceof AbstractDDiagramEditPart || firstElement instanceof IAbstractDiagramNodeEditPart) { |
| accept = true; |
| } |
| } |
| return accept; |
| } |
| |
| @Override |
| public List<IContributionItem> getContributionItems(IDiagramWorkbenchPart part, ToolBarManager manager) { |
| return getDiagramContributionItem(part, manager); |
| } |
| |
| private List<IContributionItem> getDiagramContributionItem(IDiagramWorkbenchPart part, ToolBarManager manager) { |
| if (diagramContributionItems == null) { |
| diagramContributionItems = new ArrayList<IContributionItem>(); |
| diagramContributionItems.add(createArrangeMenuManager(part)); |
| diagramContributionItems.add(createSelectMenuManager()); |
| diagramContributionItems.add(createLayerContribution(part, manager)); |
| diagramContributionItems.add(createZoomInContribution(part)); |
| diagramContributionItems.add(createLayoutingModeContributionItem(part)); |
| diagramContributionItems.add(createCopyAppearancePropertiesContribution(part)); |
| diagramContributionItems.add(createCopyLayoutContribution(part)); |
| } |
| return diagramContributionItems; |
| } |
| |
| private List<IContributionItem> getDiagramElementContributionItem(IDiagramWorkbenchPart part, ToolBarManager manager) { |
| if (diagramElementContributionItems == null) { |
| diagramElementContributionItems = new ArrayList<IContributionItem>(); |
| diagramElementContributionItems.add(createArrangeMenuManager(part)); |
| diagramElementContributionItems.add(createAlignMenuManager()); |
| diagramElementContributionItems.add(createHideElementLabelContribution(part)); |
| diagramElementContributionItems.add(createHideElementContribution(part)); |
| diagramElementContributionItems.add(createDeleteFromDiagramContribution(part)); |
| diagramElementContributionItems.add(createDeleteFromModelContribution(part)); |
| IContributionItem pinElementContributionItem = createPinElementContribution(part); |
| diagramElementContributionItems.add(pinElementContributionItem); |
| diagramElementContributionItems.add(createUnPinElementContribution(part, pinElementContributionItem)); |
| diagramElementContributionItems.add(createAutoSizeContribution(part)); |
| } |
| return diagramElementContributionItems; |
| } |
| </pre> |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="apiinfo"/> |
| </appInfo> |
| <documentation> |
| org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.ITabbarContributor allows providing a customized tab-bar for a specific selection. See "Supplied Implementation" to reuse the default Sirius actions. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="implementation"/> |
| </appInfo> |
| <documentation> |
| org.eclipse.sirius.diagram.ui.tools.api.editor.tabbar.AbstractTabbarContributor is an abstract implementation of ITabbarContributor that allows reusing one or several of the default Sirius contribution items. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="copyright"/> |
| </appInfo> |
| <documentation> |
| Copyright (c) 2015 Obeo<br/> |
| |
| This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License 2.0 |
| which accompanies this distribution, and is available at |
| <a href="https://www.eclipse.org/legal/epl-2.0">https://www.eclipse.org/legal/epl-v20.html</a>/ |
| |
| SPDX-License-Identifier: EPL-2.0 |
| </documentation> |
| </annotation> |
| |
| </schema> |