ref #8572: code cleaning and rule considered configurable
authorKatja Luther <k.luther@bgbm.org>
Fri, 27 Sep 2019 11:27:56 +0000 (13:27 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 27 Sep 2019 11:29:54 +0000 (13:29 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameDetailsViewAdminConfiguration.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsConfigurator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/RuleConsideredElement.java

index b4cce3e0a53e3de61ad9216c0c0f1ee5050dff97..34248b562a211da35ea20d1dbd0e56ea42e506d0 100755 (executable)
@@ -8,7 +8,6 @@ import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
-import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
 import eu.etaxonomy.taxeditor.preference.NameDetailsViewConfiguration;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -16,32 +15,39 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 
 public class NameDetailsViewAdminConfiguration extends NameDetailsViewConfiguration implements IE4AdminPreferencePage{
 
-   protected NameDetailsConfigurator createNameDetailsViewConfig() {
 
-       NameDetailsConfigurator config = new NameDetailsConfigurator(isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false);
 
-      config.setAppendedPhraseActivated(isShowAppendedPhrase);
-      config.setAtomisedEpithetsActivated(isShowEpithets);
-      config.setAuthorshipSectionActivated(isShowAuthorship);
-      config.setAuthorCacheActivated(isShowAuthorCache);
-      config.setLSIDActivated(isShowLSID);
-      config.setNameApprobiationActivated(isShowNameApprobiation);
-      config.setNameCacheActivated(isShowNameCache);
-      config.setNameRelationsSectionActivated(isShowNameRelationship);
-      config.setNomenclaturalCodeActived(isShowNomenclaturalCode);
-      config.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
-      config.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
-      config.setProtologueActivated(isShowProtologue);
-      config.setRankActivated(isShowRank);
-      config.setTaxonSectionActivated(isShowTaxon);
-      config.setSecDetailsActivated(isSecDetailsActivated);
-      config.setSecEnabled(isSecEnabled);
-      config.setTypeDesignationSectionActivated(isShowTypeDesignation);
-      config.setHybridActivated(isShowHybrid);
 
-
-      return config;
-   }
+//protected NameDetailsConfigurator createNameDetailsViewConfig() {
+//
+//      NameDetailsConfigurator config = new NameDetailsConfigurator(isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false);
+//
+//      config.setAppendedPhraseActivated(isShowAppendedPhrase);
+//      config.setAtomisedEpithetsActivated(isShowEpithets);
+//      config.setAuthorshipSectionActivated(isShowAuthorship);
+//      config.setAuthorCacheActivated(isShowAuthorCache);
+//      config.setLSIDActivated(isShowLSID);
+//      config.setNameApprobiationActivated(isShowNameApprobiation);
+//      config.setNameCacheActivated(isShowNameCache);
+//      config.setNameRelationsSectionActivated(isShowNameRelationship);
+//      config.setNameRelationsRuleConsideredActivated(isNameRelationRuleConsideredActivated);
+//      config.setNameRelationsRuleConsideredCodeEditionActivated(isNameRelationRuleConsideredCodeEditionActivated);
+//      config.setNomenclaturalCodeActived(isShowNomenclaturalCode);
+//      config.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
+//      config.setNomenclaturalStatusRuleConsideredActivated(isNomenclaturalStatusRuleConsideredActivated);
+//      config.setNomenclaturalStatusRuleConsideredCodeEditionActivated(isNomenclaturalStatusRuleConsideredCodeEditionActivated);
+//      config.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
+//      config.setProtologueActivated(isShowProtologue);
+//      config.setRankActivated(isShowRank);
+//      config.setTaxonSectionActivated(isShowTaxon);
+//      config.setSecDetailsActivated(isSecDetailsActivated);
+//      config.setSecEnabled(isSecEnabled);
+//      config.setTypeDesignationSectionActivated(isShowTypeDesignation);
+//      config.setHybridActivated(isShowHybrid);
+//
+//
+//      return config;
+//   }
 
 
     @Override
@@ -57,8 +63,8 @@ public class NameDetailsViewAdminConfiguration extends NameDetailsViewConfigurat
             return false;
         }
         IPreferenceService service = controller.getPreferenceService();
-        NameDetailsConfigurator config = createNameDetailsViewConfig();
-        String value = config.toString();
+        //NameDetailsConfigurator config = createNameDetailsViewConfig();
+        String value = nameDetailsConfig.toString();
 
         if (isSimpleDetailsViewActivated == null && isAllowOverride){
             service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView));
index 1672e788c93d9a355e860deddd8d26973053c9c2..e0e6d42136c8c539c1cfd95b555124c18d7cb31b 100644 (file)
@@ -392,6 +392,10 @@ public class Messages extends NLS {
     public static String NameDetailsViewConfiguration_description;
     public static String NameDetailsViewConfiguration_useLocalSettings;
     public static String NameDetailsViewConfiguration_description_not_available;
+    public static String NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered;
+    public static String NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition;
+    public static String NameDetailsViewComposite_Show_Namerelationships_RuleConsidered;
+    public static String NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition;
 
 
     public static String NameRelationshipWizardPage_description;
@@ -700,6 +704,9 @@ public class Messages extends NLS {
 
 
 
+
+
+
     static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index 7d52f9ca134f8b3b884b48b4651e8958ce5fa949..0b886cc3c573d9d9f076b656ff152d209532ae3a 100644 (file)
@@ -310,6 +310,11 @@ NameDetailsViewComposite_Show_Protologue=Protologue section
 NameDetailsViewConfiguration_activateSimpleDetailsView=Show simplified name details view with the following elements:
 NameDetailsViewConfiguration_useLocalSettings=Use local settings for display of name details
 
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Rule Considered of nomenclatural status
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code edition of rule considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Rule considered of name relationship
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code edition of rule considered
+
 SetPublishConfiguration_Publish=Set Publish Flag
 SetPublishConfiguration_Publish_tooltip=With set publish flag, the taxa are published in data portal and print publications
 SetPublishConfiguration_Description_Configurator=Configure where the publish flag should be set
index c077cc7552a89289ed2cfa084261e0edde1ce762..52b5a42182d420a92f53228e88e1627f71048a1d 100644 (file)
@@ -310,6 +310,11 @@ NameDetailsViewComposite_Show_Protologue=Protologue
 NameDetailsViewConfiguration_activateSimpleDetailsView=Vereinfachten Details View mit folgenden Elementen anzeigen:
 NameDetailsViewConfiguration_useLocalSettings=Verwende die lokalen Eigenschaften für die Darstellung der Details
 
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Rule Considered des Nomenklatorischen Status
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code Edition der Rule Considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Rule Considered der Namensrelation
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code Edition der Rule Considered
+
 SetPublishConfiguration_Publish=Setze das Publish Flag
 SetPublishConfiguration_Publish_tooltip=Wenn das Publish Flag gesetzt ist, werden die Taxa veröffentlicht, sowohl im Datenportal als auch bei Print Publikationen
 SetPublishConfiguration_Description_Configurator=Konfigurieren Sie, wie das Setzen des Publish Flags durchgeführt werden soll
index 6ae24098c52f2e568c5ae38f911f08636affb98e..cddf9dc040f1e3e04909fb0d6d0ab7f12e678032 100644 (file)
@@ -8,6 +8,8 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import java.lang.reflect.Field;
+
 /**
  * @author k.luther
  * @date 16.12.2016
@@ -15,28 +17,32 @@ package eu.etaxonomy.taxeditor.preference;
  */
 public class NameDetailsConfigurator {
 
-    private boolean isAllowOverride = true;
-    private boolean isSimpleDetailsViewActivated = true;
-
-    private boolean isTaxonSectionActivated = true;
-    private boolean isLSIDActivated = true;
-    private boolean isNomenclaturalCodeActived = true;
-    private boolean isNameCacheActivated = true;
-    private boolean isAppendedPhraseActivated = true;
-    private boolean isRankActivated = true;
-    private boolean isAtomisedEpithetsActivated = true;
-    private boolean isAuthorshipSectionActivated = true;
-    private boolean isAuthorCacheActivated = true;
-    private boolean isNomenclaturalReferenceSectionActivated = true;
-    private boolean isNomenclaturalStatusSectionActivated = true;
-    private boolean isTypeDesignationSectionActivated = true;
-    private boolean isNameRelationsSectionActivated = true;
-    private boolean isProtologueActivated = true;
-    private boolean isHybridActivated = true;
-
-       private boolean isNameApprobiationActivated = true;
-       private boolean isSecEnabled = true;
-       private boolean isSecDetailsActivated = true;
+    boolean isAllowOverride = true;
+    boolean isSimpleDetailsViewActivated = true;
+
+    boolean isTaxonSectionActivated = true;
+    boolean isLSIDActivated = true;
+    boolean isNomenclaturalCodeActived = true;
+    boolean isNameCacheActivated = true;
+    boolean isAppendedPhraseActivated = true;
+    boolean isRankActivated = true;
+    boolean isAtomisedEpithetsActivated = true;
+    boolean isAuthorshipSectionActivated = true;
+    boolean isAuthorCacheActivated = true;
+    boolean isNomenclaturalReferenceSectionActivated = true;
+    boolean isNomenclaturalStatusSectionActivated = true;
+    boolean isNomenclaturalStatusRuleConsideredActivated = true;
+    boolean isNomenclaturalStatusRuleConsideredCodeEditionActivated = true;
+    boolean isTypeDesignationSectionActivated = true;
+    boolean isNameRelationsSectionActivated = true;
+    boolean isNameRelationsRuleConsideredActivated = true;
+    boolean isNameRelationsRuleConsideredCodeEditionActivated = true;
+    boolean isProtologueActivated = true;
+    boolean isHybridActivated = true;
+
+       boolean isNameApprobiationActivated = true;
+       boolean isSecEnabled = true;
+       boolean isSecDetailsActivated = true;
 
     public NameDetailsConfigurator(boolean isSimpleDetailsViewActivated){
         this.isSimpleDetailsViewActivated = isSimpleDetailsViewActivated;
@@ -165,83 +171,110 @@ public class NameDetailsConfigurator {
         StringBuffer result = new StringBuffer();
       //the preference value is build like this:
         //<section1>:true;<section2>:false....
-        result.append("simpleViewActivated");
-        result.append(":");
-        result.append(this.isSimpleDetailsViewActivated);
-        result.append(";");
-
-        result.append("taxon");
-        result.append(":");
-        result.append(this.isTaxonSectionActivated);
-        result.append(";");
-        result.append("taxon.SecEnabled");
-        result.append(":");
-        result.append(this.isSecEnabled);
-        result.append(";");
-        result.append("taxon.SecDetails");
-        result.append(":");
-        result.append(this.isSecDetailsActivated);
-        result.append(";");
-        result.append("nameCache");
-        result.append(":");
-        result.append(this.isNameCacheActivated);
-        result.append(";");
-        result.append("lsid");
-        result.append(":");
-        result.append(this.isLSIDActivated());
-        result.append(";");
-        result.append("nameApproviation");
-        result.append(":");
-        result.append(this.isNameApprobiationActivated());
-        result.append(";");
-        result.append("nc");
-        result.append(":");
-        result.append(this.isNomenclaturalCodeActived());
-        result.append(";");
-        result.append("ap");
-        result.append(":");
-        result.append(this.isAppendedPhraseActivated());
-        result.append(";");
-        result.append("rank");
-        result.append(":");
-        result.append(this.isRankActivated());
-        result.append(";");
-        result.append("author");
-        result.append(":");
-        result.append(this.isAuthorshipSectionActivated());
-        result.append(";");
-        result.append("authorCache");
-        result.append(":");
-        result.append(this.isAuthorCacheActivated());
-        result.append(";");
-        result.append("atomisedEpithets");
-        result.append(":");
-        result.append(this.isAtomisedEpithetsActivated());
-        result.append(";");
-        result.append("nomRef");
-        result.append(":");
-        result.append(this.isNomenclaturalReferenceSectionActivated());
-        result.append(";");
-        result.append("nomStat");
-        result.append(":");
-        result.append(this.isNomenclaturalStatusSectionActivated());
-        result.append(";");
-        result.append("protologue");
-        result.append(":");
-        result.append(this.isProtologueActivated());
-        result.append(";");
-        result.append("typeDes");
-        result.append(":");
-        result.append(this.isTypeDesignationSectionActivated());
-        result.append(";");
-        result.append("nameRelation");
-        result.append(":");
-        result.append(this.isNameRelationsSectionActivated());
-        result.append(";");
-        result.append("hybrid");
-        result.append(":");
-        result.append(this.isHybridActivated());
-
+        for (Field field: this.getClass().getDeclaredFields()){
+            result.append(field.getName());
+            result.append(":");
+            try {
+                result.append(field.get(this));
+            } catch (IllegalArgumentException | IllegalAccessException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            result.append(";");
+        }
+//        result.append("simpleViewActivated");
+//        result.append(":");
+//        result.append(this.isSimpleDetailsViewActivated);
+//        result.append(";");
+//
+//        result.append("taxon");
+//        result.append(":");
+//        result.append(this.isTaxonSectionActivated);
+//        result.append(";");
+//        result.append("taxon.SecEnabled");
+//        result.append(":");
+//        result.append(this.isSecEnabled);
+//        result.append(";");
+//        result.append("taxon.SecDetails");
+//        result.append(":");
+//        result.append(this.isSecDetailsActivated);
+//        result.append(";");
+//        result.append("nameCache");
+//        result.append(":");
+//        result.append(this.isNameCacheActivated);
+//        result.append(";");
+//        result.append("lsid");
+//        result.append(":");
+//        result.append(this.isLSIDActivated());
+//        result.append(";");
+//        result.append("nameApproviation");
+//        result.append(":");
+//        result.append(this.isNameApprobiationActivated());
+//        result.append(";");
+//        result.append("nc");
+//        result.append(":");
+//        result.append(this.isNomenclaturalCodeActived());
+//        result.append(";");
+//        result.append("ap");
+//        result.append(":");
+//        result.append(this.isAppendedPhraseActivated());
+//        result.append(";");
+//        result.append("rank");
+//        result.append(":");
+//        result.append(this.isRankActivated());
+//        result.append(";");
+//        result.append("author");
+//        result.append(":");
+//        result.append(this.isAuthorshipSectionActivated());
+//        result.append(";");
+//        result.append("authorCache");
+//        result.append(":");
+//        result.append(this.isAuthorCacheActivated());
+//        result.append(";");
+//        result.append("atomisedEpithets");
+//        result.append(":");
+//        result.append(this.isAtomisedEpithetsActivated());
+//        result.append(";");
+//        result.append("nomRef");
+//        result.append(":");
+//        result.append(this.isNomenclaturalReferenceSectionActivated());
+//        result.append(";");
+//        result.append("nomStat");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusSectionActivated());
+//        result.append(";");
+//        result.append("nomStatRuleConsidered");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusRuleConsideredActivated);
+//        result.append(";");
+//        result.append("nomStatRuleConsideredCodeEdition");
+//        result.append(":");
+//        result.append(this.isNomenclaturalStatusRuleConsideredCodeEditionActivated);
+//        result.append(";");
+//        result.append("protologue");
+//        result.append(":");
+//        result.append(this.isProtologueActivated());
+//        result.append(";");
+//        result.append("typeDes");
+//        result.append(":");
+//        result.append(this.isTypeDesignationSectionActivated());
+//        result.append(";");
+//        result.append("nameRelation");
+//        result.append(":");
+//        result.append(this.isNameRelationsSectionActivated());
+//        result.append(";");
+//        result.append("nameRelationRuleConsidered");
+//        result.append(":");
+//        result.append(this.isNameRelationsRuleConsideredActivated);
+//        result.append(";");
+//        result.append("nameRelationRuleConsideredCodeEdition");
+//        result.append(":");
+//        result.append(this.isNameRelationsRuleConsideredCodeEditionActivated);
+//        result.append(";");
+//        result.append("hybrid");
+//        result.append(":");
+//        result.append(this.isHybridActivated());
+      result.replace(result.length()-1, result.length(), "");
       return result.toString();
     }
 
@@ -302,4 +335,36 @@ public class NameDetailsConfigurator {
         this.isSecDetailsActivated = isSecDetailsActivated;
     }
 
+    public boolean isNameRelationsRuleConsideredActivated() {
+        return isNameRelationsRuleConsideredActivated;
+    }
+
+    public void setNameRelationsRuleConsideredActivated(boolean isRuleConsideredActivated) {
+        this.isNameRelationsRuleConsideredActivated = isRuleConsideredActivated;
+    }
+
+    public boolean isNameRelationsRuleConsideredCodeEditionActivated() {
+        return isNameRelationsRuleConsideredCodeEditionActivated;
+    }
+
+    public void setNameRelationsRuleConsideredCodeEditionActivated(boolean isRuleConsideredCodeEditionActivated) {
+        this.isNameRelationsRuleConsideredCodeEditionActivated = isRuleConsideredCodeEditionActivated;
+    }
+
+    public boolean isNomenclaturalStatusRuleConsideredActivated() {
+        return isNomenclaturalStatusRuleConsideredActivated;
+    }
+
+    public void setNomenclaturalStatusRuleConsideredActivated(boolean isRuleConsideredActivated) {
+        this.isNomenclaturalStatusRuleConsideredActivated = isRuleConsideredActivated;
+    }
+
+    public boolean isNomenclaturalStatusRuleConsideredCodeEditionActivated() {
+        return isNomenclaturalStatusRuleConsideredCodeEditionActivated;
+    }
+
+    public void setNomenclaturalStatusRuleConsideredCodeEditionActivated(boolean isRuleConsideredCodeEditionActivated) {
+        this.isNomenclaturalStatusRuleConsideredCodeEditionActivated = isRuleConsideredCodeEditionActivated;
+    }
+
 }
index c74616a639c5b5dd83350fe70eda48ebfbe493c5..c735e1cc21a6836ccf84c0008336706b65368027 100644 (file)
@@ -42,9 +42,13 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
     protected boolean isShowNameApprobiation ;
     protected boolean isShowHybrid;
     protected boolean isShowNameRelationship;
+    protected boolean isShowNameRelationshipRuleConsidered;
+    protected boolean isShowNameRelationshipRuleConsideredCodeEdition;
     protected boolean isShowTypeDesignation;
     protected boolean isShowProtologue;
     protected boolean isShowNomenclaturalStatus;
+    protected boolean isShowNomenclaturalStatusRuleConsidered;
+    protected boolean isShowNomenclaturalStatusRuleConsideredCodeEdition;
     protected boolean isShowNomenclaturalRef;
     protected boolean isShowAuthorship;
     protected boolean isShowAuthorCache;
@@ -75,9 +79,13 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
     protected Button showAuthorship;
     protected Button showNomenclaturalRef;
     protected Button showNomenclaturalStatus;
+    protected Button showNomenclaturalStatusRuleConsidered;
+    protected Button showNomenclaturalStatusRuleConsideredCodeEdition;
     protected Button showProtologue;
     protected Button showTypeDesignation;
     protected Button showNameRelationship;
+    protected Button showNameRelationshipRuleConsidered;
+    protected Button showNameRelationshipRuleConsideredCodeEdition;
     protected Button showHybrid;
     protected Button showNameApprobiation;
 
@@ -325,6 +333,41 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
                      setApply(true);
                      isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
                      nameDetailsConfig.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
+                     if (isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false){
+                         showNomenclaturalStatusRuleConsidered.setEnabled(isShowNomenclaturalStatus);
+                         showNomenclaturalStatusRuleConsideredCodeEdition.setEnabled(isShowNomenclaturalStatus);
+                     }
+                  }
+             });
+            Composite nomenlaturalStatusComp = new Composite(dbSettings, SWT.NULL);
+
+            GridLayoutFactory.fillDefaults().applyTo(nomenlaturalStatusComp);
+
+            nomenlaturalStatusComp.setLayoutData(data);
+
+            showNomenclaturalStatusRuleConsidered = new Button(nomenlaturalStatusComp, SWT.CHECK);
+            isShowNomenclaturalStatusRuleConsidered = nameDetailsConfig.isNomenclaturalStatusRuleConsideredActivated();
+            showNomenclaturalStatusRuleConsidered.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered);
+
+            showNomenclaturalStatusRuleConsidered.addSelectionListener(new SelectionAdapter(){
+                 @Override
+                 public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
+                     isShowNomenclaturalStatusRuleConsidered = showNomenclaturalStatusRuleConsidered.getSelection();
+                     nameDetailsConfig.setNomenclaturalStatusRuleConsideredActivated(isShowNomenclaturalStatusRuleConsidered);
+                  }
+             });
+
+            showNomenclaturalStatusRuleConsideredCodeEdition = new Button(nomenlaturalStatusComp, SWT.CHECK);
+            isShowNomenclaturalStatusRuleConsideredCodeEdition = nameDetailsConfig.isNomenclaturalStatusRuleConsideredCodeEditionActivated();
+            showNomenclaturalStatusRuleConsideredCodeEdition.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition);
+
+            showNomenclaturalStatusRuleConsideredCodeEdition.addSelectionListener(new SelectionAdapter(){
+                 @Override
+                 public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
+                     isShowNomenclaturalStatusRuleConsideredCodeEdition = showNomenclaturalStatusRuleConsideredCodeEdition.getSelection();
+                     nameDetailsConfig.setNomenclaturalStatusRuleConsideredCodeEditionActivated(isShowNomenclaturalStatusRuleConsideredCodeEdition);
                   }
              });
 
