Fixes #2422
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / taxon / TaxonBaseDetailElement.java
index 392e6dc673a8dc6a58e9c849c066bcee88cd0686..b0d5b881d345cb6158897bed69fa56cb073dd67c 100644 (file)
@@ -23,10 +23,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.forms.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement;
 
 /**
@@ -38,7 +35,7 @@ import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement;
  * @created Feb 26, 2010
  * @version 1.0
  */
-public class TaxonBaseDetailElement extends AbstractCdmDetailElement<TaxonBase> {
+public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElement<TaxonBase> {
 
        private CheckboxElement checkbox_doubtful;
 
@@ -48,8 +45,6 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement<TaxonBase>
 
        private TextWithLabelElement text_appendedPhrase;
 
-       private ToggleableTextElement toggleable_cache;
-
        private CheckboxElement checkbox_excluded;
 
        private CheckboxElement checkbox_unplaced;
@@ -110,37 +105,19 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement<TaxonBase>
                setIrrelevant(toggleable_cache.getState(),
                                Arrays.asList(new Object[] { toggleable_cache }));
        }
-
-       /** {@inheritDoc} */
+       
        @Override
-       public void propertyChange(PropertyChangeEvent event) {
-               Object eventSource = event.getSource();
-               if (eventSource instanceof ICdmFormElement) {
-                       ICdmFormElement element = (ICdmFormElement) eventSource;
-                       ICdmFormElement parentElement = element.getParentElement();
-                       if (parentElement instanceof NonViralNameDetailElement) {
-                               String title = getEntity().generateTitle();
-                               getEntity().setTitleCache(title);
-                               toggleable_cache.setText(title);
-                               if (getParentElement() instanceof AbstractCdmDetailSection)
-                                       ((AbstractCdmDetailSection) getParentElement())
-                                                       .updateTitle();
-                       }
-               }
-
-               super.propertyChange(event);
+       protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
+               String title = getEntity().generateTitle();
+               getEntity().setTitleCache(title);
+               super.handleTitleCacheRelevantChange(event);
        }
 
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource.equals(toggleable_cache)) {
-                       getEntity().setTitleCache(toggleable_cache.getText(),
-                                       toggleable_cache.getState());
-                       // setEnabled(! toggleable_titleCache.getState(), Arrays.asList(new
-                       // Object[]{toggleable_titleCache}));
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache }));
+                       handleToggleableCacheField();
                } else if (eventSource.equals(checkbox_doubtful)) {
                        getEntity().setDoubtful(checkbox_doubtful.getSelection());
                } else if (eventSource.equals(checkbox_useNameCache)) {
@@ -155,9 +132,6 @@ public class TaxonBaseDetailElement extends AbstractCdmDetailElement<TaxonBase>
                        ((Taxon) getEntity()).setUnplaced(checkbox_unplaced.getSelection());
                }
 
-               if (eventSource != toggleable_cache) {
-                       toggleable_cache.setText(getEntity().getTitleCache());
-               }
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
        }
 }