- saved last parameters entered for specimen search
authorPatric Plitzner <p.plitzner@bgbm.org>
Thu, 19 Jun 2014 07:08:47 +0000 (07:08 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Thu, 19 Jun 2014 07:08:47 +0000 (07:08 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenSearchWizard.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/SpecimenSearchWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/specimenSearch/SpecimenSearchController.java

index 08c3d90fb4f26b41c4346cf6c3b23e168bd72c68..412b991dda75084aebbc0c0cc4683cb717d09ee9 100644 (file)
@@ -56,6 +56,8 @@ public class SpecimenSearchWizard extends Wizard implements IImportWizard {
      */
     @Override
     public boolean performFinish() {
+        searchPage.getController().saveLastSate();
+       
         DataImportEditorInput<?> input = null;
         query = searchPage.getQuery();
         switch (providerSelectionPage.getQueryType()) {
index 48dd48756af5d88f7b2afc785b98f38a1dbe10a7..61e9c1517e7eacf946aea58a46effbfe65aaa5f4 100644 (file)
@@ -39,7 +39,7 @@ public class SpecimenSearchWizardPage extends WizardPage{
      */
     @Override
     public void createControl(Composite parent) {
-        specimenSearchController = new SpecimenSearchController(parent);
+        specimenSearchController = SpecimenSearchController.getInstance(parent);
         setControl(specimenSearchController.getComposite());
     }
 
@@ -60,4 +60,13 @@ public class SpecimenSearchWizardPage extends WizardPage{
         return new OccurenceQuery(taxonName, collector, collectorsNumber, accessionNumber, herbarium, country, locality, dateFrom, dateTo);
     }
 
+    /**
+     * @return the specimenSearchController
+     */
+    public SpecimenSearchController getController() {
+        return specimenSearchController;
+    }
+
+
+
 }
index 3af9f4440f295ea4e3f3b91efdbb83a8aedd37d9..018f59af538b001d48590734f2f536848bf20264 100644 (file)
@@ -9,8 +9,10 @@
 */
 package eu.etaxonomy.taxeditor.view.specimenSearch;
 
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
+import java.util.List;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
@@ -18,6 +20,8 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 
+import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+
 /**
  * Controller class for handling a {@link SpecimenSearchComposite}.
  * @author pplitzner
@@ -26,18 +30,38 @@ import org.eclipse.swt.widgets.Listener;
  */
 public class SpecimenSearchController implements Listener{
 
-    private final SpecimenSearchComposite specimenSearchComposite;
+    private SpecimenSearchComposite specimenSearchComposite;
+    private final List<String> lastStateList = new ArrayList<String>();
+    private OccurenceQuery lastQuery = null;
+
+    private static SpecimenSearchController instance = null;
+
+    public static SpecimenSearchController getInstance(Composite parent){
+        if(instance==null){
+            instance = new SpecimenSearchController(parent);
+            return instance;
+        }
+        instance.init(parent);
+        return instance;
+    }
 
     /**
      * Constructs a new controller which will itself construct the composite
      * @param parent the parent {@link Composite} for the one handles by this controller
      */
-    public SpecimenSearchController(Composite parent) {
+    private SpecimenSearchController(Composite parent) {
+        init(parent);
+    }
+
+    private void init(Composite parent){
         this.specimenSearchComposite = new SpecimenSearchComposite(parent, SWT.NONE);
+        this.specimenSearchComposite.addListener(SWT.Selection, this);
         specimenSearchComposite.getBtnShowDate().addListener(SWT.Selection, this);
         specimenSearchComposite.getBtnShowDate().setSelection(false);
         specimenSearchComposite.getDateFrom().setEnabled(false);
         specimenSearchComposite.getDateTo().setEnabled(false);
+
+        loadLastState();
     }
 
     /* (non-Javadoc)
@@ -52,6 +76,29 @@ public class SpecimenSearchController implements Listener{
         }
     }
 
+
+    private void loadLastState(){
+        if(lastQuery!=null){
+            specimenSearchComposite.getTextAccessionNumber().setText(lastQuery.accessionNumber);
+            specimenSearchComposite.getTextCollector().setText(lastQuery.collector);
+            specimenSearchComposite.getTextCollectorNumber().setText(lastQuery.collectorsNumber);
+            specimenSearchComposite.getTextCountry().setText(lastQuery.country);
+            specimenSearchComposite.getTextHerbarium().setText(lastQuery.herbarium);
+            specimenSearchComposite.getTextLocality().setText(lastQuery.locality);
+            specimenSearchComposite.getTextTaxonName().setText(lastQuery.taxonName);
+            if(lastQuery.dateFrom!=null){
+                specimenSearchComposite.getDateFrom().setDate(lastQuery.dateFrom.get(Calendar.YEAR), lastQuery.dateFrom.get(Calendar.MONTH), lastQuery.dateFrom.get(Calendar.DAY_OF_MONTH));
+            }
+            if(lastQuery.dateTo!=null){
+                specimenSearchComposite.getDateTo().setDate(lastQuery.dateTo.get(Calendar.YEAR), lastQuery.dateTo.get(Calendar.MONTH), lastQuery.dateTo.get(Calendar.DAY_OF_MONTH));
+            }
+        }
+    }
+
+    public void saveLastSate() {
+        lastQuery = new OccurenceQuery(getTaxonName(), getCollector(), getCollectorNumber(), getAccessionNumber(), getHerbarium(), getCountry(), getLocality(), getDateFrom(), getDateTo());
+    }
+
     /**
      * Returns the {@link Composite} handled by this controller
      * @return
@@ -103,7 +150,6 @@ public class SpecimenSearchController implements Listener{
      */
     public String getHerbarium() {
         return specimenSearchComposite.getTextHerbarium().getText();
-//        return specimenSearchComposite.getComboHerbarium().getItem(specimenSearchComposite.getComboHerbarium().getSelectionIndex());
     }
 
     /**