@@ -365,6 +408,40 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
                      setApply(true);
                      isShowNameRelationship = showNameRelationship.getSelection();
                      nameDetailsConfig.setNameRelationsSectionActivated(isShowNameRelationship);
+                     if (isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false){
+                         showNameRelationshipRuleConsidered.setEnabled(isShowNameRelationship);
+                         showNameRelationshipRuleConsideredCodeEdition.setEnabled(isShowNameRelationship);
+                     }
+                  }
+             });
+
+            Composite nameRelationComp = new Composite(dbSettings, SWT.NULL);
+            GridLayoutFactory.fillDefaults().applyTo(nameRelationComp);
+            nameRelationComp.setLayoutData(data);
+
+            showNameRelationshipRuleConsidered = new Button(nameRelationComp, SWT.CHECK);
+            isShowNameRelationshipRuleConsidered = nameDetailsConfig.isNameRelationsRuleConsideredActivated();
+            showNameRelationshipRuleConsidered.setText(Messages.NameDetailsViewComposite_Show_Namerelationships_RuleConsidered);
+
+            showNameRelationshipRuleConsidered.addSelectionListener(new SelectionAdapter(){
+                 @Override
+                 public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
+                     isShowNameRelationshipRuleConsidered = showNameRelationshipRuleConsidered.getSelection();
+                     nameDetailsConfig.setNameRelationsRuleConsideredActivated(isShowNameRelationshipRuleConsidered);
+                  }
+             });
+
+            showNameRelationshipRuleConsideredCodeEdition = new Button(nameRelationComp, SWT.CHECK);
+            isShowNameRelationshipRuleConsideredCodeEdition = nameDetailsConfig.isNameRelationsRuleConsideredCodeEditionActivated();
+            showNameRelationshipRuleConsideredCodeEdition.setText(Messages.NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition);
+
+            showNameRelationshipRuleConsideredCodeEdition.addSelectionListener(new SelectionAdapter(){
+                 @Override
+                 public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
+                     isShowNameRelationshipRuleConsideredCodeEdition = showNameRelationshipRuleConsideredCodeEdition.getSelection();
+                     nameDetailsConfig.setNameRelationsRuleConsideredCodeEditionActivated(isShowNameRelationshipRuleConsideredCodeEdition);
                   }
              });
 
