- increased version number
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / campanula / detailViews / fieldObservation / FieldObservationGeneralElementController.java
index d4f7d74045fa8510d64328f66ac83af1feff0e42..c5b8d3620fc945e6d3e77a4380046c4aca655b99 100644 (file)
@@ -9,10 +9,11 @@
  */
 package eu.etaxonomy.taxeditor.ui.campanula.detailViews.fieldObservation;
 
+import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionFieldController;
 import eu.etaxonomy.taxeditor.ui.campanula.basicFields.LanguageTextFieldController;
 import eu.etaxonomy.taxeditor.ui.campanula.basicFields.NumberFieldController;
@@ -30,7 +31,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @date 13.08.2013
  *
  */
-public class FieldObservationGeneralElementController extends AbstractCdmDetailElement<FieldUnit> {
+public class FieldObservationGeneralElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
 
     private FieldObservationGeneralElement fieldObservationGeneralElement;
 
@@ -42,14 +43,21 @@ public class FieldObservationGeneralElementController extends AbstractCdmDetailE
     private TimePeriodElement element_date;//TODO convert
     private EntitySelectionFieldController<AgentBase> selection_collector;
     private TextFieldController text_collectingNumber;
+    private EntitySelectionFieldController<Collection> selectionCollection;
+    private TextFieldController textAccessionNumber;
+
+    boolean isSpecimen;
+    boolean isWizard;
 
     /**
      * @param formFactory
      * @param formElement
      */
-    public FieldObservationGeneralElementController(FieldObservationGeneralElement fieldObservationGeneralElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
+    public FieldObservationGeneralElementController(FieldObservationGeneralElement fieldObservationGeneralElement, CdmFormFactory formFactory, ICdmFormElement formElement, boolean isSpecimen, boolean isWizard) {
         super(formFactory, formElement);
         this.fieldObservationGeneralElement = fieldObservationGeneralElement;
+        this.isSpecimen = isSpecimen;
+        this.isWizard = isWizard;
         setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
         formFactory.addPropertyChangeListener(this);
     }
@@ -62,16 +70,63 @@ public class FieldObservationGeneralElementController extends AbstractCdmDetailE
      * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
      */
     @Override
-    protected void createControls(ICdmFormElement formElement, FieldUnit entity, int style) {
+    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
         toggleableText_titleCache = new ToggleableTextFieldController(fieldObservationGeneralElement.getToggleableTextField(), getFormFactory(), formElement, entity.getTitleCache(), entity.isProtectedTitleCache(), style);
 
-        selection_country = new EntitySelectionFieldController<NamedArea>(fieldObservationGeneralElement.getCountrySelectionField(), getFormFactory(), getConversationHolder(), formElement, NamedArea.class, entity.getGatheringEvent().getCountry(), EntitySelectionElement.NOTHING);
-        languageText_locality = new LanguageTextFieldController(fieldObservationGeneralElement.getTextLocality(), getFormFactory(), formElement, entity.getGatheringEvent().getLocality());
-        element_point = new PointFieldController(fieldObservationGeneralElement.getPointField(),getFormFactory(), formElement, entity.getGatheringEvent().getExactLocation(), style);
-        number_elevation = new NumberFieldController(fieldObservationGeneralElement.getTextElevation(), getFormFactory(), formElement, entity.getGatheringEvent().getAbsoluteElevation());
-//        element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
-        selection_collector = new EntitySelectionFieldController<AgentBase>(fieldObservationGeneralElement.getCollectorSelectionField(), getFormFactory(), getConversationHolder(), formElement, AgentBase.class, entity.getGatheringEvent().getCollector(), EntitySelectionElement.ALL);
+        selection_country = new EntitySelectionFieldController<NamedArea>(fieldObservationGeneralElement.getCountrySelectionField(), getFormFactory(), getConversationHolder(), formElement, NamedArea.class, entity.getCountry(), EntitySelectionElement.NOTHING);
+        languageText_locality = new LanguageTextFieldController(fieldObservationGeneralElement.getTextLocality(), getFormFactory(), formElement, entity.getLocality());
+        element_point = new PointFieldController(fieldObservationGeneralElement.getPointField(),getFormFactory(), formElement, entity.getExactLocation(), style);
+        number_elevation = new NumberFieldController(fieldObservationGeneralElement.getTextElevation(), getFormFactory(), formElement, entity.getAbsoluteElevation());
+        element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
+        selection_collector = new EntitySelectionFieldController<AgentBase>(fieldObservationGeneralElement.getCollectorSelectionField(), getFormFactory(), getConversationHolder(), formElement, AgentBase.class, entity.getCollector(), EntitySelectionElement.ALL);
         text_collectingNumber = new TextFieldController(fieldObservationGeneralElement.getTextCollectingNumber(), getFormFactory(), formElement, entity.getFieldNumber(), null);
+        if(isWizard){
+            if(!isSpecimen){
+                fieldObservationGeneralElement.getLblCollection().setVisible(false);
+                fieldObservationGeneralElement.getCollectionSelectionField().setVisible(false);
+                fieldObservationGeneralElement.getLblAccesionNumber().setVisible(false);
+                fieldObservationGeneralElement.getTextAccessionNumber().setVisible(false);
+            }
+            else{
+                selectionCollection = new EntitySelectionFieldController<Collection>(fieldObservationGeneralElement.getCollectionSelectionField(), getFormFactory(), getConversationHolder(), formElement, Collection.class, entity.getCollection(), EntitySelectionElement.ALL);
+                textAccessionNumber = new TextFieldController(fieldObservationGeneralElement.getTextAccessionNumber(), getFormFactory(), formElement, entity.getAccessionNumber(), null);
+            }
+        }
+        else{
+            if(isSpecimen){
+                selectionCollection = new EntitySelectionFieldController<Collection>(fieldObservationGeneralElement.getCollectionSelectionField(), getFormFactory(), getConversationHolder(), formElement, Collection.class, entity.getCollection(), EntitySelectionElement.ALL);
+                textAccessionNumber = new TextFieldController(fieldObservationGeneralElement.getTextAccessionNumber(), getFormFactory(), formElement, entity.getAccessionNumber(), null);
+                fieldObservationGeneralElement.getLblCountry().setEnabled(false);
+                fieldObservationGeneralElement.getCountrySelectionField().setEnabled(false);
+                fieldObservationGeneralElement.getLblLocality().setEnabled(false);
+                fieldObservationGeneralElement.getTextLocality().setEnabled(false);
+
+                fieldObservationGeneralElement.getPointField().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getText_latitude().setEnabled(false);
+                fieldObservationGeneralElement.getLblLatitude().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getText_longitude().setEnabled(false);
+                fieldObservationGeneralElement.getLblLongitude().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getNumber_errorRadius().setEnabled(false);
+                fieldObservationGeneralElement.getLblErrorRadiusm().setEnabled(false);
+                //            fieldObservationGeneralElement.getPointField().getCombo_referenceSystem().setEnabled(false);
+                fieldObservationGeneralElement.getLblReferenceSystem().setEnabled(false);
+
+                fieldObservationGeneralElement.getLblAbsoluteElevation().setEnabled(false);
+                fieldObservationGeneralElement.getTextElevation().setEnabled(false);
+                fieldObservationGeneralElement.getLblDate().setEnabled(false);
+
+                fieldObservationGeneralElement.getLblCollector().setEnabled(false);
+                fieldObservationGeneralElement.getCollectorSelectionField().setEnabled(false);
+                fieldObservationGeneralElement.getLblCollectingNumber().setEnabled(false);
+                fieldObservationGeneralElement.getTextCollectingNumber().setEnabled(false);
+            }
+            else{
+                fieldObservationGeneralElement.getLblCollection().setVisible(false);
+                fieldObservationGeneralElement.getCollectionSelectionField().setVisible(false);
+                fieldObservationGeneralElement.getLblAccesionNumber().setVisible(false);
+                fieldObservationGeneralElement.getTextAccessionNumber().setVisible(false);
+            }
+        }
     }
 
     /*
@@ -86,20 +141,24 @@ public class FieldObservationGeneralElementController extends AbstractCdmDetailE
         if (eventSource == toggleableText_titleCache) {
             getEntity().setTitleCache(toggleableText_titleCache.getText(), toggleableText_titleCache.getState());
         } else if (eventSource == selection_country) {
-            getEntity().getGatheringEvent().setCountry(selection_country.getSelection());
+            getEntity().setCountry(selection_country.getSelection());
         } else if (eventSource == languageText_locality) {
             LanguageString locality = languageText_locality.getLanguageString();
-            getEntity().getGatheringEvent().setLocality(locality);
+            getEntity().setLocality(locality);
         } else if (eventSource == element_point) {
-            getEntity().getGatheringEvent().setExactLocation(element_point.getPoint());
+            getEntity().setExactLocation(element_point.getPoint());
         } else if (eventSource == number_elevation) {
-            getEntity().getGatheringEvent().setAbsoluteElevation(number_elevation.getInteger());
-//        } else if (eventSource == element_date) {
-//            getEntity().setGatheringPeriod(element_date.getTimePeriod());
+            getEntity().setAbsoluteElevation(number_elevation.getInteger());
+        } else if (eventSource == element_date) {
+            getEntity().setGatheringPeriod(element_date.getTimePeriod());
         } else if (eventSource == selection_collector) {
-            getEntity().getGatheringEvent().setCollector(selection_collector.getSelection());
+            getEntity().setCollector(selection_collector.getSelection());
         } else if (eventSource == text_collectingNumber) {
             getEntity().setFieldNumber(text_collectingNumber.getText());
+        } else if (eventSource == selectionCollection) {
+            getEntity().setCollection(selectionCollection.getSelection());
+        } else if (eventSource == textAccessionNumber) {
+            getEntity().setAccessionNumber(textAccessionNumber.getText());
         }
         if (eventSource != toggleableText_titleCache) {
             toggleableText_titleCache.setText(getEntity().getTitleCache());