fix #3737: improve handling of protected/not protected cache fields
authorKatja Luther <k.luther@bgbm.org>
Wed, 1 Feb 2017 13:14:00 +0000 (14:14 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 1 Feb 2017 13:14:00 +0000 (14:14 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/AbstractComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java

index 1701ffc31f2a75d4bb971a824b57fa07110086ab..130a0994e421ea531e6d417e20f2b73a337b0d91 100644 (file)
@@ -80,6 +80,14 @@ DisposeListener {
 
         Color color = AbstractUtility.getColor(colorId);
         combo.setBackground(color);
+        if (label != null) {
+            label.setBackground(color);
+        }
+        colorId = !irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
+                : Resources.COLOR_COMPOSITE_BACKGROUND;
+        color = AbstractUtility.getColor(colorId);
+        combo.setForeground(color);
+
     }
 
     public void setVisibleItemCount(int count){
index 6553cc99dd5ce05a2805b52caab7038984cbb7e3..7841fb7c9151e18983c835516d593b9e77ebd32c 100644 (file)
@@ -135,6 +135,8 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                combo.addSelectionListener(this);
        }
 
+
+
        private String getDefaultLabelString() {
                if(enumType.equals(ReferenceType.class)){
                        return "Reference Type";
index c700e7d26bb6f604f85f833bad47d4b52aeab028..b593582936224a71f27025df0629da6964d5b98e 100644 (file)
@@ -126,6 +126,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
                super.setEntity(entity);
                setSectionTitle();
                layout();
+
        }
 
        protected void setSectionTitle() {
@@ -137,7 +138,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
                                if (label == null){
                                        label = ((DefinedTermBase<?>)getEntity()).getLabel();
                                }
-                               
+
                        } else if (getEntity() instanceof TextData){
                                label = ((TextData)getEntity()).getLanguageText(PreferencesUtil.getGlobalLanguage()).getText();
                                if (label == null){
@@ -147,7 +148,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
                                label =((IdentifiableEntity) getEntity()).getTitleCache();
                        }
                        title = ": " + label;
-                       
+
                        // we have to duplicate ampersands otherwise they are treated as
                        // mnenomic (see Label.setText() documentation)
                        // see also #4302
@@ -173,6 +174,7 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
        @Override
     public void setIrrelevant(boolean irrelevant) {
                if (detailElement != null) {
+
                        detailElement.setIrrelevant(irrelevant);
                }
        }
index a4f17a28400a4ecb0510ae568057a5b361dcf3c5..2e0d702502633500a9b790796aba33784ab70d02 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.section.name;
 
 import java.util.Arrays;
+import java.util.Collection;
 
 import org.apache.log4j.Logger;
 import org.eclipse.swt.SWT;
@@ -19,7 +20,6 @@ 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.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
 import eu.etaxonomy.cdm.model.name.ZoologicalName;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
@@ -108,6 +108,7 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                                text_appendedPhrase = formFactory.createTextWithLabelElement(formElement, "Appended Phrase", nonViralName.getAppendedPhrase(), style);
                }
            }
+
        }
 
        /**
@@ -131,6 +132,7 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                }
 
                super.updateContent();
+               toggleable_cache.setEnabled(getEntity().isProtectedNameCache());
                if (isAdvancedView){
                if(isIrrelevant()){
                        setIrrelevant(isIrrelevant());
@@ -224,10 +226,10 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
                if (eventSource == toggleable_cache) {
                        getEntity().setNameCache(toggleable_cache.getText(),
                                        toggleable_cache.getState());
-                       if (!isIrrelevant()) {
+                       //if (!isIrrelevant()) {
                 setIrrelevant(toggleable_cache.getState(),
                                                Arrays.asList(new Object[] { toggleable_cache }));
-            }
+            //}
                }
                else if(eventSource == combo_rank){
                        getEntity().setRank(combo_rank.getSelection());
@@ -289,6 +291,19 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<N
         updateToggleableCacheField();
     }
 
+       @Override
+       public void setIrrelevant(boolean irrelevant, Collection<Object> except){
+           if (toggleable_cache != null){
+           if (toggleable_cache.getState() == irrelevant){
+               super.setIrrelevant(irrelevant, except);
+           }
+           if (except == null || except.isEmpty()){
+               toggleable_cache.setIrrelevant(irrelevant);
+           }
+           }
+
+       }
+
 
 
 
index f9e00aa1fde5a3e1f52304091acc0b77d03a6aed..3dd07ed1417b368f3ef96cdd80f068a96b5a7d44 100644 (file)
@@ -113,16 +113,15 @@ public class NonViralNameDetailElement extends
        @Override
        protected void updateContent() {
                super.updateContent();
-
                // disable nomenclatural code, because changing of nom.code is not
                // implemented on library side
                if(combo_nomenclaturalCode!=null){
                    combo_nomenclaturalCode.setEnabled(false);
                }
-
+               toggleable_cache.setEnabled(getEntity().isProtectedTitleCache() || getEntity().isProtectedFullTitleCache());
                if(toggleable_cache!=null){
                    setIrrelevant(toggleable_cache.getState(),
-                           Arrays.asList(new Object[] { toggleable_cache }));
+                           Arrays.asList(new Object[] { toggleable_cache, textLsid }));
                }
        }