Generalizing DetailElement for IdentifiableEntities
authorn.hoffmann <n.hoffmann@localhost>
Thu, 26 May 2011 11:13:36 +0000 (11:13 +0000)
committern.hoffmann <n.hoffmann@localhost>
Thu, 26 May 2011 11:13:36 +0000 (11:13 +0000)
.gitattributes
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/TextWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java

index a4b106ed526f610699cb49acf88aaaad71522688..b3fca189543db0cdef09a9ff7871837c9c528b21 100644 (file)
@@ -948,6 +948,7 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/Abs
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/EmptyElement.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ITaxonBaseDetailSection.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailElement.java -text
index d50920b87a5f13b38fc2a1b98efe9645532b083e..b68dfc53e5a4a9642131f32b36554aa38a3c89a0 100644 (file)
@@ -72,7 +72,7 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements
                int scrollStyle = textHeight == null ? SWT.NULL
                                : (SWT.V_SCROLL | SWT.MULTI);
                text = formFactory.createText(getLayoutComposite(), "", SWT.BORDER
-                               | SWT.WRAP | scrollStyle);
+                               | SWT.WRAP | scrollStyle | style);
 
                addControl(text);
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java
new file mode 100644 (file)
index 0000000..776d683
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+ * 
+ */
+package eu.etaxonomy.taxeditor.ui.section;
+
+import java.util.Arrays;
+
+import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
+import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement;
+
+/**
+ * @author n.hoffmann
+ *
+ */
+public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
+               AbstractCdmDetailElement<T> {
+
+       protected ToggleableTextElement toggleable_cache;
+       
+       public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       protected void handleToggleableCacheField(){
+               boolean pushedState = toggleable_cache.getState();
+               
+               getEntity().setTitleCache(toggleable_cache.getText(),
+                               pushedState);
+               setIrrelevant(pushedState,
+                               Arrays.asList(new Object[] { toggleable_cache }));
+               if(! pushedState){
+                       toggleable_cache.setText(getEntity().generateTitle());
+               }
+       }       
+}
index bf0a493884ca5196da640180ee0fdb5b5c5456dd..e1a4360c1fcf9f0900828bc3c8d8b396d4e95927 100644 (file)
@@ -21,7 +21,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
 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.AbstractIdentifiableEntityDetailElement;
 
 /**
  * <p>
@@ -32,9 +32,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Mar 8, 2010
  * @version 1.0
  */
-public class PersonDetailElement extends AbstractCdmDetailElement<Person> {
+public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement<Person> {
 
-       private ToggleableTextElement toggleable_cache;
        private TextWithLabelElement text_nomenclaturalTitle;
        private TextWithLabelElement text_firstname;
        private TextWithLabelElement text_lastname;
@@ -71,7 +70,7 @@ public class PersonDetailElement extends AbstractCdmDetailElement<Person> {
                                entity.isProtectedTitleCache(), SWT.NULL);
 
                text_nomenclaturalTitle = formFactory.createTextWithLabelElement(
-                               formElement, "Nom. Title", entity.getNomenclaturalTitle(),
+                               formElement, "Abbrev. Title", entity.getNomenclaturalTitle(),
                                SWT.NULL);
 
                text_firstname = formFactory.createTextWithLabelElement(formElement,
@@ -101,11 +100,8 @@ public class PersonDetailElement extends AbstractCdmDetailElement<Person> {
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if (eventSource == toggleable_cache) {
-                       getEntity().setTitleCache(toggleable_cache.getText(),
-                                       toggleable_cache.getState());
-                       setIrrelevant(toggleable_cache.getState(),
-                                       excludeFromIrrelevantToggleableObjects);
+               if (eventSource == toggleable_cache) {  
+                       handleToggleableCacheField();                   
                } else if (eventSource == text_nomenclaturalTitle) {
                        getEntity()
                                        .setNomenclaturalTitle(text_nomenclaturalTitle.getText());
index 3edb63963d50d57a9dedd032a58c1171af38b870..976339182cfa77127d12866bd569b20ef03b722e 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EntityDetailType;
 import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
 /**
  * <p>
@@ -31,9 +31,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @created Apr 26, 2010
  * @version 1.0
  */
-public class TeamDetailElement extends AbstractCdmDetailElement<Team> {
-
-       private ToggleableTextElement toggleable_cache;
+public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
 
        private ToggleableTextElement toggleable_nomenclaturalTitleCache;
 
@@ -67,7 +65,7 @@ public class TeamDetailElement extends AbstractCdmDetailElement<Team> {
                                "Title Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), style);
                toggleable_nomenclaturalTitleCache = formFactory
-                               .createToggleableTextField(formElement, "Nom. Title",
+                               .createToggleableTextField(formElement, "Abbrev. Title",
                                                entity.getNomenclaturalTitle(),
                                                entity.isProtectedNomenclaturalTitleCache(), style);
                section_teamMembers = (TeamMemberSection) formFactory
@@ -98,18 +96,11 @@ public class TeamDetailElement extends AbstractCdmDetailElement<Team> {
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleable_cache) {
-                       getEntity().setTitleCache(toggleable_cache.getText(),
-                                       toggleable_cache.getState());
-                       // setEnabled(! toggleable_cache.getState(), Arrays.asList(new
-                       // Object[]{toggleable_cache}));
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache }));
+                       handleToggleableCacheField();
                } else if (eventSource == toggleable_nomenclaturalTitleCache) {
                        getEntity().setNomenclaturalTitle(
                                        toggleable_nomenclaturalTitleCache.getText(),
                                        toggleable_nomenclaturalTitleCache.getState());
-                       // setEnabled(! toggleable_nomenclaturalTitleCache.getState(),
-                       // Arrays.asList(new Object[]{toggleable_nomenclaturalTitleCache}));
                        setIrrelevant(
                                        toggleable_nomenclaturalTitleCache.getState(),
                                        Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache }));
index d66086f08fb70821c449aea8f04ec930ee15e970..1e22c013d5393124f124d63dc3e146f74002972a 100644 (file)
@@ -34,7 +34,7 @@ import eu.etaxonomy.taxeditor.ui.forms.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.forms.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.forms.UriWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.AgentSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.InstitutionSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.ReferenceSelectionElement;
@@ -49,11 +49,9 @@ import eu.etaxonomy.taxeditor.ui.term.ReferenceTypeComboElement;
  * @created Mar 2, 2010
  * @version 1.0
  */
-public class ReferenceDetailElement extends AbstractCdmDetailElement<Reference>
+public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement<Reference>
                implements IErrorIntolerableElement, IExceptionHandler {
-
-       // property holder
-       private ToggleableTextElement toggleable_cache;
+       
        private TextWithLabelElement text_edition;
        private TextWithLabelElement text_editor;
        private TextWithLabelElement text_isbn;
@@ -404,12 +402,7 @@ public class ReferenceDetailElement extends AbstractCdmDetailElement<Reference>
 
                // textfields
                else if (eventSource == toggleable_cache) {
-                       getEntity().setTitleCache(toggleable_cache.getText(),
-                                       toggleable_cache.getState());
-                       // setEnabled(! text_cache.getState(), Arrays.asList(new
-                       // Object[]{text_cache}));
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache }));
+                       handleToggleableCacheField();
                } else if (eventSource == text_edition) {
                        getEntity().setEdition(text_edition.getText());
                } else if (eventSource == text_editor) {