@@ -426,6 +503,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
             }
 
         }
+        PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
 
     }
@@ -471,9 +549,13 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
         showAuthorship.setSelection(isShowAuthorship);
         showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
         showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
+        showNomenclaturalStatusRuleConsidered.setSelection(isShowNomenclaturalStatusRuleConsidered);
+        showNomenclaturalStatusRuleConsideredCodeEdition.setSelection(isShowNomenclaturalStatusRuleConsideredCodeEdition);
         showProtologue.setSelection(isShowProtologue);
         showTypeDesignation.setSelection(isShowTypeDesignation);
         showNameRelationship.setSelection(isShowNameRelationship);
+        showNameRelationshipRuleConsidered.setSelection(isShowNameRelationshipRuleConsidered);
+        showNameRelationshipRuleConsideredCodeEdition.setSelection(isShowNameRelationshipRuleConsideredCodeEdition);
         showHybrid.setSelection(isShowHybrid);
         showNameApprobiation.setSelection(isShowNameApprobiation);
         secEnabled.setSelection(isSecEnabled);
@@ -494,8 +576,12 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
         isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
         isShowNameCache = nameDetailsConfig.isNameCacheActivated();
         isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
+        isShowNameRelationshipRuleConsidered = nameDetailsConfig.isNameRelationsRuleConsideredActivated();
+        isShowNameRelationshipRuleConsideredCodeEdition = nameDetailsConfig.isNameRelationsRuleConsideredCodeEditionActivated();
         isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
         isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
