19 package org.sleuthkit.autopsy.keywordsearch;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.ActionListener;
23 import java.beans.PropertyChangeListener;
24 import java.util.ArrayList;
25 import java.util.List;
26 import javax.swing.JOptionPane;
27 import org.openide.util.NbBundle;
30 final class GlobalListSettingsPanel
extends javax.swing.JPanel implements OptionsPanel {
32 private static final long serialVersionUID = 1L;
34 private final GlobalListsManagementPanel listsManagementPanel =
new GlobalListsManagementPanel(
this);
35 private final GlobalEditListPanel editListPanel =
new GlobalEditListPanel();
37 GlobalListSettingsPanel() {
39 customizeComponents();
40 setName(
org.openide.util.NbBundle.getMessage(DropdownToolbar.class,
"ListBundleConfig"));
43 private void customizeComponents() {
44 listsManagementPanel.addListSelectionListener(editListPanel);
45 listsManagementPanel.addDeleteButtonActionPerformed(
new ActionListener() {
47 public void actionPerformed(ActionEvent e) {
48 if (KeywordSearchUtil.displayConfirmDialog(NbBundle.getMessage(
this.getClass(),
"KeywordSearchConfigurationPanel1.customizeComponents.title"), NbBundle.getMessage(
this.getClass(),
"KeywordSearchConfigurationPanel1.customizeComponents.body"), KeywordSearchUtil.DIALOG_MESSAGE_TYPE.WARN)) {
50 listsManagementPanel.resync();
55 listsManagementPanel.addRenameButtonActionPerformed(
new ActionListener() {
57 public void actionPerformed(ActionEvent e) {
60 listsManagementPanel.resync();
65 listsManagementPanel.addCopyButtonActionPerformed(
new ActionListener() {
67 public void actionPerformed(ActionEvent e) {
69 listsManagementPanel.resync();
73 mainSplitPane.setLeftComponent(listsManagementPanel);
74 mainSplitPane.setRightComponent(editListPanel);
75 mainSplitPane.revalidate();
76 mainSplitPane.repaint();
84 private void deleteAction() {
85 listsManagementPanel.deleteSelected();
86 editListPanel.setCurrentKeywordList(null);
87 editListPanel.setButtonStates();
88 listsManagementPanel.setButtonStates();
97 private boolean copyAction() {
98 final String FEATURE_NAME = NbBundle.getMessage(this.getClass(),
99 "KeywordSearchGlobalListSettingsPanel.component.featureName.text");
100 KeywordList currentKeywordList = editListPanel.getCurrentKeywordList();
102 List<Keyword> keywords =
new ArrayList<>();
103 keywords.addAll(currentKeywordList.getKeywords());
105 String listName = (String) JOptionPane.showInputDialog(
107 NbBundle.getMessage(
this.getClass(),
"KeywordSearch.newKwListTitle"),
109 JOptionPane.PLAIN_MESSAGE,
112 currentKeywordList.getName());
114 if (listName == null) {
118 listName = listName.trim();
120 if (listName.equals(
"") || listName.equals(currentKeywordList.getName())) {
123 XmlKeywordSearchList writer = XmlKeywordSearchList.getCurrent();
124 if (writer.listExists(listName) && writer.getList(listName).isEditable()) {
125 KeywordSearchUtil.displayDialog(FEATURE_NAME, NbBundle.getMessage(
this.getClass(),
"KeywordSearchConfigurationPanel1.customizeComponents.noOwDefaultMsg"), KeywordSearchUtil.DIALOG_MESSAGE_TYPE.WARN);
128 if (writer.listExists(listName)) {
129 if (!KeywordSearchUtil.displayConfirmDialog(FEATURE_NAME, NbBundle.getMessage(
this.getClass(),
"KeywordSearchConfigurationPanel1.customizeComponents.kwListExistMsg", listName),
130 KeywordSearchUtil.DIALOG_MESSAGE_TYPE.WARN)) {
134 writer.addList(listName, keywords);
135 KeywordSearchUtil.displayDialog(FEATURE_NAME, NbBundle.getMessage(
this.getClass(),
"KeywordSearchConfigurationPanel1.customizeComponents.kwListSavedMsg", listName), KeywordSearchUtil.DIALOG_MESSAGE_TYPE.INFO);
140 public void addPropertyChangeListener(PropertyChangeListener l) {
141 super.addPropertyChangeListener(l);
161 if (null != listsManagementPanel) {
162 listsManagementPanel.addPropertyChangeListener(l);
164 if (null != editListPanel) {
165 editListPanel.addPropertyChangeListener(l);
170 public void removePropertyChangeListener(PropertyChangeListener l) {
171 super.removePropertyChangeListener(l);
172 listsManagementPanel.removePropertyChangeListener(l);
173 editListPanel.removePropertyChangeListener(l);
177 public void store() {
178 XmlKeywordSearchList.getCurrent().save(
false);
180 DropdownListSearchPanel.getDefault().resync();
185 listsManagementPanel.load();
191 void setFocusOnKeywordTextBox() {
192 editListPanel.setFocusOnKeywordTextBox();
200 @SuppressWarnings(
"unchecked")
202 private
void initComponents() {
204 jScrollPane1 =
new javax.swing.JScrollPane();
205 mainSplitPane =
new javax.swing.JSplitPane();
206 leftPanel =
new javax.swing.JPanel();
207 rightPanel =
new javax.swing.JPanel();
209 mainSplitPane.setBorder(null);
210 mainSplitPane.setDividerSize(1);
212 leftPanel.setPreferredSize(
new java.awt.Dimension(309, 327));
213 leftPanel.setVerifyInputWhenFocusTarget(
false);
215 javax.swing.GroupLayout leftPanelLayout =
new javax.swing.GroupLayout(leftPanel);
216 leftPanel.setLayout(leftPanelLayout);
217 leftPanelLayout.setHorizontalGroup(
218 leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
219 .addGap(0, 309, Short.MAX_VALUE)
221 leftPanelLayout.setVerticalGroup(
222 leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
223 .addGap(0, 327, Short.MAX_VALUE)
226 mainSplitPane.setLeftComponent(leftPanel);
228 rightPanel.setPreferredSize(
new java.awt.Dimension(360, 327));
230 javax.swing.GroupLayout rightPanelLayout =
new javax.swing.GroupLayout(rightPanel);
231 rightPanel.setLayout(rightPanelLayout);
232 rightPanelLayout.setHorizontalGroup(
233 rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
234 .addGap(0, 362, Short.MAX_VALUE)
236 rightPanelLayout.setVerticalGroup(
237 rightPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
238 .addGap(0, 327, Short.MAX_VALUE)
241 mainSplitPane.setRightComponent(rightPanel);
243 jScrollPane1.setViewportView(mainSplitPane);
245 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
246 this.setLayout(layout);
247 layout.setHorizontalGroup(
248 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
249 .addGroup(layout.createSequentialGroup()
250 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 675, Short.MAX_VALUE)
253 layout.setVerticalGroup(
254 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
255 .addGroup(layout.createSequentialGroup()
256 .addComponent(jScrollPane1)
261 private javax.swing.JScrollPane jScrollPane1;
262 private javax.swing.JPanel leftPanel;
263 private javax.swing.JSplitPane mainSplitPane;
264 private javax.swing.JPanel rightPanel;