| 1 | /******************************************************************************* | |
| 2 | * Copyhacked (H) 2012-2025. | |
| 3 | * This program and the accompanying materials | |
| 4 | * are made available under no term at all, use it like | |
| 5 | * you want, but share and discuss it | |
| 6 | * every time possible with every body. | |
| 7 | * | |
| 8 | * Contributors: | |
| 9 | * ron190 at ymail dot com - initial implementation | |
| 10 | *******************************************************************************/ | |
| 11 | package com.jsql.view.swing.panel.util; | |
| 12 | ||
| 13 | import com.jsql.view.swing.text.JPopupTextArea; | |
| 14 | import com.jsql.view.swing.text.JTextAreaPlaceholder; | |
| 15 | import com.jsql.view.swing.util.UiUtil; | |
| 16 | ||
| 17 | import javax.swing.*; | |
| 18 | import java.awt.*; | |
| 19 | import java.awt.event.*; | |
| 20 | ||
| 21 | /** | |
| 22 | * A button displayed in address. | |
| 23 | */ | |
| 24 | public class ButtonExpandText extends JButton { | |
| 25 | ||
| 26 | /** | |
| 27 | * Create a button in address bar. | |
| 28 | */ | |
| 29 | public ButtonExpandText(JTextField sourceTextField) { | |
| 30 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::setPreferredSize → NO_COVERAGE |
this.setPreferredSize(new Dimension(16, 16)); |
| 31 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::setContentAreaFilled → NO_COVERAGE |
this.setContentAreaFilled(false); |
| 32 | ||
| 33 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::setIcon → NO_COVERAGE |
this.setIcon(UiUtil.EXPAND.getIcon()); |
| 34 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::setRolloverIcon → NO_COVERAGE |
this.setRolloverIcon(UiUtil.EXPAND_HOVER.getIcon()); |
| 35 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::setPressedIcon → NO_COVERAGE |
this.setPressedIcon(UiUtil.EXPAND_PRESSED.getIcon()); |
| 36 | ||
| 37 | JTextArea textAreaInDialog = new JPopupTextArea(new JTextAreaPlaceholder("Multiline text")).getProxy(); | |
| 38 |
1
1. <init> : removed call to javax/swing/text/Caret::setBlinkRate → NO_COVERAGE |
textAreaInDialog.getCaret().setBlinkRate(500); |
| 39 | ||
| 40 | final JDialog dialogWithTextarea = new JDialog(); | |
| 41 |
1
1. <init> : removed call to javax/swing/JDialog::setUndecorated → NO_COVERAGE |
dialogWithTextarea.setUndecorated(true); |
| 42 | dialogWithTextarea.getContentPane().add(new JScrollPane(textAreaInDialog)); | |
| 43 |
1
1. <init> : removed call to javax/swing/JDialog::pack → NO_COVERAGE |
dialogWithTextarea.pack(); |
| 44 |
1
1. <init> : removed call to javax/swing/JDialog::addWindowFocusListener → NO_COVERAGE |
dialogWithTextarea.addWindowFocusListener(new WindowAdapter() { |
| 45 | @Override | |
| 46 | public void windowLostFocus(WindowEvent e) { | |
| 47 |
1
1. windowLostFocus : removed call to javax/swing/JTextField::setText → NO_COVERAGE |
sourceTextField.setText(textAreaInDialog.getText().replace("\n", "\\n").replace("\r", "\\r")); |
| 48 |
1
1. windowLostFocus : removed call to javax/swing/JDialog::dispose → NO_COVERAGE |
dialogWithTextarea.dispose(); |
| 49 | } | |
| 50 | }); | |
| 51 |
1
1. <init> : removed call to javax/swing/JDialog::addWindowListener → NO_COVERAGE |
dialogWithTextarea.addWindowListener(new WindowAdapter() { |
| 52 | @Override | |
| 53 | public void windowClosing(WindowEvent e) { | |
| 54 |
1
1. windowClosing : removed call to javax/swing/JTextField::setText → NO_COVERAGE |
sourceTextField.setText(textAreaInDialog.getText().replace("\n", "\\n").replace("\r", "\\r")); |
| 55 |
1
1. windowClosing : removed call to java/awt/event/WindowAdapter::windowClosing → NO_COVERAGE |
super.windowClosing(e); |
| 56 | } | |
| 57 | }); | |
| 58 | ||
| 59 |
1
1. <init> : removed call to com/jsql/view/swing/panel/util/ButtonExpandText::addMouseListener → NO_COVERAGE |
this.addMouseListener(new MouseAdapter() { |
| 60 | @Override | |
| 61 | public void mouseClicked(MouseEvent e) { | |
| 62 |
1
1. mouseClicked : removed call to javax/swing/JTextArea::setText → NO_COVERAGE |
textAreaInDialog.setText(sourceTextField.getText().replace("\\n", "\n").replace("\\r", "\r")); |
| 63 |
2
1. mouseClicked : negated conditional → NO_COVERAGE 2. mouseClicked : removed call to javax/swing/JDialog::setVisible → NO_COVERAGE |
dialogWithTextarea.setVisible(!dialogWithTextarea.isVisible()); |
| 64 |
1
1. mouseClicked : removed call to javax/swing/JDialog::setSize → NO_COVERAGE |
dialogWithTextarea.setSize(sourceTextField.getWidth(), 300); |
| 65 |
1
1. mouseClicked : removed call to javax/swing/JDialog::setLocation → NO_COVERAGE |
dialogWithTextarea.setLocation(sourceTextField.getLocationOnScreen()); |
| 66 | } | |
| 67 | }); | |
| 68 | ||
| 69 | dialogWithTextarea.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) | |
| 70 |
1
1. <init> : removed call to javax/swing/InputMap::put → NO_COVERAGE |
.put( |
| 71 | KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), | |
| 72 | "Cancel" | |
| 73 | ); | |
| 74 | dialogWithTextarea.getRootPane().getActionMap() | |
| 75 |
1
1. <init> : removed call to javax/swing/ActionMap::put → NO_COVERAGE |
.put("Cancel", new AbstractAction() { |
| 76 | public void actionPerformed(ActionEvent e) { | |
| 77 |
1
1. actionPerformed : removed call to javax/swing/JDialog::dispose → NO_COVERAGE |
dialogWithTextarea.dispose(); |
| 78 | } | |
| 79 | }); | |
| 80 | } | |
| 81 | } | |
Mutations | ||
| 30 |
1.1 |
|
| 31 |
1.1 |
|
| 33 |
1.1 |
|
| 34 |
1.1 |
|
| 35 |
1.1 |
|
| 38 |
1.1 |
|
| 41 |
1.1 |
|
| 43 |
1.1 |
|
| 44 |
1.1 |
|
| 47 |
1.1 |
|
| 48 |
1.1 |
|
| 51 |
1.1 |
|
| 54 |
1.1 |
|
| 55 |
1.1 |
|
| 59 |
1.1 |
|
| 62 |
1.1 |
|
| 63 |
1.1 2.2 |
|
| 64 |
1.1 |
|
| 65 |
1.1 |
|
| 70 |
1.1 |
|
| 75 |
1.1 |
|
| 77 |
1.1 |