+        isShowNomenclaturalStatusRuleConsidered = nameDetailsConfig.isNomenclaturalStatusRuleConsideredActivated();
+        isShowNomenclaturalStatusRuleConsideredCodeEdition = nameDetailsConfig.isNomenclaturalStatusRuleConsideredCodeEditionActivated();
         isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
         isShowProtologue = nameDetailsConfig.isProtologueActivated();
         isShowRank = nameDetailsConfig.isRankActivated();
index 0fcc7de48527e3a812193c78b7ea8c4c6d1f918d..273a2fe8fab17dcc5b6229c36877a537e4c1c7ea 100644 (file)
@@ -13,6 +13,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
@@ -921,7 +922,7 @@ public class PreferencesUtil implements IPreferenceKeys {
 
 
         //Name Details
-        getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
+       // getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
 
         //Navigator preferences
         getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), NavigatorOrderEnum.RankAndNameOrder.getKey());
@@ -1381,38 +1382,34 @@ public class PreferencesUtil implements IPreferenceKeys {
             value = getStringValue(PreferencePredicate.NameDetailsView.getKey(), local);
         }
         if (value!= null){
-            String [] sections = value.split(";");
-            Map<String, Boolean> sectionMap = new HashMap<String, Boolean>();
-            String[] sectionValues;
-            for (String sectionValue: sections){
-                sectionValues = sectionValue.split(":");
-                sectionMap.put(sectionValues[0], Boolean.valueOf(sectionValues[1]));
-            }
-            config.setSimpleDetailsViewActivated(getValue(sectionMap, "simpleViewActivated"));
-            config.setTaxonSectionActivated(getValue(sectionMap, "taxon"));
-            config.setSecDetailsActivated(getValue(sectionMap, "taxon.SecDetails"));
-            config.setSecEnabled(getValue(sectionMap, "taxon.SecEnabled"));
-            config.setLSIDActivated(getValue(sectionMap, "lsid"));
-            config.setNomenclaturalCodeActived(getValue(sectionMap, "nc"));
-            config.setAppendedPhraseActivated(getValue(sectionMap, "ap"));
-            config.setRankActivated(getValue(sectionMap, "rank"));
-            config.setNameCacheActivated(getValue(sectionMap, "nameCache"));
-            config.setAtomisedEpithetsActivated(getValue(sectionMap, "atomisedEpithets"));
-            config.setAuthorshipSectionActivated(getValue(sectionMap,"author"));
-            config.setAuthorCacheActivated(getValue(sectionMap, "authorCache"));
-            config.setNomenclaturalReferenceSectionActivated(sectionMap.get("nomRef"));
-            config.setNomenclaturalStatusSectionActivated(getValue(sectionMap, "nomStat"));
-            config.setProtologueActivated(getValue(sectionMap,"protologue"));
-            config.setTypeDesignationSectionActivated(getValue(sectionMap,"typeDes"));
-            config.setNameRelationsSectionActivated(getValue(sectionMap,"nameRelation"));
-            config.setHybridActivated(getValue(sectionMap,"hybrid"));
-            config.setNameApprobiationActivated(getValue(sectionMap, "nameApproviation"));
+            fillNameDetailsConfigurator(config, value);
+
+
         }else {
             return null;
         }
         return config;
     }
 
