add first implementation for simple details view
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / name / NameDetailElement.java
index 99279ca673424483300ab7b6b82eba28cbc0aae0..293f09bb7a3ef92fc1e236df7330cf7f511ceb0f 100644 (file)
@@ -15,16 +15,19 @@ import java.util.Arrays;
 import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
 
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.name.BotanicalName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
@@ -66,7 +69,7 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        public NameDetailElement(CdmFormFactory cdmFormFactory, ICdmFormElement formElement,
                        int style) {
                super(cdmFormFactory, formElement);
-               // register as selection listener
+               // make this element selectable
                if(cdmFormFactory.getSelectionProvider() != null){
                        selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
                }
@@ -76,19 +79,19 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
        @Override
        protected void createControls(ICdmFormElement formElement, NonViralName nonViralName, int style) {
 
-               toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
-
-               combo_rank = formFactory.createTermComboElement(Rank.class, this, "Rank", nonViralName.getRank(), style);
+           if (isAdvancedView){
+               toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
+           }
+               combo_rank = formFactory.createDefinedTermComboElement(TermType.Rank, this, "Rank", nonViralName.getRank(), style);
 
                createGenusOrUninomialControls(this, nonViralName, style);
                createInfragenerericEpithetControls(this, nonViralName, style);
                createSpecificEpithetControls(this, nonViralName, style);
                createInfraSpecificEpithetControls(this, nonViralName, style);
-
-               createSpecificNameParts(this, nonViralName, style);
-
-               text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
-
+               if (isAdvancedView){
+                   createSpecificNameParts(this, nonViralName, style);
+                       text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
+               }
        }
 
        /**
@@ -112,11 +115,12 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                }
 
                super.updateContent();
-
-               if(isIrrelevant()){
-                       setIrrelevant(isIrrelevant());
-               }else{
-                       setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache}));
+               if (isAdvancedView){
+               if(isIrrelevant()){
+                       setIrrelevant(isIrrelevant());
+               }else{
+                       setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache}));
+               }
                }
        }
 
@@ -127,7 +131,11 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                if (code != null){
                        switch(nonViralName.getNomenclaturalCode()){
                        case ICNAFP :
-                               createBotanicalNameParts(formElement, nonViralName, style);
+                               // TODO RL
+                               if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL))
+                               {
+                                       createBotanicalNameParts(formElement, nonViralName, style);
+                               }
                                break;
                        case ICZN:
                                createZoologicalNameParts(formElement, nonViralName, style);
@@ -239,8 +247,23 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
 
        @Override
        public void updateToggleableCacheField() {
-               if(! getEntity().isProtectedNameCache()){
-                       toggleable_cache.setText(getEntity().getNameCache());
-               }
+           if (toggleable_cache != null){
+               if(! getEntity().isProtectedNameCache()){
+                       toggleable_cache.setText(getEntity().getNameCache());
+               }
+           }
        }
+
+       @Override
+       protected void handleToggleableCacheField() {
+        boolean pushedState = toggleable_cache.getState();
+
+        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
+        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_appendedPhrase, checkbox_anamorphic }));
+        updateToggleableCacheField();
+    }
+
+
+
+
 }