ref #5741: symbol and symbol2 field: add selection box and disable when selected
authorKatja Luther <k.luther@bgbm.org>
Fri, 17 Jun 2022 11:53:40 +0000 (13:53 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 17 Jun 2022 11:53:40 +0000 (13:53 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailElement.java

index a7a6af037b8116a1469f0bf678099f40144fd0f8..de818adfc4da9dad2857e1e225da547730148496 100755 (executable)
@@ -1,6 +1,7 @@
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Button;
@@ -14,13 +15,17 @@ 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);
-               }
+               super(formFactory, parentElement, labelString, initialText, !initialText.equals("[NULL]"), null, style);
+               
+               this.text_cache.setEnabled(state);
+               
+               text_cache.addModifyListener(this);
                
+               btnToggleProtectTitleCache.setSelection(!state);
+//             if (!state){
+//                     this.text_cache.setText("[NULL]");
+//                     
+//             }
        }
 
        protected void createButton(CdmFormFactory formFactory) {
@@ -34,13 +39,15 @@ public class TextWithLabelAndSetNullElement extends ToggleableTextElement {
        @Override
     public void widgetSelected(SelectionEvent e) {
                //add [NULL] to text field
-               text_cache.setEnabled(btnToggleProtectTitleCache.getSelection());
+               setState(!btnToggleProtectTitleCache.getSelection());
+               text_cache.setEnabled(state);
+               
                String textStr = "";
                if (btnToggleProtectTitleCache.getSelection()){
                        textStr = "[NULL]";
                }
                text_cache.setText(textStr);
-               setState(btnToggleProtectTitleCache.getSelection());
+               
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
        
@@ -54,24 +61,42 @@ public class TextWithLabelAndSetNullElement extends ToggleableTextElement {
        
        @Override
        protected void setState(boolean state) {
-               btnToggleProtectTitleCache.setSelection(state);
+               //btnToggleProtectTitleCache.setSelection(state);
+               
                text_cache.setEnabled(!state);
+               String textStr = "";
            if(state){
-               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_NotNull);            
+               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_NotNull);     
            }
            else{
                btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_null);
-           }   
+               textStr = "[NULL]";
+               
+           }  
+          
+           //text_cache.setText(textStr);
+           this.state = state;
+           text_cache.removeModifyListener(this);
+        text_cache.addModifyListener(this);
+//        text_cache.setText(textStr);
                
        }
        
        @Override
     public void setEnabled(boolean isEnabled){
         this.isEnabled = isEnabled;
-        if (!state){
+        if (state){
             text_cache.setEditable(isEnabled);
         }
         btnToggleProtectTitleCache.setEnabled(isEnabled);
     }
+       
+       @Override
+    public void modifyText(ModifyEvent e) {
+           if (state){
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+           }
+       }
+       
 
 }
index 7797ae546c403b269ae3c14ebdd8b69cf54d60fa..22f67eb526651a1580b9550774bc73c15467648b 100644 (file)
@@ -9,11 +9,14 @@
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
 import org.apache.commons.lang3.StringUtils;\r
+import org.eclipse.swt.widgets.Composite;\r
 \r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
+import eu.etaxonomy.cdm.persistence.permission.TargetEntityStates;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelAndSetNullElement;\r
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
 \r
 /**\r
@@ -25,9 +28,9 @@ public class DefinedTermDetailElement<T extends DefinedTermBase>
 \r
     protected TextWithLabelElement textIdInVocabulary;\r
 \r
-    protected TextWithLabelElement textSymbol;\r
+    protected TextWithLabelAndSetNullElement textSymbol;\r
 \r
-    protected TextWithLabelElement textSymbol2;\r
+    protected TextWithLabelAndSetNullElement textSymbol2;\r
 \r
        /**\r
         * @param formFactory\r
@@ -42,14 +45,21 @@ public class DefinedTermDetailElement<T extends DefinedTermBase>
     protected void createControls(ICdmFormElement formElement, T entity, int style) {\r
            super.createControls(formElement, entity, style);\r
            textIdInVocabulary = formFactory.createTextWithLabelElement(formElement, "ID in vocabulary", entity.getIdInVocabulary(), style);\r
-           textSymbol = formFactory.createTextWithLabelElement(formElement, "Symbol", entity.getSymbol(), style);\r
-           textSymbol2 = formFactory.createTextWithLabelElement(formElement, "Symbol 2", entity.getSymbol2(), style);\r
+           String symbolString = entity.getSymbol();\r
+           if (entity.getSymbol() == null) {\r
+               symbolString = "[NULL]";\r
+           }\r
+           String symbolString2 = entity.getSymbol2();\r
+           if (entity.getSymbol2() == null) {\r
+               symbolString2 = "[NULL]";\r
+           }\r
+           textSymbol = formFactory.createTextWithLabelAndSetNullElement(formElement, "Symbol", symbolString, style);\r
+           textSymbol2 = formFactory.createTextWithLabelAndSetNullElement(formElement, "Symbol 2", symbolString2, style);\r
        };\r
 \r
        @Override\r
        public void handleEvent(Object eventSource) {\r
            super.handleEvent(eventSource);\r
-               //handleRepresentation(eventSource);\r
                if(eventSource==textIdInVocabulary){\r
                        if (StringUtils.isBlank(textIdInVocabulary.getText())){\r
                                getEntity().setIdInVocabulary(null);\r
@@ -59,20 +69,19 @@ public class DefinedTermDetailElement<T extends DefinedTermBase>
 \r
                }\r
                if(eventSource==textSymbol){\r
-            if (StringUtils.isBlank(textSymbol.getText())){\r
-                getEntity().setSymbol(null);\r
-            }else{\r
-                getEntity().setSymbol(textSymbol.getText());\r
-            }\r
-\r
+                       if (textSymbol.getText().equals("[NULL]")){\r
+                               getEntity().setSymbol(null);\r
+                       }else {\r
+                               getEntity().setSymbol(textSymbol.getText());\r
+                       }\r
         }\r
 \r
                if(eventSource==textSymbol2){\r
-            if (StringUtils.isBlank(textSymbol2.getText())){\r
-                getEntity().setSymbol2(null);\r
-            }else{\r
-                getEntity().setSymbol2(textSymbol2.getText());\r
-            }\r
+                       if (textSymbol2.getText().equals("[NULL]")){\r
+                               getEntity().setSymbol2(null);\r
+                       }else {\r
+                               getEntity().setSymbol2(textSymbol2.getText());\r
+                       }            \r
 \r
         }\r
        }\r