Gridarta Editor
DeleteWord.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-2015 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;
15 import javax.swing.text.BadLocationException;
19 
20 public class DeleteWord implements ActionListener {
21 
22  @Override
23  public void actionPerformed(final ActionEvent e) {
24  final JEditTextArea textArea = InputHandler.getTextArea(e);
25  final int start = textArea.getSelectionStart();
26  if (start != textArea.getSelectionEnd()) {
27  textArea.setSelectedText("");
28  }
29 
30  final int line = textArea.getCaretLine();
31  final int lineStart = textArea.getLineStartOffset(line);
32  int caret = start - lineStart;
33 
34  final CharSequence lineText = textArea.getLineText(textArea.getCaretLine());
35 
36  if (caret == lineText.length()) {
37  if (lineStart + caret == textArea.getDocumentLength()) {
38  textArea.getToolkit().beep();
39  return;
40  }
41  caret++;
42  } else {
43  final String noWordSep = (String) textArea.getDocument().getProperty("noWordSep");
44  caret = TextUtilities.findWordEnd(lineText, caret, noWordSep);
45  }
46 
47  try {
48  textArea.getDocument().remove(start, caret + lineStart - start);
49  } catch (final BadLocationException bl) {
50  bl.printStackTrace();
51  }
52  }
53 
54 }
void setSelectedText(@NotNull final String selectedText)
Replaces the selection with the specified text.
int getSelectionStart()
Returns the selection start offset.
int getSelectionEnd()
Returns the selection end offset.
int getDocumentLength()
Returns the length of the document.
An input handler converts the user's key strokes into concrete actions.
Base package of all Gridarta classes.
int getLineStartOffset(final int line)
Returns the start offset of the specified line.
This package contains the other part of the script editor.
CharSequence getLineText(final int lineIndex)
Returns the text on the specified line.
Document getDocument()
Returns the document this text area is editing.
static JEditTextArea getTextArea(final EventObject evt)
Returns the text area that fired the specified event.
Class with several utility functions used by the text area component.
static int findWordEnd(final CharSequence line, final int pos, final String noWordSep)
Locates the end of the word at the specified position.