⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputhandler.java

📁 报表设计软件,很好的
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
   * recorder. Instead, it will do its own recording.
   */
  public interface NonRecordable
  {
  }

  /**
   * For use by EditAction.Wrapper only.
   *
   * @since jEdit 2.2final
   */
  public interface Wrapper
  {
  }

  /**
   * Macro recorder.
   */
  public interface MacroRecorder
  {
    void actionPerformed (ActionListener listener,
                          String actionCommand);
  }

  private static final class CopyAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.copy();
    }
  }

  private static final class CutAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.cut();
    }
  }

  private static final class PasteAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.paste();
    }
  }

  private static final class BackspaceAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      if (!textArea.isEditable())
      {
        textArea.getToolkit().beep();
        return;
      }

      if (textArea.getSelectionStart()
              != textArea.getSelectionEnd())
      {
        textArea.setSelectedText("");
      }
      else
      {
        final int caret = textArea.getCaretPosition();
        if (caret == 0)
        {
          textArea.getToolkit().beep();
          return;
        }
        try
        {
          textArea.getDocument().remove(caret - 1, 1);
        }
        catch (BadLocationException bl)
        {
          bl.printStackTrace();
        }
      }
    }
  }

  private static final class BackspaceWordAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final int start = textArea.getSelectionStart();
      if (start != textArea.getSelectionEnd())
      {
        textArea.setSelectedText("");
      }

      final int line = textArea.getCaretLine();
      final int lineStart = textArea.getLineStartOffset(line);
      int caret = start - lineStart;

      final String lineText = textArea.getLineText(textArea
              .getCaretLine());

      if (caret == 0)
      {
        if (lineStart == 0)
        {
          textArea.getToolkit().beep();
          return;
        }
        caret--;
      }
      else
      {
        final String noWordSep = (String) textArea.getDocument().getProperty("noWordSep");
        caret = TextUtilities.findWordStart(lineText, caret, noWordSep);
      }

      try
      {
        textArea.getDocument().remove(caret + lineStart,
                start - (caret + lineStart));
      }
      catch (BadLocationException bl)
      {
        bl.printStackTrace();
      }
    }
  }

  private static final class DeleteAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      if (!textArea.isEditable())
      {
        textArea.getToolkit().beep();
        return;
      }

      if (textArea.getSelectionStart()
              != textArea.getSelectionEnd())
      {
        textArea.setSelectedText("");
      }
      else
      {
        final int caret = textArea.getCaretPosition();
        if (caret == textArea.getDocumentLength())
        {
          textArea.getToolkit().beep();
          return;
        }
        try
        {
          textArea.getDocument().remove(caret, 1);
        }
        catch (BadLocationException bl)
        {
          bl.printStackTrace();
        }
      }
    }
  }

  private static final class DeleteWordAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final int start = textArea.getSelectionStart();
      if (start != textArea.getSelectionEnd())
      {
        textArea.setSelectedText("");
      }

      final int line = textArea.getCaretLine();
      final int lineStart = textArea.getLineStartOffset(line);
      int caret = start - lineStart;

      final String lineText = textArea.getLineText(textArea
              .getCaretLine());

      if (caret == lineText.length())
      {
        if (lineStart + caret == textArea.getDocumentLength())
        {
          textArea.getToolkit().beep();
          return;
        }
        caret++;
      }
      else
      {
        final String noWordSep = (String) textArea.getDocument().getProperty("noWordSep");
        caret = TextUtilities.findWordEnd(lineText, caret, noWordSep);
      }

      try
      {
        textArea.getDocument().remove(start,
                (caret + lineStart) - start);
      }
      catch (BadLocationException bl)
      {
        bl.printStackTrace();
      }
    }
  }

  public static final class EndAction
          implements ActionListener
  {
    private final boolean select;

    private EndAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      int caret = textArea.getCaretPosition();

      final int lastOfLine = textArea.getLineEndOffset(textArea.getCaretLine()) - 1;
      int lastVisibleLine = textArea.getFirstLine()
              + textArea.getVisibleLines();
      if (lastVisibleLine >= textArea.getLineCount())
      {
        lastVisibleLine = Math.min(textArea.getLineCount() - 1,
                lastVisibleLine);
      }
      else
      {
        lastVisibleLine -= (textArea.getElectricScroll() + 1);
      }

      final int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1;
      final int lastDocument = textArea.getDocumentLength();

      if (caret == lastDocument)
      {
        textArea.getToolkit().beep();
        return;
      }
      else if (!Boolean.TRUE.equals(textArea.getClientProperty
              (SMART_HOME_END_PROPERTY)))
      {
        caret = lastOfLine;
      }
      else if (caret == lastVisible)
      {
        caret = lastDocument;
      }
      else if (caret == lastOfLine)
      {
        caret = lastVisible;
      }
      else
      {
        caret = lastOfLine;
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
    }
  }

  public static final class DocumentEndAction
          implements ActionListener
  {
    private final boolean select;

    private DocumentEndAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      if (select)
      {
        textArea.select(textArea.getMarkPosition(),
                textArea.getDocumentLength());
      }
      else
      {
        textArea.setCaretPosition(textArea.getDocumentLength());
      }
    }
  }

  public static final class HomeAction
          implements ActionListener
  {
    private final boolean select;

    private HomeAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      int caret = textArea.getCaretPosition();

      final int firstLine = textArea.getFirstLine();

      final int firstOfLine = textArea.getLineStartOffset(textArea.getCaretLine());
      final int firstVisibleLine = (firstLine == 0 ? 0 :
              firstLine + textArea.getElectricScroll());
      final int firstVisible = textArea.getLineStartOffset(firstVisibleLine);

      if (caret == 0)
      {
        textArea.getToolkit().beep();
        return;
      }
      else if (!Boolean.TRUE.equals(textArea.getClientProperty
              (SMART_HOME_END_PROPERTY)))
      {
        caret = firstOfLine;
      }
      else if (caret == firstVisible)
      {
        caret = 0;
      }
      else if (caret == firstOfLine)
      {
        caret = firstVisible;
      }
      else
      {
        caret = firstOfLine;
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
    }
  }

  public static final class DocumentHomeAction
          implements ActionListener
  {
    private final boolean select;

    private DocumentHomeAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      if (select)
      {
        textArea.select(textArea.getMarkPosition(), 0);
      }
      else
      {
        textArea.setCaretPosition(0);
      }
    }
  }

  private static final class InsertBreakAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      if (!textArea.isEditable())
      {
        textArea.getToolkit().beep();
        return;
      }

      textArea.setSelectedText("\n");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -