package eu.etaxonomy.taxeditor.editor.handler;
+
+
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.ui.PartInitException;
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.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditorInput;
-public class EditSequenceHandler extends AbstractHandler {
+/**
+ * Opens the alignment editor from the CDM tree.
+ *
+ * @author Ben Stöver
+ * @author pplitzner
+ */
+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<Media> pherograms = sequence.getPherograms();
- for (Media media : pherograms) {
- MediaRepresentationPart firstMediaRepresentationPart = MediaUtils.getFirstMediaRepresentationPart(media);
- if(firstMediaRepresentationPart!=null){
- pherogramUris.add(firstMediaRepresentationPart.getUri());
- }
+ if(treeNodeOfSelection != null && treeNodeOfSelection.getValue() instanceof Sequence){
+ AlignmentEditorInput input = new AlignmentEditorInput((Sequence)treeNodeOfSelection.getValue()); //TODO Should there always be a new instance created here? What if the specified CDM node is already opened in an AlignmentEditor? => Possible create Singleton that keeps instances by sequence objects in a map.
+ try {
+ EditorUtil.open(input);
+ }
+ catch (PartInitException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
}
- AlignmentEditorInput input = new AlignmentEditorInput();
- try {
- EditorUtil.open(input);
- } catch (PartInitException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+
return null;
}
-
}