<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
    Copyright (c) 2016 Chalmers | University of Gothenburg, rt-labs 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:
         Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
 -->

<plugin>
   <extension
         point="net.sourceforge.plantuml.eclipse.diagramTextProvider">
      <diagramTextProvider
            providerClass="org.eclipse.capra.ui.plantuml.DiagramTextProviderHandler">
      </diagramTextProvider>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
     
      <command
            id="org.eclipse.capra.ui.plantuml.toggleTransitivity"
            name="%command.name.transitivity">
         <state
               class="org.eclipse.jface.commands.ToggleState"
               id="org.eclipse.ui.commands.toggleState">
         </state>
      </command>
      <command
            id="org.eclipse.capra.ui.plantuml.displayGraph"
            name="%command.name.graph">
         <state
               class="org.eclipse.jface.commands.ToggleState"
               id="org.eclipse.ui.commands.toggleState">
         </state>
      </command>
      <command
            id="org.eclipse.capra.ui.plantuml.toggleInternalLinks"
            name="%command.name.internalLinks">
            <state
               class="org.eclipse.jface.commands.ToggleState"
               id="org.eclipse.ui.commands.toggleState">
         </state>
      </command>
      <command
            id="org.eclipse.capra.ui.plantuml.selectRelationships"
            name="%command.name.relationshipTypes">
      </command>
      <command
            id="org.eclipse.capra.ui.plantuml.transitivtyDepth"
            name="%command.name.depth">
      </command>
   </extension>
   <extension
         point="org.eclipse.ui.handlers">
      <handler
            class="org.eclipse.capra.ui.plantuml.ToggleTransitivityHandler"
            commandId="org.eclipse.capra.ui.plantuml.toggleTransitivity">
      </handler>
      <handler
            class="org.eclipse.capra.ui.plantuml.ToggleDisplayGraphHandler"
            commandId="org.eclipse.capra.ui.plantuml.displayGraph">
      </handler>
      <handler
            class="org.eclipse.capra.ui.plantuml.DisplayInternalLinksHandler"
            commandId="org.eclipse.capra.ui.plantuml.toggleInternalLinks">
      </handler>
      <handler
            class="org.eclipse.capra.ui.plantuml.SelectRelationshipsHandler"
            commandId="org.eclipse.capra.ui.plantuml.selectRelationships">
      </handler>
      <handler
            class="org.eclipse.capra.ui.plantuml.TransitivityDepthHandler"
            commandId="org.eclipse.capra.ui.plantuml.transitivtyDepth">
      </handler>
   </extension>
	<extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="menu:net.sourceforge.plantuml.eclipse.views.PlantUmlView?after=additions">
         <command
               commandId="org.eclipse.capra.ui.plantuml.toggleTransitivity"
               label="%command.label.transitivity"
               style="toggle">
         </command>
         <command
               commandId="org.eclipse.capra.ui.plantuml.displayGraph"
               label="%command.label.graph"
               style="toggle">
         </command>
     	<command
               commandId="org.eclipse.capra.ui.plantuml.toggleInternalLinks"
               label="%command.label.internalLinks"
               style="toggle">
         </command>
         <command
               commandId="org.eclipse.capra.ui.plantuml.selectRelationships"
               label="%command.label.relationshipTypes"
               style="push">
         </command>
         <command
               commandId="org.eclipse.capra.ui.plantuml.transitivtyDepth"
               label="%command.label.depth"
               style="push">
         </command>
      </menuContribution>
   </extension>
   
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="org.eclipse.capra.generic.perspective.CapraPerspective">
         <view
               id="net.sourceforge.plantuml.eclipse.views.PlantUmlView"
               minimized="false"
               ratio="0.25"
               relationship="right"
               relative="org.eclipse.capra.generic.views.SelectionView">
         </view>
      </perspectiveExtension>
   </extension>
</plugin>