+    public static void fillNameDetailsConfigurator(NameDetailsConfigurator config, String value) {
+        String [] sections = value.split(";");
+        Map<String, Boolean> sectionMap = new HashMap<String, Boolean>();
+        String[] sectionValues;
+        for (String sectionValue: sections){
+            sectionValues = sectionValue.split(":");
+            sectionMap.put(sectionValues[0], Boolean.valueOf(sectionValues[1]));
+        }
+        for (Field field: config.getClass().getDeclaredFields()){
+            try {
+                config.getClass().getDeclaredField(field.getName()).set(config, getValue(sectionMap, field.getName()));
+            } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException
+                    | SecurityException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+    }
+
     public static NameDetailsConfigurator getPreferredNameDetailsConfiguration() {
         NameDetailsConfigurator config = new NameDetailsConfigurator(true);
 
@@ -1420,44 +1417,7 @@ public class PreferencesUtil implements IPreferenceKeys {
 
         value = getStringValue(PreferencePredicate.NameDetailsView.getKey(), false);
         if (value != null){
-            String [] sections = value.split(";");
-            Map<String, Boolean> sectionMap = new HashMap<String, Boolean>();
-            String[] sectionValues;
-            for (String sectionValue: sections){
-                sectionValues = sectionValue.split(":");
-                sectionMap.put(sectionValues[0], Boolean.valueOf(sectionValues[1]));
-            }
-
-            config.setSimpleDetailsViewActivated(getValue(sectionMap, "simpleViewActivated"));
-
-            config.setTaxonSectionActivated(getValue(sectionMap, "taxon"));
-
-            config.setSecDetailsActivated(getValue(sectionMap, "taxon.SecDetails"));
-            config.setSecEnabled(getValue(sectionMap, "taxon.SecEnabled"));
-
-            config.setLSIDActivated(getValue(sectionMap, "lsid"));
-
-            config.setNomenclaturalCodeActived(getValue(sectionMap, "nc"));
-
-            config.setAppendedPhraseActivated(getValue(sectionMap, "ap"));
-
-            config.setRankActivated(getValue(sectionMap, "rank"));
-
-            config.setAtomisedEpithetsActivated(getValue(sectionMap, "atomisedEpithets"));
-
-            config.setAuthorshipSectionActivated(getValue(sectionMap,"author"));
-
-            config.setNomenclaturalReferenceSectionActivated(sectionMap.get("nomRef"));
-
-            config.setNomenclaturalStatusSectionActivated(getValue(sectionMap, "nomStat"));
-
-            config.setProtologueActivated(getValue(sectionMap,"protologue"));
-
-            config.setTypeDesignationSectionActivated(getValue(sectionMap,"typeDes"));
-
-            config.setNameRelationsSectionActivated(getValue(sectionMap,"nameRelation"));
-
-                config.setHybridActivated(getValue(sectionMap,"hybrid"));
+            fillNameDetailsConfigurator(config, value);
         }
         return config;
     }
index d58450773102a131a80773fc2f5387e185c069a4..30bb0b74c03e69e6044cf9499950990994b2e584 100644 (file)
@@ -3233,61 +3233,7 @@ public class CdmFormFactory extends FormToolkit {
                return section;
        }
 
-         /**
-     * <p>
-     * createTextWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param textLimit maximal number of characters allowed
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
-    public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
-            NameRelationship relation, int style) {
-
-
-        RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, relation, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
-
-    /**
-     * <p>
-     * createTextWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param textLimit maximal number of characters allowed
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
-    public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
-            NomenclaturalStatus status, int style) {
-
 
-        RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, status, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
     /**
      * <p>
      * createTextWithLabelElement
@@ -3306,11 +3252,8 @@ public class CdmFormFactory extends FormToolkit {
      * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
      *         object.
      */
-    public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString,
-            int style) {
-
-
-        RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, style);
+    public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString, boolean isShowCodeEdition, int style) {
+        RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, isShowCodeEdition, style);
         adapt(element);
         parentElement.addElement(element);
         return element;
