public synchronized void insertChar(char c) { if (c == KeyEvent.CHAR_UNDEFINED) return; if (selectionActivated) deleteSelection(); text.insert(getCaretLocation().toIndex(getLines()), c); clearCache(); setCaretLocation(getCaretLocation().moved(getLines(), 1)); }
public String getSelectedText() { if (!hasSelection()) return ""; int startIndex = getSelectionStart().toIndex(getLines()); int endIndex = getSelectionEnd().toIndex(getLines()); return text.substring(startIndex, endIndex); }
public TextLocation findWordsRightEdge(TextLocation location) { for (int i = location.toIndex(getLines()); i <= text.length() - 1; i++) { if (i == 0) i = 1; if (isAtEndOfWord(i)) return TextLocation.fromIndex(getLines(), i); } return getEndLocation(); }
public synchronized void setText(String newText) { if (newText == null) newText = ""; if (newText.length() == text.length() && newText.equals(getText())) return; text = new StringBuffer(newText); clearCache(); setCaretLocation(getEndLocation()); }
public void deleteEnclosedText(TextLocation start, TextLocation end) { ArrayList<TypedLayout> lines = getLines(); int startIndex = start.toIndex(lines); int endIndex = end.toIndex(lines); synchronized (this) { text.delete(startIndex, endIndex); clearCache(); } setCaretLocation(start); setSelectionLocation(start); }
public void pasteClipboard() { String clipboard = getClipboardContents(); if (clipboard != null && clipboard.length() > 0) { int caretIndex = caretLocation.toIndex(getLines()); synchronized (this) { text.insert(caretIndex, clipboard); clearCache(); } setCaretLocation(TextLocation.fromIndex(getLines(), caretIndex + clipboard.length())); } }
public TextLocation getEndLocation() { return TextLocation.fromIndex(getLines(), text.length()); }
protected TextLocation findNextWordSkippingSpacesOrNewLines(TextLocation startLocation) { for (int i = startLocation.toIndex(getLines()); i <= text.length() - 1; i++) { if (isAtStartOfWord(i)) return TextLocation.fromIndex(getLines(), i); } return getEndLocation(); }
public String getText() { return text.toString(); }
public boolean isAtStartOfWord(int i) { if (i < 0 || i > getText().length()) return true; return (text.charAt(i - 1) == ' ' || text.charAt(i - 1) == '\n') && (text.charAt(i) != ' ' && text.charAt(i) != '\n'); }
public boolean isAtEndOfWord(int i) { return text.charAt(i - 1) != ' ' && text.charAt(i - 1) != '\n' && (text.charAt(i) == ' ' || text.charAt(i) == '\n'); }