Fix potential overlap of handlers for opening derivative editor
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / plugin.xml
index 7cf0948326fe2165c4c2c5a2ac01facb141dd4a9..22b08f1933de631fb02b789fb6967a0fea5ddb21 100644 (file)
@@ -81,7 +81,7 @@
                default="false"
                icon="icons/derivate_view-16x16-32.png"
                id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"
-               name="Derivative Editor">
+               name="%editor.name.DERIVATIVE_EDITOR">
          </editor>
    </extension>
       <extension
       </menuContribution>
       <menuContribution
             locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?before=eu.etaxonomy.taxeditor.store.showViewMenu.details">
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.showViewMenu"
+               visible="true">
+         </separator>
          <command
                commandId="org.eclipse.ui.views.showView"
                label="%command.label.4"
                </reference>
             </visibleWhen>
          </command>
-         <separator
-               name="eu.etaxonomy.taxeditor.editor.showViewMenu"
-               visible="true">
-         </separator>
          <command
                commandId="org.eclipse.ui.views.showView"
                label="%command.label.5"
                visible="true">
          </separator>
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
-               label="Derivative Editor"
+               commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditorFromMenu"
+               label="%command.label.DERIVATIVE_EDITOR"
                style="push">
             <visibleWhen
                   checkEnabled="true">
          </separator>
       </menuContribution>
       <menuContribution
-            locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?after=org.eclipse.ui.views.showView.supplemental">
+            locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?before=eu.etaxonomy.taxeditor.store.showViewMenu.internal">
          <separator
                name="eu.etaxonomy.taxeditor.store.showViewMenu.validation.separator"
                visible="true">
                         <reference
                               definitionId="isMisapplication">
                         </reference>
+                        <reference
+                              definitionId="isHomotypicSynonymOfAcceptedTaxon">
+                        </reference>
                      </or>
                   </not>
                </visibleWhen>
                label="%command.label.27"
                style="push">
          </command>
-         <separator
-               name="eu.etaxonomy.taxeditor.taxonDescriptionEditor.separator3"
-               visible="true">
-         </separator>
          <menu
                label="%menu.label.1">
             <dynamic
                </or>
             </visibleWhen>
          </menu>
+         <separator
+               name="eu.etaxonomy.taxeditor.taxonDescriptionEditor.separator3"
+               visible="true">
+         </separator>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.moveDescriptionToTaxon"
                label="%command.label.28"
               </or>
             </visibleWhen>
          </command>
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.separator1">
+         </separator>
+         <dynamic
+               class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
+               id="eu.etaxonomy.taxeditor.editor.descriptive.cdmViewerContextMenu">
+         </dynamic>
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.separator1">
+         </separator>
          <separator
                name="eu.etaxonomy.taxeditor.taxonDescriptionEditor.separator.afterNew"
                visible="true">
                commandId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.delete"
                label="%command.label.30"
                style="push">
+                     <visibleWhen
+                           checkEnabled="true">
+                        <count
+                              value="+">
+                        </count>
+                     </visibleWhen>
          </command>
          <separator
                name="eu.etaxonomy.taxeditor.taxonDescriptionEditor.separator.afterDelete"
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.separator4"
+               visible="true">
+         </separator>
+         <dynamic
+               class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
+               id="eu.etaxonomy.taxeditor.editor.derivativeEditor.CdmViewerContextMenu">
+         </dynamic>
+         <dynamic
+               class="eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu.DerivateViewContextMenu"
+               id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
+         </dynamic>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+               label="%command.label.LINK_WITH_TAXON_SELECTION"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <not>
+                  <reference
+                        definitionId="isDerivativeEditorLinkedToTaxonSelection">
+                  </reference>
+               </not>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+               label="%command.label.UNLINK_FROM_TAXON_SELECTION"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isDerivativeEditorLinkedToTaxonSelection">
+               </reference>
+            </visibleWhen>
+         </command>
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.separator3"
+               visible="true">
+         </separator>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead"
+               id="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleReadMenuItem"
+               label="%command.label.REUSE_SINGLE_READ_HERE"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSingleReadReusableHere">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard"
+               label="%command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSingleRead">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence"
+               label="%command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSingleReadReused">
+               </reference>
+            </visibleWhen>
+         </command>
+         <separator
+               name="eu.etaxonomy.taxeditor.editor.separator7"
+               visible="true">
+         </separator>
          <command
-               commandId="eu.etaxonomy.taxeditor.editor.derivate.delete"
+               commandId="org.eclipse.ui.edit.delete"
                label="%command.label.52"
                style="push">
          </command>
                label="%command.label.54"
                style="push">
          </command>
-         <dynamic
-               class="eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu.DerivateViewContextMenu"
-               id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
-         </dynamic>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
             <command
                   commandId="eu.etaxonomy.taxeditor.editor.derivative.listenToSelectionChange"
                   icon="icons/synced.gif"
-                  label="Link with Taxon Selection"
+                  label="%command.label.LINK_WITH_TAXON_SELECTIO"
                   style="toggle">
                <visibleWhen
                      checkEnabled="true">
       </handler>
       <handler
             class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
