ref #10151: create field unit for selected taxon
authorKatja Luther <k.luther@bgbm.org>
Thu, 29 Sep 2022 11:29:07 +0000 (13:29 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 29 Sep 2022 11:29:07 +0000 (13:29 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java

index a2488c5eb0cdaed6f4a7a6a2c4077a42cd992bee..6e6b5f6b045ee00eb71ac1354ce6d3060e5eedfe 100644 (file)
@@ -651,6 +651,10 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
             part.setLabel(SPECIMEN_EDITOR+Messages.DerivateView_NO_TAXON_SELECTED);
         }
     }
+    
+    public DerivateSearchCompositeController getSearchController() {
+       return derivateSearchCompositeController;
+    }
 
     public boolean isListenToSelectionChange(){
         return listenToSelectionChange;
index 2ef08fd8687faa79061bffa6b2f543ed04aaf3b2..66df9123f5a0c3d687980125cd23050d4efdc0e5 100644 (file)
@@ -36,7 +36,7 @@ public class CreateFieldUnitHandler {
        public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
         DerivateView derivateView = (DerivateView) part.getObject();
         if(item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
-            Object selectionInput = derivateView.getSelectionInput();
+            Object selectionInput = derivateView.getSearchController().getSelectedTaxon();
             if(selectionInput instanceof CdmBase && ((CdmBase) selectionInput).isInstanceOf(Taxon.class)){
                 final Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(((CdmBase)selectionInput).getUuid()), Taxon.class);
                 if(derivateView.isDirty()){
@@ -83,7 +83,8 @@ public class CreateFieldUnitHandler {
        @CanExecute
        public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
            DerivateView derivateView = (DerivateView) part.getObject();
-           boolean listenToSelectionChange = derivateView.isListenToSelectionChange();
+           boolean listenToSelectionChange = derivateView.getSearchController().getSelectedTaxon()!= null;
+           //boolean listenToSelectionChange = true;
            setItemVisibility(item, listenToSelectionChange);
            if(listenToSelectionChange &&
                    item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
index 1216a1b097b80d1561175418ee96bade3d036905..7082e5a74f5ef9c85892cd4cd72239bb58762981 100644 (file)
@@ -138,6 +138,7 @@ public class DerivateSearchCompositeController implements Listener{
             derivateSearchComposite.getComboTaxonAssignment().select(DerivateSearchComposite.ALL_SPECIMENS);
             derivateSearchComposite.getComboTaxonAssignment().setEnabled(true);
             derivateSearchComposite.getLbltaxonAssignment().setEnabled(true);
+            
         }
     }
 
@@ -154,7 +155,11 @@ public class DerivateSearchCompositeController implements Listener{
         }
     }
 
-    public void setLayoutData(Object layoutData){
+    public Taxon getSelectedTaxon() {
+               return selectedTaxon;
+       }
+
+       public void setLayoutData(Object layoutData){
         derivateSearchComposite.setLayoutData(layoutData);
     }