public void actionPerformed(ActionEvent evt) { JEditTextArea textArea = getTextArea(evt); int caret = textArea.getCaretPosition(); int line = textArea.getCaretLine(); int lineStart = textArea.getLineStartOffset(line); caret -= lineStart; String lineText = textArea.getLineText(textArea .getCaretLine()); if(caret == 0) { if(lineStart == 0) { textArea.getToolkit().beep(); return; } caret--; } else { String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); caret = TextUtilities.findWordStart(lineText,caret,noWordSep); } if(select) textArea.select(textArea.getMarkPosition(), lineStart + caret); else textArea.setCaretPosition(lineStart + caret); } }
int caret = textArea.getCaretPosition(); int lastOfLine = textArea.getLineEndOffset( textArea.getCaretLine()) - 1; int lastVisibleLine = textArea.getFirstLine() + textArea.getVisibleLines(); if(lastVisibleLine >= textArea.getLineCount()) lastVisibleLine = Math.min(textArea.getLineCount() - 1, lastVisibleLine); lastVisibleLine -= (textArea.getElectricScroll() + 1); int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1; int lastDocument = textArea.getDocumentLength(); textArea.getToolkit().beep(); return; else if(!Boolean.TRUE.equals(textArea.getClientProperty( SMART_HOME_END_PROPERTY))) caret = lastOfLine; textArea.select(textArea.getMarkPosition(),caret); else textArea.setCaretPosition(caret);
public static final ActionListener REMOVE_TAB=new TAction() { protected void doIt(JEditTextArea textArea) { if(!textArea.isEditable()) { textArea.getToolkit().beep(); return; } int[] start=new int[]{textArea.getSelectionStart()}, end=new int[]{textArea.getSelectionEnd()}; textArea.setText(decreaseIndentation(textArea.getText(),start,end)); textArea.setSelectionStart(start[0]); textArea.setSelectionEnd(end[0]); }};
/** * Returns the text on the specified line. * @param lineIndex The line * @return The text, or null if the line is invalid */ public final String getLineText(int lineIndex) { int start = getLineStartOffset(lineIndex); return getText(start,getLineEndOffset(lineIndex) - start - 1); }
/** * Ensures that the caret is visible by scrolling the text area if * necessary. * @return True if scrolling was actually performed, false if the * caret was already visible */ public boolean scrollToCaret() { int line = getCaretLine(); int lineStart = getLineStartOffset(line); int offset = Math.max(0,Math.min(getLineLength(line) - 1, getCaretPosition() - lineStart)); return scrollTo(line,offset); }
public void actionPerformed(ActionEvent evt) { JEditTextArea textArea = getTextArea(evt); int lineCount = textArea.getLineCount(); int firstLine = textArea.getFirstLine(); int visibleLines = textArea.getVisibleLines(); int line = textArea.getCaretLine(); firstLine += visibleLines; if(firstLine + visibleLines >= lineCount - 1) firstLine = lineCount - visibleLines; textArea.setFirstLine(firstLine); int caret = textArea.getLineStartOffset( Math.min(textArea.getLineCount() - 1, line + visibleLines)); if(select) textArea.select(textArea.getMarkPosition(),caret); else textArea.setCaretPosition(caret); } }
public void actionPerformed(ActionEvent evt) { JEditTextArea textArea = getTextArea(evt); int caret = textArea.getCaretPosition(); int line = textArea.getCaretLine(); if(line == textArea.getLineCount() - 1) { textArea.getToolkit().beep(); return; } int magic = textArea.getMagicCaretPosition(); if(magic == -1) { magic = textArea.offsetToX(line, caret - textArea.getLineStartOffset(line)); } caret = textArea.getLineStartOffset(line + 1) + textArea.xToOffset(line + 1,magic); if(select) textArea.select(textArea.getMarkPosition(),caret); else textArea.setCaretPosition(caret); textArea.setMagicCaretPosition(magic); } }
ta.setBorder(BorderFactory.createLoweredBevelBorder()); ta.setFocusTraversalKeysEnabled(false); ta.addMouseWheelListener(mouseWheelListener); ta.setPreferredSize(new Dimension(200, 300)); ta.setTokenMarker(marker); return ta;
int caret = textArea.getCaretPosition(); int firstLine = textArea.getFirstLine(); int firstOfLine = textArea.getLineStartOffset( textArea.getCaretLine()); int firstVisibleLine = (firstLine == 0 ? 0 : firstLine + textArea.getElectricScroll()); int firstVisible = textArea.getLineStartOffset( firstVisibleLine); textArea.getToolkit().beep(); return; else if(!Boolean.TRUE.equals(textArea.getClientProperty( SMART_HOME_END_PROPERTY))) caret = firstOfLine; textArea.select(textArea.getMarkPosition(),caret); else textArea.setCaretPosition(caret);
@Override public void mouseWheelMoved(MouseWheelEvent e) { if (!(e.getSource() instanceof JEditTextArea)) return; JEditTextArea ta = (JEditTextArea)e.getSource(); int line = ta.getFirstLine(); if (e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) { int u = e.getUnitsToScroll(); line += u > 0 ? 1 : -1; if (line < 0) line = 0; else if (line >= ta.getLineCount()) line = ta.getLineCount() - 1; ta.setFirstLine(line); } }
public void actionPerformed(ActionEvent evt) int start = textArea.getSelectionStart(); if(start != textArea.getSelectionEnd()) textArea.setSelectedText(""); int line = textArea.getCaretLine(); int lineStart = textArea.getLineStartOffset(line); int caret = start - lineStart; String lineText = textArea.getLineText(textArea .getCaretLine()); if(lineStart + caret == textArea.getDocumentLength()) textArea.getToolkit().beep(); return; String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); caret = TextUtilities.findWordEnd(lineText,caret,noWordSep); textArea.getDocument().remove(start, (caret + lineStart) - start);
sourceArea.getDocument().addDocumentListener(new SimpleDocumentAdapter() { @Override public void updated(DocumentEvent e) { sourceArea.setText(ReadText.readText(getInputFile())); sourceArea.scrollTo(0, 0); } catch (Exception ex) { if (sourceArea.getText().trim().length() == 0) { doShowExample(false); UndoRedoUtils.registerNewUndoManager(sourceArea, sourceArea.getDocument());
if(!textArea.isEditable()) textArea.getToolkit().beep(); return; if(textArea.getSelectionStart() != textArea.getSelectionEnd()) textArea.setSelectedText(""); int caret = textArea.getCaretPosition(); if(caret == textArea.getDocumentLength()) textArea.getToolkit().beep(); return; textArea.getDocument().remove(caret,1);
setFirstLine(Math.max(0,line - electricScroll)); return true; if(newFirstLine + visibleLines >= getLineCount()) newFirstLine = getLineCount() - visibleLines; if(newFirstLine < 0) newFirstLine = 0; int x = _offsetToX(line,offset); int width = painter.getFontMetrics().charWidth('w'); return setOrigin(newFirstLine,newHorizontalOffset);
@Override public void actionPerformed(ActionEvent e) { if (sourceArea.getText().trim().length() > 0) { if (JOptionPane.showConfirmDialog(JNAeratorStudio.this, "This is going to overwrite the contents of your source text area.\nProceed ?", "Open Example", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION) { return; } doShowExample(true); } } };
examplesCombo.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { String t = sourceTextArea.getText(); if (t.trim().length() > 0) t = t + "\n"; sourceTextArea.setText(t + "__kernel " + signature + " {\n\tint x = get_global_id(0), y = get_global_id(1);\n\t// write here\n}"); }}); examplesCombo.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) {
.getDocument().getProperty( PlainDocument.tabSizeAttribute)).intValue(); int firstLine = textArea.getFirstLine(); int firstInvalid = firstLine + clipRect.y / height; TokenMarker tokenMarker = textArea.getDocument() .getTokenMarker(); int x = textArea.getHorizontalOffset();
void loadExample(String fileName) { try { String s = readTextResource("examples/" + fileName + ".cl"); sourceTextArea.setText(s); sourceTextArea.setCaretPosition(0); } catch (Exception ex) { ex.printStackTrace(); sourceTextArea.setText("Failed to load example '" + fileName + "' :\n" + traceToString(ex)); } } public static void main(String[] args) {
protected void documentChanged(DocumentEvent evt) { DocumentEvent.ElementChange ch = evt.getChange( document.getDefaultRootElement()); int count; if(ch == null) count = 0; else count = ch.getChildrenAdded().length - ch.getChildrenRemoved().length; int line = getLineOfOffset(evt.getOffset()); if(count == 0) { painter.invalidateLine(line); } // do magic stuff else if(line < firstLine) { setFirstLine(firstLine + count); } // end of magic stuff else { painter.invalidateLineRange(line,firstLine + visibleLines); updateScrollBars(); } propertyChangeSupport.firePropertyChange(DOCUMENT_PROPERTY,null,null); } public static final String DOCUMENT_PROPERTY="doc";