-            commandId="eu.etaxonomy.taxeditor.editor.view.derivate.command.delete">
+            commandId="org.eclipse.ui.edit.delete">
          <activeWhen>
             <with
                   variable="activePartId">
             </reference>
          </activeWhen>
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
+            commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForDescriptionElement"
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="eu.etaxonomy.taxeditor.editor.view.descriptive">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForTaxonNode"
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor">
+         <activeWhen>
+            <with
+                  variable="selection">
+               <reference
+                     definitionId="isTaxonNode">
+               </reference>
+            </with>
+         </activeWhen>
+      </handler>
    </extension>
    <extension
          name="%extension.name"
             name="%command.name.41">
       </command>
       <command
-            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenTaxonEditorHandler"
-            id="eu.etaxonomy.taxeditor.editor.openTaxonEditor"
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonHandler"
+            id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon"
             name="%command.name.42">
          <commandParameter
-               id="eu.etaxonomy.taxeditor.editor.taxonParameter"
+               id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon.uuid"
                name="%commandParameter.name"
                optional="false"
-               typeId="eu.etaxonomy.taxeditor.editor.taxonParameterType">
+               typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+         </commandParameter>
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonNodeHandler"
+            id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxonNode"
+            name="%command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE">
+         <commandParameter
+               id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxonNode.uuid"
+               name="taxon node uuid"
+               optional="true"
+               typeId="eu.etaxonomy.taxeditor.uuidParameterType">
          </commandParameter>
       </command>
-      <commandParameterType
-            converter="eu.etaxonomy.taxeditor.editor.handler.TaxonParameterConverter"
-            id="eu.etaxonomy.taxeditor.editor.taxonParameterType"
-            type="eu.etaxonomy.cdm.model.taxon.TaxonBase">
-      </commandParameterType>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
             id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler"
             id="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
-            name="Open Derivative Editor">
+            name="%command.name.OPEN_DERIVATIVE_EDITOR">
          <commandParameter
-               id="eu.etaxonomy.taxeditor.specimenUuidParameter"
-               name="Specimen UUID parameter"
+               id="eu.etaxonomy.taxeditor.editor.openSpecimenEditor.uuid"
+               name="Specimen Uuids"
                optional="true"
-               typeId="eu.etaxonomy.taxeditor.specimenUuidParameterType">
+               typeId="eu.etaxonomy.taxeditor.uuidParameterType">
          </commandParameter>
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler"
+            id="eu.etaxonomy.taxeditor.editor.openSpecimenEditorFromMenu"
+            name="%command.name.OPEN_DERIVATIVE_EDITOR">
+      </command>
       <command
             defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ListenToSelectionChangeHandler"
             id="eu.etaxonomy.taxeditor.editor.derivative.listenToSelectionChange"
-            name="Link with taxon selection">
+            name="%command.name.LINK_WITH_TAXON_SELECTION">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard"
+            name="%command.name.COPY_SINGLE_READ_TO_CLIPBOARD">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead"
+            name="%command.name.REUSE_SINGLE_READ">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence"
+            name="%command.name.REMOVE_SINGLE_READ">
+      </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+            name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
       </command>
         
    </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <commandParameterType
-            converter="eu.etaxonomy.taxeditor.handler.UuidParameterConverter"
-            id="eu.etaxonomy.taxeditor.specimenUuidParameterType"
-            type="java.util.UUID">
-      </commandParameterType>
-   </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
       <definition
             </test>
          </with>
       </definition>
+      <definition
+            id="isNotHomotypicSynonymOfAcceptedTaxon">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isHomotypicSynonymOfAcceptedTaxon">
+            </test>
+         </with>
+      </definition>
       <definition
             id="isSynonym">
          <with
             </test>
          </with>
       </definition>
+      <definition
+            id="isSingleReadReusableHere">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSingleReadReusableHere">
+            </test>
+         </with>
+      </definition>
+      <definition
+            id="isSingleReadReused">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSingleReadReused">
+            </test>
+         </with>
+      </definition>
+      <definition
+            id="isDerivativeEditorLinkedToTaxonSelection">
+         <with
+               variable="activeEditor">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester.isLinkedWithTaxonSelection">
+            </test>
+         </with>
+      </definition>
    </extension>
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
             class="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
             id="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
             namespace="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
-            properties="isSequence,isSingleRead"
+            properties="isSequence,isSingleRead,isSingleReadReusableHere,isSingleReadReused"
             type="org.eclipse.jface.viewers.IStructuredSelection">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            properties="isLinkedWithTaxonSelection"
+            type="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">   
             name="%scheme.name">
       </scheme>
    </extension>
-    <extension
+    <!--extension
          point="org.eclipse.ui.importWizards">
       <wizard
             category="eu.etaxonomy.taxeditor.import.category.cdm"
             %wizard.description
          </description>
       </wizard>
-   </extension>
+   </extension-->
    <extension
           point="eu.etaxonomy.taxeditor.store.cdmViewer">
-       <cdmViewer
-             class="eu.etaxonomy.taxeditor.editor.EditorCdmViewer">
-       </cdmViewer>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxonNode"
+            selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
+            viewerName="Name Editor">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon"
+            selection="eu.etaxonomy.cdm.model.taxon.TaxonBase"
+            viewerName="Name Editor">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
+            selection="eu.etaxonomy.cdm.model.description.IndividualsAssociation"
+            viewerName="Derivative Editor">
+      </viewCommandMapping>
+      <viewCommandMapping
+            commandId="eu.etaxonomy.taxeditor.editor.openSpecimenEditor"
+            selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
+            viewerName="Derivative Editor">
+      </viewCommandMapping>
     </extension>
 </plugin>