- fixed removing of control characters (fixes #4373, affects #2248)
authorPatric Plitzner <p.plitzner@bgbm.org>
Mon, 1 Sep 2014 08:35:52 +0000 (08:35 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Mon, 1 Sep 2014 08:35:52 +0000 (08:35 +0000)
   - added condition to only replace if the string contains control characters
   - cursor will still jump back but only when control characters were removed
 - removed unused method

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/element/TextWithLabelElement.java

index 7157a91847937530412cbf18669f013c35c50b11..5eb34b5bc72eb7f9b1b6ba12eb29298d80663a84 100644 (file)
@@ -171,8 +171,8 @@ import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.key.ScopeRestrictionSection;
 import eu.etaxonomy.taxeditor.ui.section.key.TaxonomicScopeSection;
 import eu.etaxonomy.taxeditor.ui.section.media.ImageFileElement;
-import eu.etaxonomy.taxeditor.ui.section.media.MediaMetaElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.media.MediaMetaElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationPartElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationPartSection;
@@ -787,27 +787,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createTextElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
-    public TextWithLabelElement createTextElement(ICdmFormElement parentElement, String initialText, int style) {
-        TextWithLabelElement element = new TextWithLabelElement(this, parentElement, null, initialText, null, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
 
     /**
      * <p>
index c1a01110b22705681c887233fc4617520f6a9c28..9657c69dd248d2d64ecd85c4e9e26097c04e240d 100644 (file)
@@ -160,8 +160,19 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
     public void modifyText(ModifyEvent e) {
         if(e.widget ==  text){
             Text text = (Text) e.widget;
-            //remove control character such as line breaks etc.
-            setText(text.getText().replaceAll("\\p{C}", "?"));
+            boolean hasControlCharacters = false;
+            String textString = text.getText();
+            int stringLength = textString.length();
+            for (int i = 0; i < stringLength; i++) {
+                if (Character.isISOControl(textString.charAt(i))) {
+                    hasControlCharacters = true;
+                    break;
+                }
+            }
+            if(hasControlCharacters){
+                //remove control character such as line breaks etc.
+                setText(text.getText().replaceAll("\\p{C}", ""));
+            }
         }
         firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
     }