Fixes #2217
authorn.hoffmann <n.hoffmann@localhost>
Fri, 11 Feb 2011 12:08:21 +0000 (12:08 +0000)
committern.hoffmann <n.hoffmann@localhost>
Fri, 11 Feb 2011 12:08:21 +0000 (12:08 +0000)
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/LineBreakListener.java

index 381091dfdf868965b95a1043c7b377ab6756dfd5..4cfdc8af1e3be10be6cd136d8f68d09ca4b89245 100644 (file)
@@ -923,7 +923,6 @@ abstract public class AbstractGroupedContainer<T extends TaxonBase> implements I
                };
                
                getNameViewer().getTextWidget().addVerifyListener(lineBreakListener);
-               getNameViewer().getTextWidget().addKeyListener(lineBreakListener);
        }
                
        abstract class LabelEllipsisListener extends ControlAdapter {
index cd0005f7ca2d19994a888bafe5d98d1fad843ec9..cae8f6fce36694952c2688588239b9995b572038 100644 (file)
@@ -14,8 +14,6 @@ import java.util.Collection;
 import java.util.Scanner;
 
 import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
 import org.eclipse.swt.events.VerifyEvent;
 import org.eclipse.swt.events.VerifyListener;
 
@@ -45,9 +43,10 @@ import org.eclipse.swt.events.VerifyListener;
  * @created 19.05.2008
  * @version 1.0
  */
-public abstract class LineBreakListener implements VerifyListener, KeyListener {
+public abstract class LineBreakListener implements VerifyListener{
+
+       private static String LINE_BREAK = System.getProperty("line.separator");
        
-       Collection<String> splitTexts;
        
        /**
         * {@inheritDoc}
@@ -67,21 +66,18 @@ public abstract class LineBreakListener implements VerifyListener, KeyListener {
                int cursorPosition = styledText.getCaretOffset();
                
                // If no line break in verifyText, Parse text normally
-               if (!verifyText.contains(System.getProperty("line.separator"))) {
+               if (!verifyText.contains(LINE_BREAK)) {
                        return;
                }
                                
                // Don't add verifyText without further processing
                e.doit = false;
                
-               // Initialize split text collection
-               splitTexts = new ArrayList<String>();
-               
                // If user has entered return at the end of the line,
                //  make a new, empty synonym
                if (widgetText.length() == cursorPosition &&
-                               verifyText.equals(System.getProperty("line.separator"))) {
-                       splitTexts.add("");
+                               verifyText.equals(LINE_BREAK)) {
+                       handleSplitText("");
                        return;
                }
                
@@ -92,29 +88,14 @@ public abstract class LineBreakListener implements VerifyListener, KeyListener {
                
                // Split on line breaks
                Scanner scanner = new Scanner( textForSplitting );
-               scanner.useDelimiter (System.getProperty("line.separator"));
+               scanner.useDelimiter(LINE_BREAK);
                
                // Put first string into name viewer
                styledText.setText(scanner.next());     
                
                // Start new synonyms with the rest
                while (scanner.hasNext()) {
-                       splitTexts.add(scanner.next());
-               }
-       }
-       
-       
-       /** {@inheritDoc} */
-       public void keyPressed(KeyEvent e) {}
-
-       
-       /** {@inheritDoc} */
-       public void keyReleased(KeyEvent e) {
-               if (splitTexts != null) {
-                       for (String text : splitTexts) {
-                               handleSplitText(text);
-                       }
-                       splitTexts = null;
+                       handleSplitText(scanner.next());
                }
        }