19 package org.sleuthkit.autopsy.logicalimager.configuration;
21 import java.awt.BorderLayout;
22 import java.io.IOException;
23 import javax.swing.JButton;
24 import javax.swing.JPanel;
25 import org.apache.commons.lang3.tuple.ImmutablePair;
30 @SuppressWarnings(
"PMD.SingularField")
31 class NewRuleSetPanel extends javax.swing.JPanel {
33 private final JPanel nonFullPathsJPanel;
34 private final EditNonFullPathsRulePanel editNonFullPathsRulePanel;
35 private final JPanel fullPathsPanel;
36 private final EditFullPathsRulePanel editFullPathsRulePanel;
41 NewRuleSetPanel(JButton okButton, JButton cancelButton) {
44 nonFullPathsJPanel = createPanel();
45 editNonFullPathsRulePanel =
new EditNonFullPathsRulePanel(okButton, cancelButton,
"",
new LogicalImagerRule(),
false);
46 nonFullPathsJPanel.add(editNonFullPathsRulePanel, BorderLayout.NORTH);
48 fullPathsPanel = createPanel();
49 editFullPathsRulePanel =
new EditFullPathsRulePanel(okButton, cancelButton,
"",
new LogicalImagerRule(),
false);
50 fullPathsPanel.add(editFullPathsRulePanel, BorderLayout.NORTH);
52 sharedLayeredPane.add(nonFullPathsJPanel, Integer.valueOf(0));
53 sharedLayeredPane.add(fullPathsPanel, Integer.valueOf(1));
54 nonFullPathsJPanel.setVisible(
true);
55 fullPathsPanel.setVisible(
false);
58 private JPanel createPanel() {
59 JPanel panel =
new JPanel(
new BorderLayout());
60 panel.setSize(800, 640);
69 @SuppressWarnings(
"unchecked")
71 private
void initComponents() {
73 chooseLabel =
new javax.swing.JLabel();
74 chooseComboBox =
new javax.swing.JComboBox<>();
75 sharedLayeredPane =
new javax.swing.JLayeredPane();
77 org.openide.awt.Mnemonics.setLocalizedText(chooseLabel,
org.openide.util.NbBundle.getMessage(NewRuleSetPanel.class,
"NewRuleSetPanel.chooseLabel.text"));
79 chooseComboBox.setMaximumRowCount(2);
80 chooseComboBox.setModel(
new javax.swing.DefaultComboBoxModel<>(
new String[] {
"By Attribute",
"By Full Path" }));
81 chooseComboBox.addActionListener(
new java.awt.event.ActionListener() {
82 public void actionPerformed(java.awt.event.ActionEvent evt) {
83 chooseComboBoxActionPerformed(evt);
87 javax.swing.GroupLayout sharedLayeredPaneLayout =
new javax.swing.GroupLayout(sharedLayeredPane);
88 sharedLayeredPane.setLayout(sharedLayeredPaneLayout);
89 sharedLayeredPaneLayout.setHorizontalGroup(
90 sharedLayeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
91 .addGap(0, 0, Short.MAX_VALUE)
93 sharedLayeredPaneLayout.setVerticalGroup(
94 sharedLayeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
95 .addGap(0, 373, Short.MAX_VALUE)
98 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
99 this.setLayout(layout);
100 layout.setHorizontalGroup(
101 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
102 .addGroup(layout.createSequentialGroup()
104 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
105 .addComponent(chooseLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
106 .addComponent(chooseComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
107 .addContainerGap(716, Short.MAX_VALUE))
108 .addGroup(layout.createSequentialGroup()
110 .addComponent(sharedLayeredPane)
113 layout.setVerticalGroup(
114 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
115 .addGroup(layout.createSequentialGroup()
117 .addComponent(chooseLabel)
118 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
119 .addComponent(chooseComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
120 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
121 .addComponent(sharedLayeredPane)
126 private void chooseComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
127 int index = chooseComboBox.getSelectedIndex();
129 nonFullPathsJPanel.setVisible(
true);
130 fullPathsPanel.setVisible(
false);
132 nonFullPathsJPanel.setVisible(
false);
133 fullPathsPanel.setVisible(
true);
138 private javax.swing.JComboBox<String> chooseComboBox;
139 private javax.swing.JLabel chooseLabel;
140 private javax.swing.JLayeredPane sharedLayeredPane;
143 ImmutablePair<String, LogicalImagerRule> toRule() throws IOException, NumberFormatException {
144 ImmutablePair<String, LogicalImagerRule> ruleMap;
145 if (chooseComboBox.getSelectedIndex() == 0) {
146 ruleMap = editNonFullPathsRulePanel.toRule();
148 ruleMap = editFullPathsRulePanel.toRule();