index 2733355f7ceb749b8458fe1c091f349cc34a783f..6b72ed77d6753f127e0eb6ab6fce5e8e1f41aad3 100644 (file)
@@ -15,6 +15,8 @@ import org.eclipse.swt.graphics.Color;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -58,9 +60,12 @@ public class NameRelationshipDetailElement extends AbstractReferencedEntityEleme
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
+           NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration();
                label = formFactory.createLabel(element, null);
 
-               ruleConsidered = formFactory.createRuleConsideredElement(element, "Rule Considered", style);
+               if (config.isNameRelationsRuleConsideredActivated()){
+                   ruleConsidered = formFactory.createRuleConsideredElement(element, "Rule Considered", config.isNameRelationsRuleConsideredCodeEditionActivated(), style);
+               }
 
                super.createControls(element, style);
        }
@@ -71,7 +76,9 @@ public class NameRelationshipDetailElement extends AbstractReferencedEntityEleme
                String text = entity.getFromName().getTitleCache() + " is " + entity.getType().getLabel() + " " + entity.getToName().getTitleCache();
 
                label.setText(text);
-               ruleConsidered.setElement(entity);
+               if (ruleConsidered != null){
+                   ruleConsidered.setElement(entity);
+               }
 
                super.setEntity(entity);
        }
