1 | package com.jsql.view.swing.text.action; | |
2 | ||
3 | import javax.swing.*; | |
4 | import javax.swing.text.DefaultEditorKit; | |
5 | import javax.swing.text.JTextComponent; | |
6 | import javax.swing.text.TextAction; | |
7 | import java.awt.event.ActionEvent; | |
8 | import java.util.Objects; | |
9 | ||
10 | /** | |
11 | * Action to cancel Beep sound when deleting last character. | |
12 | * Used on TextField. | |
13 | */ | |
14 | public class SilentDeleteTextAction extends TextAction { | |
15 | | |
16 | private final transient Action deleteAction; | |
17 | | |
18 | public SilentDeleteTextAction(String name, Action deleteAction) { | |
19 | | |
20 | super(name); | |
21 | this.deleteAction = deleteAction; | |
22 | } | |
23 | | |
24 | @Override | |
25 | public void actionPerformed(ActionEvent e) { | |
26 | | |
27 | JTextComponent target = this.getTextComponent(e); | |
28 | | |
29 |
2
1. actionPerformed : negated conditional → NO_COVERAGE 2. actionPerformed : negated conditional → NO_COVERAGE |
if (Objects.nonNull(target) && target.isEditable()) { |
30 | | |
31 | var caret = target.getCaret(); | |
32 | int dot = caret.getDot(); | |
33 | int mark = caret.getMark(); | |
34 | | |
35 |
1
1. actionPerformed : negated conditional → NO_COVERAGE |
if (DefaultEditorKit.deletePrevCharAction.equals(this.getValue(Action.NAME))) { |
36 | // @see javax/swing/text/DefaultEditorKit.java DeletePrevCharAction | |
37 |
2
1. actionPerformed : negated conditional → NO_COVERAGE 2. actionPerformed : negated conditional → NO_COVERAGE |
if (dot == 0 && mark == 0) { |
38 | return; | |
39 | } | |
40 | } else { | |
41 | | |
42 | // @see javax/swing/text/DefaultEditorKit.java DeleteNextCharAction | |
43 | var doc = target.getDocument(); | |
44 | | |
45 |
2
1. actionPerformed : negated conditional → NO_COVERAGE 2. actionPerformed : negated conditional → NO_COVERAGE |
if (dot == mark && doc.getLength() == dot) { |
46 | return; | |
47 | } | |
48 | } | |
49 | } | |
50 | | |
51 |
1
1. actionPerformed : removed call to javax/swing/Action::actionPerformed → NO_COVERAGE |
this.deleteAction.actionPerformed(e); |
52 | } | |
53 | } | |
Mutations | ||
29 |
1.1 2.2 |
|
35 |
1.1 |
|
37 |
1.1 2.2 |
|
45 |
1.1 2.2 |
|
51 |
1.1 |