19 package org.sleuthkit.autopsy.filesearch;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.ActionListener;
23 import java.text.NumberFormat;
24 import javax.swing.JCheckBox;
25 import javax.swing.JComboBox;
26 import javax.swing.JFormattedTextField;
27 import javax.swing.JMenuItem;
33 class SizeSearchPanel
extends javax.swing.JPanel {
40 customizeComponents();
41 setComponentsEnabled();
44 private void customizeComponents() {
46 sizeTextField.setComponentPopupMenu(rightClickMenu);
47 ActionListener actList =
new ActionListener() {
49 public void actionPerformed(ActionEvent e) {
50 JMenuItem jmi = (JMenuItem) e.getSource();
51 if (jmi.equals(cutMenuItem)) {
53 }
else if (jmi.equals(copyMenuItem)) {
55 }
else if (jmi.equals(pasteMenuItem)) {
56 sizeTextField.paste();
57 }
else if (jmi.equals(selectAllMenuItem)) {
58 sizeTextField.selectAll();
62 cutMenuItem.addActionListener(actList);
63 copyMenuItem.addActionListener(actList);
64 pasteMenuItem.addActionListener(actList);
65 selectAllMenuItem.addActionListener(actList);
69 JCheckBox getSizeCheckBox() {
73 JComboBox<String> getSizeCompareComboBox() {
74 return sizeCompareComboBox;
77 JFormattedTextField getSizeTextField() {
81 JComboBox<String> getSizeUnitComboBox() {
82 return sizeUnitComboBox;
85 void setComponentsEnabled() {
86 boolean enabled = this.sizeCheckBox.isSelected();
87 this.sizeCompareComboBox.setEnabled(enabled);
88 this.sizeUnitComboBox.setEnabled(enabled);
89 this.sizeTextField.setEnabled(enabled);
97 @SuppressWarnings(
"unchecked")
99 private
void initComponents() {
101 rightClickMenu =
new javax.swing.JPopupMenu();
102 cutMenuItem =
new javax.swing.JMenuItem();
103 copyMenuItem =
new javax.swing.JMenuItem();
104 pasteMenuItem =
new javax.swing.JMenuItem();
105 selectAllMenuItem =
new javax.swing.JMenuItem();
106 sizeUnitComboBox =
new javax.swing.JComboBox<>();
107 sizeTextField =
new JFormattedTextField(NumberFormat.getIntegerInstance());
108 sizeCompareComboBox =
new javax.swing.JComboBox<>();
109 sizeCheckBox =
new javax.swing.JCheckBox();
111 cutMenuItem.setText(
org.openide.util.NbBundle.getMessage(SizeSearchPanel.class,
"SizeSearchPanel.cutMenuItem.text"));
112 rightClickMenu.add(cutMenuItem);
114 copyMenuItem.setText(
org.openide.util.NbBundle.getMessage(SizeSearchPanel.class,
"SizeSearchPanel.copyMenuItem.text"));
115 rightClickMenu.add(copyMenuItem);
117 pasteMenuItem.setText(
org.openide.util.NbBundle.getMessage(SizeSearchPanel.class,
"SizeSearchPanel.pasteMenuItem.text"));
118 rightClickMenu.add(pasteMenuItem);
120 selectAllMenuItem.setText(
org.openide.util.NbBundle.getMessage(SizeSearchPanel.class,
"SizeSearchPanel.selectAllMenuItem.text"));
121 rightClickMenu.add(selectAllMenuItem);
123 sizeUnitComboBox.setModel(
new javax.swing.DefaultComboBoxModel<String>(
new String[] {
"Byte(s)",
"KB",
"MB",
"GB",
"TB" }));
125 sizeTextField.setValue(0);
126 sizeTextField.addMouseListener(
new java.awt.event.MouseAdapter() {
127 public void mouseClicked(java.awt.event.MouseEvent evt) {
128 sizeTextFieldMouseClicked(evt);
132 sizeCompareComboBox.setModel(
new javax.swing.DefaultComboBoxModel<String>(
new String[] {
"equal to",
"greater than",
"less than" }));
134 sizeCheckBox.setText(
org.openide.util.NbBundle.getMessage(SizeSearchPanel.class,
"SizeSearchPanel.sizeCheckBox.text"));
135 sizeCheckBox.addActionListener(
new java.awt.event.ActionListener() {
136 public void actionPerformed(java.awt.event.ActionEvent evt) {
137 sizeCheckBoxActionPerformed(evt);
141 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
142 this.setLayout(layout);
143 layout.setHorizontalGroup(
144 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
145 .addGroup(layout.createSequentialGroup()
146 .addComponent(sizeCheckBox)
147 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
148 .addComponent(sizeCompareComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
149 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
150 .addComponent(sizeTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
151 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
152 .addComponent(sizeUnitComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE))
154 layout.setVerticalGroup(
155 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
156 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
157 .addComponent(sizeCompareComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
158 .addComponent(sizeTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
159 .addComponent(sizeUnitComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
160 .addComponent(sizeCheckBox))
164 private void sizeTextFieldMouseClicked(java.awt.event.MouseEvent evt) {
165 this.sizeCheckBox.setSelected(
true);
166 this.sizeTextField.selectAll();
169 private void sizeCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {
170 setComponentsEnabled();
171 firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
175 private javax.swing.JMenuItem copyMenuItem;
176 private javax.swing.JMenuItem cutMenuItem;
177 private javax.swing.JMenuItem pasteMenuItem;
178 private javax.swing.JPopupMenu rightClickMenu;
179 private javax.swing.JMenuItem selectAllMenuItem;
180 private javax.swing.JCheckBox sizeCheckBox;
181 private javax.swing.JComboBox<String> sizeCompareComboBox;
182 private javax.swing.JFormattedTextField sizeTextField;
183 private javax.swing.JComboBox<String> sizeUnitComboBox;
186 void addActionListener(ActionListener l) {
187 sizeTextField.addActionListener(l);