adapt to cdmlib changes
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / derivate / searchFilter / DerivateSearchCompositeController.java
index 3fe068faf0fec05d54db7c213509c93d3480f49c..d03d680626d7e6a99fbd0db9a7f3d136b5fa07d0 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2013 EDIT
 * European Distributed Institute of Taxonomy
@@ -12,6 +11,7 @@ package eu.etaxonomy.taxeditor.editor.view.derivate.searchFilter;
 import java.util.List;
 import java.util.UUID;
 
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -22,13 +22,14 @@ import org.eclipse.swt.widgets.Widget;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
-import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator.AssignmentStatus;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.query.AssignmentStatus;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.SearchManager;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
@@ -69,6 +70,15 @@ public class DerivateSearchCompositeController implements Listener{
     }
 
     private void searchDerivates(){
+        if(derivativeEditor.isDirty()){
+            boolean confirm = MessagingUtils.confirmDialog("Unsaved changes", "You have to save before performing this action. Save now?");
+            if(confirm){
+                derivativeEditor.save(new NullProgressMonitor());
+            }
+            else{
+                return;
+            }
+        }
         String queryString = derivateSearchComposite.getSearchField().getText();
         SpecimenOrObservationType specimenType = comboSpecimenTypeController.getSelection();
 
@@ -92,6 +102,10 @@ public class DerivateSearchCompositeController implements Listener{
         default:
             break;
         }
+        if(derivativeEditor.getCdmEntitySession()!=null){
+            derivativeEditor.getCdmEntitySession().dispose();
+            derivativeEditor.getCdmEntitySession().bind();
+        }
 
         SearchManager searchManager = new SearchManager();
         List<SpecimenOrObservationBase> occurrences = searchManager.findOccurrences(config, true);
@@ -106,7 +120,8 @@ public class DerivateSearchCompositeController implements Listener{
             searchDerivates();
         }
         else if(eventSource==derivateSearchComposite.getBtnBrowseTaxa()){
-            selectedTaxon = SelectionDialogFactory.getSelectionFromDialog(Taxon.class, this.derivateSearchComposite.getShell(), derivativeEditor.getConversationHolder(), null);
+            selectedTaxon = SelectionDialogFactory.getSelectionFromDialog(Taxon.class, this.derivateSearchComposite.getShell(), //derivativeEditor.getConversationHolder(),
+                    null);
             if(selectedTaxon!=null){
                 derivateSearchComposite.getTextTaxonName().setText(selectedTaxon.getTitleCache());
             }
@@ -116,7 +131,7 @@ public class DerivateSearchCompositeController implements Listener{
         }
         else if(eventSource==derivateSearchComposite.getBtnClearTaxon()){
             selectedTaxon = null;
-            derivateSearchComposite.getTextTaxonName().setText("");
+            derivateSearchComposite.getTextTaxonName().setText(""); //$NON-NLS-1$
             derivateSearchComposite.getComboTaxonAssignment().select(DerivateSearchComposite.ALL_SPECIMENS);
             derivateSearchComposite.getComboTaxonAssignment().setEnabled(true);
             derivateSearchComposite.getLbltaxonAssignment().setEnabled(true);
@@ -157,7 +172,7 @@ public class DerivateSearchCompositeController implements Listener{
      */
     public void reset(){
         if(!derivateSearchComposite.isDisposed()){
-            derivateSearchComposite.getSearchField().setText("");
+            derivateSearchComposite.getSearchField().setText(""); //$NON-NLS-1$
             derivateSearchComposite.getComboDerivateType().deselectAll();
             comboSpecimenTypeController.setSelection(SpecimenOrObservationType.Unknown);
         }
@@ -178,7 +193,7 @@ public class DerivateSearchCompositeController implements Listener{
             derivateSearchComposite.getComboTaxonAssignment().setEnabled(false);
         }
     }
-    
+
     public void setFocusOnSearchField(){
        derivateSearchComposite.getSearchField().setFocus();
     }