started implementing command framework
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / controller / TreeController.java
index a8d42082490310f4d49bf8434cca54d7268cea90..5dd750e20498aae40971a0220ddc942137235b19 100644 (file)
 package eu.etaxonomy.taxeditor.controller;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.jface.viewers.ISelection;\r
+import org.eclipse.jface.viewers.TreeSelection;\r
 import org.eclipse.ui.IViewPart;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
@@ -68,4 +73,25 @@ public class TreeController {
        }\r
        \r
        \r
+       /**\r
+        * Returns the selected taxon for referencing in context menus\r
+        * \r
+        * @param event \r
+        * @return\r
+        */\r
+       public static Taxon getCurrentSelection(ExecutionEvent event){\r
+               \r
+               ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);\r
+               \r
+               // The selection should always be a tree selection since we are in the \r
+               // taxonomic tree view. Just in case this will be used in another spot.\r
+               if(menuSelection instanceof TreeSelection){\r
+                       Taxon taxon = (Taxon) ((TreeSelection) menuSelection).getFirstElement();\r
+                       logger.debug("Selected taxon: " + taxon);\r
+                       return taxon;\r
+               }\r
+               return null;\r
+       }\r
+       \r
+       \r
 }\r