ref #5741: add NULL value handling to symbol and symbol2
authorKatja Luther <k.luther@bgbm.org>
Thu, 12 May 2022 08:06:27 +0000 (10:06 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 12 May 2022 08:06:27 +0000 (10:06 +0200)
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/ui/element/CdmFormFactory.java [changed mode: 0644->0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java

index dad22738f094c66d87cf232c9f7a00327d239ebb..08d546f12d18fdd127a50e285fcaded900fb8539 100644 (file)
@@ -639,6 +639,9 @@ public class Messages extends NLS {
 
     public static String ToggleableText_ToolTip_closed;
     public static String ToggleableText_ToolTip_open;
+    
+    public static String TextWithAddNull_ToolTip_null;
+    public static String TextWithAddNull_ToolTip_NotNull;
 
     public static String PublishFlagPreference_description_not_allowed;
 
index 63b9d84d04d9ae134b600295e939571d60343fa1..12f9bfbb1c484d38b15d330fc3d47bd74f413ae3 100644 (file)
@@ -624,4 +624,7 @@ SecundumPreference_description=Default settings of secundum reference handling f
 SecundumPreferenceSwap_description=Default settings of secundum reference handling for swap synonym and taxon.
 Tree= Tree
 Computed_factualData_handling_description=This preference defines whether computed factual data should be editable, disabled or not shown
-FactualData_EnableComputedFactualData=Handling of computed factual data
\ No newline at end of file
+FactualData_EnableComputedFactualData=Handling of computed factual data
+
+TextWithAddNull_ToolTip_null=Remove the value
+TextWithAddNull_ToolTip_NotNull=No value, to add a new value, uncheck the checkbox
\ No newline at end of file
index b4bcf93395e842960c347dfa8e698653f63fa650..1c872d59ee6dc43dc3c0e8cb117bc6a704a61718 100644 (file)
@@ -624,4 +624,7 @@ SecundumPreference_description=Default Einstellungen f
 SecundumPreferenceSwap_description=Default Einstellungen für das Setzen der Secundum Referenz beim Tauschen eines Synonyms mit dem akzeptierten Taxon.
 Tree=-Baum
 Computed_factualData_handling_description=Diese Einstellung gibt an, ob berechnete Faktendaten bearbeitbar, ausgeblendet oder nur angezeigt werden sollen.
-FactualData_EnableComputedFactualData=Umgang mit berechneten Faktendaten
\ No newline at end of file
+FactualData_EnableComputedFactualData=Umgang mit berechneten Faktendaten
+
+TextWithAddNull_ToolTip_null=Entferne den Wert aus dem Feld
+TextWithAddNull_ToolTip_NotNull=Kein Wert, um einen Wert einzufügen, bitte das Häkchen entfernen
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 5e3634c..52a766c
@@ -759,7 +759,34 @@ public class CdmFormFactory extends FormToolkit {
             String initialText, int style) {
         return createTextWithLabelElement(parentElement, labelString, initialText, null, style);
     }
+    
+    
 
+    /**
+     * createTextWithLabelAndSetNullElement
+     *
+     * @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.TextWithLabelAndSetNullElement}
+     *         object.
+     */
+    public TextWithLabelAndSetNullElement createTextWithLabelAndSetNullElement(ICdmFormElement parentElement,
+                       String labelString, String initialText, int style) {
+        TextWithLabelAndSetNullElement element = new TextWithLabelAndSetNullElement(this, parentElement, labelString, initialText, style) ;
+               
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+    
     /**
      * createTextWithLabelElement
      *
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java
new file mode 100755 (executable)
index 0000000..a7a6af0
--- /dev/null
@@ -0,0 +1,77 @@
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+
+public class TextWithLabelAndSetNullElement extends ToggleableTextElement {
+       
+
+       protected TextWithLabelAndSetNullElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
+                       String labelString, String initialText,  int style) {
+               super(formFactory, parentElement, labelString, initialText, initialText == null, null, style);
+//             this.btnToggleProtectTitleCache.setSelection(initialText == null);
+               if (btnToggleProtectTitleCache.getSelection()){
+                       this.text_cache.setText("[NULL]");
+                       this.text_cache.setEnabled(false);
+               }
+               
+       }
+
+       protected void createButton(CdmFormFactory formFactory) {
+               btnToggleProtectTitleCache = formFactory.createButton(container, null, SWT.CHECK);
+                               
+               addControl(btnToggleProtectTitleCache);
+               btnToggleProtectTitleCache.addSelectionListener(this);
+               btnToggleProtectTitleCache.setToolTipText("Remove the value and keep it empty");
+       }
+
+       @Override
+    public void widgetSelected(SelectionEvent e) {
+               //add [NULL] to text field
+               text_cache.setEnabled(btnToggleProtectTitleCache.getSelection());
+               String textStr = "";
+               if (btnToggleProtectTitleCache.getSelection()){
+                       textStr = "[NULL]";
+               }
+               text_cache.setText(textStr);
+               setState(btnToggleProtectTitleCache.getSelection());
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+       }
+       
+
+
+       @Override
+       public void widgetDefaultSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+               
+       }
+       
+       @Override
+       protected void setState(boolean state) {
+               btnToggleProtectTitleCache.setSelection(state);
+               text_cache.setEnabled(!state);
+           if(state){
+               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_NotNull);            
+           }
+           else{
+               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_null);
+           }   
+               
+       }
+       
+       @Override
+    public void setEnabled(boolean isEnabled){
+        this.isEnabled = isEnabled;
+        if (!state){
+            text_cache.setEditable(isEnabled);
+        }
+        btnToggleProtectTitleCache.setEnabled(isEnabled);
+    }
+
+}
index c152c0faad968f3b6307f88fc76250cc9d1ee0ca..b1addccd54bf4c9f520ed2fb34bb1ebbafce78a2 100644 (file)
@@ -42,15 +42,15 @@ public class ToggleableTextElement
         implements SelectionListener, ModifyListener,
         IEnableableFormElement, ISelectable {
 
-       private final Text text_cache;
-       private final Button btnToggleProtectTitleCache;
-       private boolean state;
+       protected Text text_cache;
+       protected Button btnToggleProtectTitleCache;
+       protected boolean state;
        private final Set<SelectionListener> selectionListener = new HashSet<>();
        private final Label label;
-       private final Composite container;
+       protected final Composite container;
        private final CacheRelevance relevance;
 
-       private boolean isEnabled = true;
+       protected boolean isEnabled = true;
        //TODO for RL
        public void setVisible(boolean b) {
                text_cache.setVisible(b);
@@ -92,14 +92,18 @@ public class ToggleableTextElement
                        }
                });
 
+               createButton(formFactory);
+
+               this.relevance = relevance;
+               setState(initialState);
+       }
+
+       protected void createButton(CdmFormFactory formFactory) {
                btnToggleProtectTitleCache = formFactory.createButton(container, "Edit", SWT.TOGGLE);
                btnToggleProtectTitleCache.setText("");
                btnToggleProtectTitleCache.setImage(ImageResources.getImage(ImageResources.LOCK_ICON));
                addControl(btnToggleProtectTitleCache);
                btnToggleProtectTitleCache.addSelectionListener(this);
-
-               this.relevance = relevance;
-               setState(initialState);
        }
 
        public void setText(String text){
@@ -121,7 +125,7 @@ public class ToggleableTextElement
                return text_cache.getText();
        }
 
-       private void setState(boolean state) {
+       protected void setState(boolean state) {
            if(state){
                btnToggleProtectTitleCache.setImage(ImageResources.getImage(ImageResources.LOCK_OPEN_ICON));
                btnToggleProtectTitleCache.setToolTipText(Messages.ToggleableText_ToolTip_open);