index b0167ace7a2c79a6c0fe522cd5dc1ee7ba9ece76..98c77e0e8ebef275b221437400182b2072d1c82b 100644 (file)
@@ -16,6 +16,8 @@ import org.eclipse.swt.events.SelectionListener;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -49,7 +51,7 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
        @Override
        public void createControls(ICdmFormElement element, int style) {
            //TermVocabulary vocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.NomenclaturalStatusType.getUuid());
-
+           NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration();
            Comparator<NomenclaturalStatusType> termComparator= new Comparator<NomenclaturalStatusType>() {
 
             @Override
@@ -79,7 +81,9 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
 
                nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Status", null,true, style, true);
                nomenclaturalStatusTypeCombo.setTermComparator(termComparator);
-               ruleConsidered = formFactory.createRuleConsideredElement(this, "Rule Considered", style);
+               if (config.isNomenclaturalStatusRuleConsideredActivated()){
+                   ruleConsidered = formFactory.createRuleConsideredElement(this, "Rule Considered", config.isNomenclaturalStatusRuleConsideredCodeEditionActivated(), style);
+               }
 
                super.createControls(element, style);
 
@@ -93,7 +97,9 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
                    nomenclaturalStatusTypeCombo.setSelection(entity.getType());
                    nomenclaturalStatusTypeCombo.removeEmptyElement();
                }
-               ruleConsidered.setElement(entity);
+               if (ruleConsidered != null){
+                   ruleConsidered.setElement(entity);
+               }
        }
 
        /**
index 7032ed03a2a8ab203f2908a8715ab216679bd32b..fa06a12d40620bfd5d6032bd1a9a1ae39cb3f3a0 100755 (executable)
@@ -17,9 +17,7 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.name.IRuleConsidered;
-import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCodeEdition;
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -35,15 +33,13 @@ public class RuleConsideredElement extends AbstractCdmFormElement implements Sel
 
     protected TextWithLabelElement textRuleConsidered;
 
-    protected EnumComboElement<NomenclaturalCodeEdition> nomenclaturalCodeEdition;
+    protected EnumComboElement<NomenclaturalCodeEdition> nomenclaturalCodeEdition = null;
 
     Map<String, Integer> nomenclaturalCodeEditionStringMap;
 
     private IRuleConsidered element = null;
 
 
-    //private NameRelationship nameRelation = null;
-
     /**
      * @param cdmFormFactory
      * @param parentElement
@@ -51,62 +47,21 @@ public class RuleConsideredElement extends AbstractCdmFormElement implements Sel
      * @param initialRule
      * @param style
      */
