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;
* @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}
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;
}
// 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());
}
}