2483 add new line before pasting into keywords list jTextArea

This commit is contained in:
William Schaefer 2017-04-13 13:54:57 -04:00
parent 1a5f6182d9
commit 5d4681335e
2 changed files with 45 additions and 30 deletions

View File

@ -134,6 +134,9 @@
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="keywordTextAreaMouseClicked"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JTextArea() {&#xa; //Override the paste action for this jtext area to always insert a new line before the pasted text&#xa; @Override&#xa; public void paste() {&#xa; keywordTextArea.setText(keywordTextArea.getText() + &quot;\n&quot;);&#xa; super.paste();&#xa; }&#xa;}"/>
</AuxValues>
</Component>
</SubComponents>
</Container>

View File

@ -1,7 +1,7 @@
/*
* Autopsy Forensic Browser
*
* Copyright 2011-2016 Basis Technology Corp.
* Copyright 2011-2017 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> org
*
* Licensed under the Apache License, Version 2.0 (the "License");
@ -28,6 +28,7 @@ import java.util.Arrays;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
@ -42,17 +43,17 @@ class AddKeywordsDialog extends javax.swing.JDialog {
List<String> newKeywords = new ArrayList<>();
/**
* Creates new form AddKeywordsDialog.
* Note that this does not display the dialog - call display() after creation.
* Creates new form AddKeywordsDialog. Note that this does not display the
* dialog - call display() after creation.
*
* @param initialKeywords Keywords to populate the list with
* @param type Starting keyword type
* @param type Starting keyword type
*/
AddKeywordsDialog(){
AddKeywordsDialog() {
super((JFrame) WindowManager.getDefault().getMainWindow(),
NbBundle.getMessage(AddKeywordsDialog.class, "AddKeywordsDialog.addKeywordsTitle.text"),
true);
initComponents();
// Set the add button to only be active when there is text in the text area
addButton.setEnabled(false);
keywordTextArea.getDocument().addDocumentListener(new DocumentListener() {
@ -60,14 +61,17 @@ class AddKeywordsDialog extends javax.swing.JDialog {
public void changedUpdate(DocumentEvent e) {
fire();
}
@Override
public void removeUpdate(DocumentEvent e) {
fire();
}
@Override
public void insertUpdate(DocumentEvent e) {
fire();
}
private void fire() {
enableButtons();
}
@ -85,49 +89,50 @@ class AddKeywordsDialog extends javax.swing.JDialog {
}
/**
* Set the initial contents of the text box.
* Intended to be used to redisplay any keywords that contained errors
* Set the initial contents of the text box. Intended to be used to
* redisplay any keywords that contained errors
*
* @param initialKeywords
*/
void setInitialKeywordList(String initialKeywords, boolean isLiteral, boolean isWholeWord){
void setInitialKeywordList(String initialKeywords, boolean isLiteral, boolean isWholeWord) {
keywordTextArea.setText(initialKeywords);
if (!isLiteral){
if (!isLiteral) {
regexRadioButton.setSelected(true);
}
else if (isWholeWord){
} else if (isWholeWord) {
exactRadioButton.setSelected(true);
}
else {
} else {
substringRadioButton.setSelected(true);
}
}
private void enableButtons(){
addButton.setEnabled(! keywordTextArea.getText().isEmpty());
private void enableButtons() {
addButton.setEnabled(!keywordTextArea.getText().isEmpty());
}
/**
* Get the list of keywords from the text area
*
* @return list of keywords
*/
List<String> getKeywords(){
List<String> getKeywords() {
return newKeywords;
}
/**
* Get whether the regex option is selected
*
* @return true if the regex radio button is selected
*/
boolean isKeywordRegex(){
boolean isKeywordRegex() {
return regexRadioButton.isSelected();
}
/**
* Get whether the exact match option is selected
*
* @return true if the exact match radio button is selected
*/
boolean isKeywordExact(){
boolean isKeywordExact() {
return exactRadioButton.isSelected();
}
@ -145,7 +150,14 @@ class AddKeywordsDialog extends javax.swing.JDialog {
substringRadioButton = new javax.swing.JRadioButton();
regexRadioButton = new javax.swing.JRadioButton();
jScrollPane1 = new javax.swing.JScrollPane();
keywordTextArea = new javax.swing.JTextArea();
keywordTextArea = new JTextArea() {
//Override the paste action for this jtext area to always insert a new line before the pasted text
@Override
public void paste() {
keywordTextArea.setText(keywordTextArea.getText() + "\n");
super.paste();
}
};
enterKeywordsLabel = new javax.swing.JLabel();
keywordTypeLabel = new javax.swing.JLabel();
addButton = new javax.swing.JButton();