Gridarta Editor
NextLine.java
Go to the documentation of this file.
1 /*
2  * InputHandler.java - Manages key bindings and executes actions
3  * Copyright (C) 1999 Slava Pestov
4  * Copyright (C) 2000-2023 The Gridarta Developers.
5  *
6  * You may use and modify this package for any purpose. Redistribution is
7  * permitted, in both source and binary form, provided that this notice
8  * remains intact in all source distributions of this package.
9  */
10 
11 package net.sf.gridarta.textedit.textarea.actions;
12 
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
17 
18 public class NextLine implements ActionListener {
19 
20  private final boolean select;
21 
22  public NextLine(final boolean select) {
23  this.select = select;
24  }
25 
26  @Override
27  public void actionPerformed(final ActionEvent e) {
28  final JEditTextArea textArea = InputHandler.getTextArea(e);
29  final int caret1 = textArea.getCaretPosition();
30  final int line = textArea.getCaretLine();
31 
32  if (line == textArea.getLineCount() - 1) {
33  textArea.getToolkit().beep();
34  return;
35  }
36 
37  int magic = textArea.getMagicCaretPosition();
38  if (magic == -1) {
39  magic = textArea.offsetToX(line, caret1 - textArea.getLineStartOffset(line));
40  }
41 
42  final int caret2 = textArea.getLineStartOffset(line + 1) + textArea.xToOffset(line + 1, magic);
43  if (select) {
44  textArea.select(textArea.getMarkPosition(), caret2);
45  } else {
46  textArea.setCaretPosition(caret2);
47  }
48  textArea.setMagicCaretPosition(magic);
49  }
50 
51 }
net.sf.gridarta.textedit.textarea.JEditTextArea.getCaretLine
int getCaretLine()
Definition: JEditTextArea.java:612
net.sf.gridarta.textedit.textarea.JEditTextArea.getLineStartOffset
int getLineStartOffset(final int line)
Definition: JEditTextArea.java:525
net.sf.gridarta.textedit.textarea.JEditTextArea.getMarkPosition
int getMarkPosition()
Definition: JEditTextArea.java:621
net.sf.gridarta.textedit.textarea
net.sf.gridarta.textedit.textarea.JEditTextArea.offsetToX
int offsetToX(final int line, final int offset)
Definition: JEditTextArea.java:472
net.sf.gridarta
net.sf.gridarta.textedit.textarea.JEditTextArea.getMagicCaretPosition
int getMagicCaretPosition()
Definition: JEditTextArea.java:738
net.sf.gridarta.textedit.textarea.InputHandler.getTextArea
static JEditTextArea getTextArea(final EventObject evt)
Definition: InputHandler.java:144
net.sf
net.sf.gridarta.textedit.textarea.JEditTextArea
Definition: JEditTextArea.java:91
net.sf.gridarta.textedit.textarea.actions.NextLine.actionPerformed
void actionPerformed(final ActionEvent e)
Definition: NextLine.java:27
net.sf.gridarta.textedit
net.sf.gridarta.textedit.textarea.JEditTextArea.xToOffset
int xToOffset(final int line, final int x)
Definition: JEditTextArea.java:492
net
net.sf.gridarta.textedit.textarea.JEditTextArea.setMagicCaretPosition
void setMagicCaretPosition(final int magicCaret)
Definition: JEditTextArea.java:747
net.sf.gridarta.textedit.textarea.JEditTextArea.getLineCount
int getLineCount()
Definition: JEditTextArea.java:515
net.sf.gridarta.textedit.textarea.actions.NextLine.NextLine
NextLine(final boolean select)
Definition: NextLine.java:22
net.sf.gridarta.textedit.textarea.JEditTextArea.select
void select(final int start, final int end)
Definition: JEditTextArea.java:649
net.sf.gridarta.textedit.textarea.JEditTextArea.setCaretPosition
void setCaretPosition(final int caret)
Definition: JEditTextArea.java:631
net.sf.gridarta.textedit.textarea.InputHandler
Definition: InputHandler.java:36
net.sf.gridarta.textedit.textarea.JEditTextArea.getCaretPosition
int getCaretPosition()
Definition: JEditTextArea.java:605
net.sf.gridarta.textedit.textarea.actions.NextLine
Definition: NextLine.java:18
net.sf.gridarta.textedit.textarea.actions.NextLine.select
final boolean select
Definition: NextLine.java:20