Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
LogicalFilesDspPanel.java
Go to the documentation of this file.
1/*
2 * Autopsy Forensic Browser
3 *
4 * Copyright 2011-2018 Basis Technology Corp.
5 * Contact: carrier <at> sleuthkit <dot> org
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19package org.sleuthkit.autopsy.casemodule;
20
21import java.beans.PropertyChangeListener;
22import java.util.ArrayList;
23import java.util.List;
24import javax.swing.BoxLayout;
25import javax.swing.JComboBox;
26import javax.swing.JPanel;
27import org.openide.util.NbBundle;
28import org.openide.util.NbBundle.Messages;
29import org.sleuthkit.autopsy.corecomponentinterfaces.DataSourceProcessor;
30
34@Messages({
35 "LogicalFilesDspPanel.subTypeComboBox.localFilesOption.text=Local files and folders",
36 "LogicalFilesDspPanel.subTypeComboBox.l01FileOption.text=Logical evidence file (L01)"
37})
38@SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives
39final class LogicalFilesDspPanel extends JPanel {
40
41 private static final long serialVersionUID = 1L;
42
43 private final LocalFilesPanel localFilesPanel = new LocalFilesPanel();
44 private final LogicalEvidenceFilePanel l01panel = LogicalEvidenceFilePanel.createInstance();
45 private static LogicalFilesDspPanel instance;
46
50 private LogicalFilesDspPanel() {
51 initComponents();
52 dspSubtypePanel.setLayout(new BoxLayout(dspSubtypePanel, BoxLayout.Y_AXIS));
53 dspSubtypePanel.add(l01panel);
54 dspSubtypePanel.add(localFilesPanel);
55 l01panel.setVisible(false);
56 }
57
58 @Override
59 public void addPropertyChangeListener(final PropertyChangeListener listener) {
60 super.addPropertyChangeListener(listener);
61 localFilesPanel.addPropertyChangeListener(listener);
62 l01panel.addPropertyChangeListener(listener);
63 }
64
65 @Override
66 public void removePropertyChangeListener(final PropertyChangeListener listener) {
67 super.removePropertyChangeListener(listener);
68 localFilesPanel.removePropertyChangeListener(listener);
69 l01panel.removePropertyChangeListener(listener);
70 }
71
72 static LogicalFilesDspPanel getDefault() {
73 synchronized (LogicalFilesDspPanel.class) {
74 if (instance == null) {
75 instance = new LogicalFilesDspPanel();
76 }
77 return instance;
78 }
79 }
80
81 String getContentType() {
82 return NbBundle.getMessage(this.getClass(), "LocalFilesPanel.contentType.text");
83 }
84
85 void select() {
86 dspSubtypeComboBox.setSelectedIndex(0);
87 localFilesPanel.setVisible(true);
88 l01panel.setVisible(false);
89 localFilesPanel.reset();
90 l01panel.reset();
91 dspSubtypePanel.repaint();
92 }
93
94 @Override
95 public String toString() {
96 return NbBundle.getMessage(this.getClass(), "LocalFilesDSProcessor.toString.text");
97 }
98
104 @SuppressWarnings("unchecked")
105 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
106 private void initComponents() {
107
108 dspSubtypePanel = new javax.swing.JPanel();
109 dspSubtypeComboBox = new javax.swing.JComboBox<>();
110
111 dspSubtypePanel.setPreferredSize(new java.awt.Dimension(467, 160));
112
113 javax.swing.GroupLayout dspSubtypePanelLayout = new javax.swing.GroupLayout(dspSubtypePanel);
114 dspSubtypePanel.setLayout(dspSubtypePanelLayout);
115 dspSubtypePanelLayout.setHorizontalGroup(
116 dspSubtypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
117 .addGap(0, 524, Short.MAX_VALUE)
118 );
119 dspSubtypePanelLayout.setVerticalGroup(
120 dspSubtypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
121 .addGap(0, 334, Short.MAX_VALUE)
122 );
123
124 dspSubtypeComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] {Bundle.LogicalFilesDspPanel_subTypeComboBox_localFilesOption_text(), Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text()}));
125 dspSubtypeComboBox.setMinimumSize(new java.awt.Dimension(379, 20));
126 dspSubtypeComboBox.setPreferredSize(new java.awt.Dimension(379, 20));
127 dspSubtypeComboBox.addActionListener(new java.awt.event.ActionListener() {
128 public void actionPerformed(java.awt.event.ActionEvent evt) {
129 dspSubtypeComboBoxActionPerformed(evt);
130 }
131 });
132
133 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
134 this.setLayout(layout);
135 layout.setHorizontalGroup(
136 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
137 .addGroup(layout.createSequentialGroup()
138 .addContainerGap()
139 .addComponent(dspSubtypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
140 .addComponent(dspSubtypePanel, javax.swing.GroupLayout.PREFERRED_SIZE, 524, javax.swing.GroupLayout.PREFERRED_SIZE)
141 );
142 layout.setVerticalGroup(
143 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
144 .addGroup(layout.createSequentialGroup()
145 .addComponent(dspSubtypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
146 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
147 .addComponent(dspSubtypePanel, javax.swing.GroupLayout.PREFERRED_SIZE, 334, javax.swing.GroupLayout.PREFERRED_SIZE)
148 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
149 );
150 }// </editor-fold>//GEN-END:initComponents
151
152 private void dspSubtypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dspSubtypeComboBoxActionPerformed
153 if (evt.getSource() instanceof JComboBox<?>) {
154 final String selectedSubType = dspSubtypeComboBox.getSelectedItem().toString();
155 if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_localFilesOption_text())) {
156 localFilesPanel.setVisible(true);
157 l01panel.setVisible(false);
158 } else if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text())) {
159 localFilesPanel.setVisible(false);
160 l01panel.setVisible(true);
161 }
162 firePropertyChange(DataSourceProcessor.DSP_PANEL_EVENT.UPDATE_UI.toString(), false, true);
163 }
164 }//GEN-LAST:event_dspSubtypeComboBoxActionPerformed
165
171 boolean validatePanel() {
172 // display warning if there is one (but don't disable "next" button)
173
174 final String selectedSubType = dspSubtypeComboBox.getSelectedItem().toString();
175 if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_localFilesOption_text())) {
176 return localFilesPanel.validatePanel();
177 } else if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text())) {
178 return l01panel.validatePanel();
179 } else {
180 return false;
181 }
182 }
183 // Variables declaration - do not modify//GEN-BEGIN:variables
184 private javax.swing.JComboBox<String> dspSubtypeComboBox;
185 private javax.swing.JPanel dspSubtypePanel;
186 // End of variables declaration//GEN-END:variables
187
193 boolean subTypeIsLogicalEvidencePanel() {
194 final String selectedSubType = dspSubtypeComboBox.getSelectedItem().toString();
195 return selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text());
196 }
197
204 List<String> getContentPaths() {
205 String selectedSubType = dspSubtypeComboBox.getSelectedItem().toString();
206 if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_localFilesOption_text())) {
207 return localFilesPanel.getContentPaths();
208 } else if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text())) {
209 return l01panel.getContentPaths();
210 } else {
211 return new ArrayList<>();
212 }
213
214 }
215
221 String getFileSetName() {
222 String selectedSubType = dspSubtypeComboBox.getSelectedItem().toString();
223 if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_localFilesOption_text())) {
224 return localFilesPanel.getFileSetName();
225 } else if (selectedSubType.equals(Bundle.LogicalFilesDspPanel_subTypeComboBox_l01FileOption_text())) {
226 return l01panel.getFileSetName();
227 } else {
228 return "";
229 }
230 }
231
237 Boolean getCreateTimestamp() {
238 return localFilesPanel.getCreateTimestamps();
239 }
240
246 Boolean getModifiedTimestamp() {
247 return localFilesPanel.getModifiedTimestamps();
248 }
249
255 Boolean getAccessTimestamp() {
256 return localFilesPanel.getAccessTimestamps();
257 }
258
259}

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.