- added context menu option to DerivateEditor to open sequence in AlignmentEditor
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 18 Mar 2015 13:51:48 +0000 (13:51 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 18 Mar 2015 13:51:48 +0000 (13:51 +0000)
.gitattributes
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditSequenceHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SpecimenPropertyTester.java [new file with mode: 0644]

index f62d61671fdb7c2b97cd9e393a16e5b151602bf7..af4393860bd2b159652b9801a0b0c5ee5e77820c 100644 (file)
@@ -396,6 +396,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditorInput.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/handler/EditCdmAuthoritiesHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditNewTaxonHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditSequenceHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/LoadPherogramHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenAlignmentEditor.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenChecklistEditorHandler.java -text
@@ -404,6 +405,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handle
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenTaxonEditorHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SpecimenPropertyTester.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/TaxonParameterConverter.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java -text
index 99f70453118a991826507087998fcafb714460ba..975db0d6a4be8cb04213c3402b9815d54af20210 100644 (file)
                id="eu.etaxonomy.taxeditor.editor.view.dataimport.GbifResponseImportView"
                name="%view.name.5">
          </view>
+         <view
+               allowMultiple="false"
+               category="eu.etaxonomy.taxeditor.editor.category"
+               class="eu.etaxonomy.taxeditor.editor.view.validation.ValidationProblemsView"
+               icon="icons/edit_16x16.gif"
+               id="eu.etaxonomy.taxeditor.editor.view.validation.problems"
+               name="%view.name.6">
+         </view>
          <view
                allowMultiple="true"
                class="eu.etaxonomy.taxeditor.editor.molecular.PherogramViewPart"
                label="Delete (with children)"
                style="push">
          </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.editSequence"
+               label="Edit Sequence"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSequence">
+               </reference>
+            </visibleWhen>
+         </command>
       </menuContribution>
       <menuContribution
             locationURI="popup:eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportEditor">
             id="eu.etaxonomy.taxeditor.editor.derivate.deepDelete"
             name="Deep Delete">
       </command>
-
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.handler.EditSequenceHandler"
+            id="eu.etaxonomy.taxeditor.editor.editSequence"
+            name="Edit Sequence">
+      </command>
    </extension>
    <extension
          point="org.eclipse.core.expressions.definitions">
             </test>
          </with>
       </definition>
+      <definition
+            id="isSequence">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester.isSequence">
+            </test>
+         </with>
+      </definition>
    </extension>
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
             properties="isGroup"
             type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
+            id="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
+            properties="isSequence"
+            type="org.eclipse.jface.viewers.IStructuredSelection">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">   
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditSequenceHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/EditSequenceHandler.java
new file mode 100644 (file)
index 0000000..e46c16b
--- /dev/null
@@ -0,0 +1,53 @@
+package eu.etaxonomy.taxeditor.editor.handler;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TreeNode;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.cdm.model.media.MediaUtils;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+
+
+public class EditSequenceHandler extends AbstractHandler {
+
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
+        TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(currentSelection);
+        if(treeNodeOfSelection!=null && treeNodeOfSelection.getValue() instanceof Sequence){
+            Sequence sequence = (Sequence)treeNodeOfSelection.getValue();
+            List<URI> pherogramUris = new ArrayList<URI>();
+            Set<SingleReadAlignment> singleReadAlignments = sequence.getSingleReadAlignments();
+            for (SingleReadAlignment singleReadAlignment : singleReadAlignments) {
+                if(singleReadAlignment.getSingleRead()!=null){
+                    Media pherogram = singleReadAlignment.getSingleRead().getPherogram();
+                    MediaRepresentationPart firstMediaRepresentationPart = MediaUtils.getFirstMediaRepresentationPart(pherogram);
+                    if(firstMediaRepresentationPart!=null){
+                        System.out.println(firstMediaRepresentationPart.getUri());
+                    }
+                }
+            }
+//            Set<Media> pherograms = sequence.getPherograms();
+//            for (Media media : pherograms) {
+//                System.out.println("med");
+//                MediaRepresentationPart firstMediaRepresentationPart = MediaUtils.getFirstMediaRepresentationPart(media);
+//                if(firstMediaRepresentationPart!=null){
+//                    System.out.println(firstMediaRepresentationPart.getUri());
+//                }
+//            }
+        }
+        return null;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SpecimenPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SpecimenPropertyTester.java
new file mode 100644 (file)
index 0000000..0703b0c
--- /dev/null
@@ -0,0 +1,45 @@
+package eu.etaxonomy.taxeditor.editor.handler;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+
+public class SpecimenPropertyTester extends PropertyTester {
+
+    public SpecimenPropertyTester() {
+        // TODO Auto-generated constructor stub
+    }
+    private static final String SEQUENCE = "isSequence";
+
+    /* (non-Javadoc)
+     * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public boolean test(Object receiver, String property, Object[] args,
+            Object expectedValue) {
+
+        if(receiver instanceof IStructuredSelection){
+            IStructuredSelection selection = (IStructuredSelection) receiver;
+            TreeNode treeNodeOfSelection = EditorUtil.getTreeNodeOfSelection(selection);
+            if(treeNodeOfSelection!=null){
+                if(SEQUENCE.equals(property)){
+                    return isSequence(treeNodeOfSelection.getValue());
+                }
+            }
+
+        }
+        return false;
+    }
+
+    private boolean isSequence(Object object) {
+        if(object instanceof Sequence){
+            return true;
+        }
+        return false;
+    }
+
+}