-    public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, int style) {
+    public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, boolean isShowCodeEdition, int style) {
         super(formFactory, formElement);
         this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
-        this.nomenclaturalCodeEdition = formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
-        nomenclaturalCodeEditionStringMap = new HashMap<>();
-        nomenclaturalCodeEdition.addSelectionListener(this);
-        formFactory.addPropertyChangeListener(this);
-
-    }
-
-
-    /**
-     * @param cdmFormFactory
-     * @param parentElement
-     * @param labelString
-     * @param initialRule
-     * @param style
-     */
-    public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, NomenclaturalStatus status, int style) {
-        super(formFactory, formElement);
-        this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
-        this.nomenclaturalCodeEdition =  formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
-
+        if(isShowCodeEdition){
+            this.nomenclaturalCodeEdition = formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
+            nomenclaturalCodeEdition.addSelectionListener(this);
+        }
         nomenclaturalCodeEditionStringMap = new HashMap<>();
 
-
-        this.element = status;
-        textRuleConsidered.setText(status.getRuleConsidered());
-
-        nomenclaturalCodeEdition.addSelectionListener(this);
         formFactory.addPropertyChangeListener(this);
-    }
-
-    /**
-     * @param cdmFormFactory
-     * @param parentElement
-     * @param labelString
-     * @param initialRule
-     * @param style
-     */
-    public RuleConsideredElement( CdmFormFactory formFactory, ICdmFormElement formElement, String labelString, NameRelationship relation, int style) {
-        super(formFactory, formElement);
-        this.textRuleConsidered = formFactory.createTextWithLabelElement(formElement, "Rule considered", null, style);
-
-        this.nomenclaturalCodeEdition =  formFactory.createEnumComboElement(NomenclaturalCodeEdition.class, formElement, null, style);
-
-        nomenclaturalCodeEditionStringMap = new HashMap<>();
 
-        this.element = relation;
-        textRuleConsidered.setText(element.getRuleConsidered());
-
-        nomenclaturalCodeEdition.addSelectionListener(this);
-        formFactory.addPropertyChangeListener(this);
     }
 
 
+
     public IRuleConsidered getElement() {
         return element;
     }
@@ -116,9 +71,14 @@ public class RuleConsideredElement extends AbstractCdmFormElement implements Sel
         this.element = status;
         if (status.getRuleConsidered() != null){
             this.textRuleConsidered.setText(getText());
-            this.nomenclaturalCodeEdition.setSelection(getCodeEdition());
+            if (nomenclaturalCodeEdition != null){
+                this.nomenclaturalCodeEdition.setSelection(getCodeEdition());
+            }
         }else{
-            this.nomenclaturalCodeEdition.setEnabled(false);
+            if (nomenclaturalCodeEdition != null){
+                this.nomenclaturalCodeEdition.setEnabled(false);
+            }
+
         }
     }
 
@@ -138,9 +98,11 @@ public class RuleConsideredElement extends AbstractCdmFormElement implements Sel
     }
     @Override
     public void widgetSelected(SelectionEvent e) {
-        NomenclaturalCodeEdition edition =  nomenclaturalCodeEdition.getSelection();
-        if (element != null){
-            this.element.setCodeEdition(edition);
+        if (nomenclaturalCodeEdition != null){
+            NomenclaturalCodeEdition edition =  nomenclaturalCodeEdition.getSelection();
+            if (element != null){
+                this.element.setCodeEdition(edition);
+            }
         }
     }
 
@@ -161,10 +123,14 @@ public class RuleConsideredElement extends AbstractCdmFormElement implements Sel
                 element.setRuleConsidered(textRuleConsidered.getText());
             }
             if (StringUtils.isBlank(textRuleConsidered.getText())){
-                this.nomenclaturalCodeEdition.setEnabled(false);
+                if (nomenclaturalCodeEdition != null){
+                    this.nomenclaturalCodeEdition.setEnabled(false);
+                }
                 this.element.setCodeEdition(null);
             }else{
-                this.nomenclaturalCodeEdition.setEnabled(true);
+                if (nomenclaturalCodeEdition != null){
+                    this.nomenclaturalCodeEdition.setEnabled(true);
+                }
             }
         }