- added support for abbreviated title to reference details view (fixes #3561)
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 29 Oct 2013 09:25:50 +0000 (09:25 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 29 Oct 2013 09:25:50 +0000 (09:25 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceDetailSection.java

index e29b656068f4dfa836fdf526b3c4ae2244f4a72d..838fd1c7762820204b2c29171ffc2d213f62d81f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.section;
 
@@ -15,28 +15,25 @@ import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
  *
  */
 public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
-               AbstractCdmDetailElement<T> {
-
-       protected ToggleableTextElement toggleable_cache;
-       
-       public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement) {
-               super(formFactory, formElement);
-       }
-       
-       public void updateToggleableCacheField(){
-               if(! getEntity().isProtectedTitleCache()){
-                       toggleable_cache.setText(getEntity().generateTitle());
-               }
-       }
-       
-       protected void handleToggleableCacheField(){
-               boolean pushedState = toggleable_cache.getState();
-               
-               getEntity().setTitleCache(toggleable_cache.getText(),
-                               pushedState);
-               setIrrelevant(pushedState,
-                               Arrays.asList(new Object[] { toggleable_cache }));
-               updateToggleableCacheField();
-       }       
+        AbstractCdmDetailElement<T> {
+
+    protected ToggleableTextElement toggleable_cache;
+
+    public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    public void updateToggleableCacheField() {
+        if (!getEntity().isProtectedTitleCache()) {
+            toggleable_cache.setText(getEntity().generateTitle());
+        }
+    }
+
+    protected void handleToggleableCacheField() {
+        boolean pushedState = toggleable_cache.getState();
+
+        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
+        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
+        updateToggleableCacheField();
+    }
 }
index cf7035e835fe603451779d3f07815447b5e30f9a..b8d319861cbb9031eec9ac19cce6204e3ac1d7c1 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -33,6 +33,7 @@ import eu.etaxonomy.taxeditor.ui.element.IErrorIntolerableElement;
 import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -41,14 +42,16 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * <p>
  * ReferenceBaseDetailElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Mar 2, 2010
  * @version 1.0
  */
 public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement<Reference>
                implements IErrorIntolerableElement, IExceptionHandler {
-       
+
+    private ToggleableTextElement toggleableAbbrevCache;
+
        private TextWithLabelElement text_edition;
        private TextWithLabelElement text_editor;
        private TextWithLabelElement text_isbn;
@@ -60,8 +63,9 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
        private TextWithLabelElement text_referenceAbstract;
        private TextWithLabelElement text_series;
        private TextWithLabelElement text_seriesPart;
-       private TextWithLabelElement text_title;
        private TextWithLabelElement text_volume;
+       private TextWithLabelElement text_abbrevTitle;
+       private TextWithLabelElement text_title;
        private UriWithLabelElement text_uri;
        private EntitySelectionElement<AgentBase> selection_authorTeam;
        private TimePeriodElement element_timePeriod;
@@ -75,7 +79,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
         * <p>
         * Constructor for ReferenceBaseDetailElement.
         * </p>
-        * 
+        *
         * @param cdmFormFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -92,7 +96,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.section.cdmdetail.AbstractCdmDetailComposite
         * #createControl(org.eclipse.swt.widgets.Composite, int)
@@ -105,6 +109,10 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                                "Reference Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), style);
 
+               toggleableAbbrevCache = formFactory.createToggleableTextField(formElement,
+                       "Abbrev. Title Cache", entity.getAbbrevTitleCache(),
+                       entity.isProtectedAbbrevTitleCache(), style);
+
                combo_referenceType = formFactory.createEnumComboElement(ReferenceType.class,
                                                formElement, style);
 
@@ -113,6 +121,9 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                // title
                text_title = formFactory.createTextWithLabelElement(formElement,
                                "Title", entity.getTitle(), style);
+               // abbreviated title
+               text_abbrevTitle = formFactory.createTextWithLabelElement(formElement,
+                       "Abbrev. Title", entity.getAbbrevTitle(), style);
 
                // author team
                selection_authorTeam = formFactory
@@ -157,7 +168,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.section.cdmdetail.AbstractCdmDetailComposite
         * #updateContent()
@@ -175,13 +186,14 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                // setEnabled(getEntity().isProtectedTitleCache(), Arrays.asList(new
                // Object[]{text_cache}));
                toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-               setIrrelevant(toggleable_cache.getState(),
-                               Arrays.asList(new Object[] { toggleable_cache }));
+               toggleableAbbrevCache.setEnabled(getEntity().isProtectedAbbrevTitleCache());
+        setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[] { toggleable_cache }));
+        setIrrelevant(toggleableAbbrevCache.getState(), Arrays.asList(new Object[] { toggleableAbbrevCache}));
        }
 
        /**
         * Creates an in reference for reference types that do hav this.
-        * 
+        *
         * @param element
         * @param referenceType
         * @param reference
@@ -221,7 +233,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a generic reference
-        * 
+        *
         * @param element
         * @param reference
         * @param listener
@@ -249,7 +261,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a publication
-        * 
+        *
         * @param element
         * @param reference
         * @param listener
@@ -299,7 +311,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a section
-        * 
+        *
         * @param element
         * @param reference
         * @param style
@@ -313,7 +325,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a volume
-        * 
+        *
         * @param element
         * @param reference
         * @param style
@@ -329,7 +341,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
        }
 
        /**
-        * 
+        *
         * @param element
         * @param referenceType
         * @param reference
@@ -399,6 +411,9 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                // textfields
                else if (eventSource == toggleable_cache) {
                        handleToggleableCacheField();
+               }
+               else if (eventSource == toggleableAbbrevCache) {
+                   handleToggleableAbbrevTitleField();
                } else if (eventSource == text_edition) {
                        getEntity().setEdition(text_edition.getText());
                } else if (eventSource == text_editor) {
@@ -423,6 +438,10 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                        getEntity().setSeriesPart(text_seriesPart.getText());
                } else if (eventSource == text_title) {
                        getEntity().setTitle(text_title.getText());
+                       toggleable_cache.setText(text_title.getText());
+               } else if (eventSource == text_abbrevTitle) {
+                   getEntity().setAbbrevTitle(text_abbrevTitle.getText());
+                   toggleableAbbrevCache.setText(text_abbrevTitle.getText());
                } else if (eventSource == text_uri) {
                        try {
                                getEntity().setUri(text_uri.getUri());
@@ -434,16 +453,35 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                        getEntity().setVolume(text_volume.getText());
                }
 
-               else if (eventSource != toggleable_cache) {
+               if (eventSource != text_title && eventSource != text_abbrevTitle) {
                        toggleable_cache.setText(getEntity().getTitleCache());
+                       toggleableAbbrevCache.setText(getEntity().getAbbrevTitleCache());
                }
 
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
        }
 
+
+    @Override
+    public void updateToggleableCacheField() {
+        if (!getEntity().isProtectedTitleCache()) {
+            toggleable_cache.setText(getEntity().generateTitle());
+        }
+        if (!getEntity().isProtectedAbbrevTitleCache()) {
+            toggleableAbbrevCache.setText(getEntity().generateAbbrevTitle());
+        }
+    }
+
+    protected void handleToggleableAbbrevTitleField() {
+        boolean pushedAbbrevState = toggleableAbbrevCache.getState();
+        getEntity().setAbbrevTitleCache(toggleableAbbrevCache.getText(), pushedAbbrevState);
+        setIrrelevant(pushedAbbrevState, Arrays.asList(new Object[] { toggleableAbbrevCache }));
+        updateToggleableCacheField();
+    }
+
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleException
         * (eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
@@ -456,7 +494,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#clearException()
         */
        /** {@inheritDoc} */
@@ -469,7 +507,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#addExceptionHandler
         * (eu.etaxonomy.taxeditor.forms.IExceptionHandler)
@@ -482,7 +520,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#removeExceptionHandler
         * (eu.etaxonomy.taxeditor.forms.IExceptionHandler)
@@ -495,7 +533,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#exceptionOccurred
         * (eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
index ec35e1d9172b6857694f470130054ebc41fcae62..6a8f53dbb14757c01163d7eade3a8e27e707f26d 100644 (file)
@@ -17,7 +17,7 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -78,7 +78,7 @@ public class ReferenceDetailSection extends AbstractCdmDetailSection<Reference>
        @Override
        public void refresh() {
                super.refresh();
-               StoreUtil.refreshDetailsViewer();
+               AbstractUtility.refreshDetailsViewer();
        }
 
        /* (non-Javadoc)