19 package org.sleuthkit.autopsy.report.infrastructure;
24 import java.awt.GridLayout;
26 import org.openide.util.NbBundle;
33 @SuppressWarnings(
"PMD.SingularField")
34 class ReportWizardPortableCaseOptionsVisualPanel extends javax.swing.JPanel {
36 private final ReportWizardPortableCaseOptionsPanel wizPanel;
37 private PortableCaseReportModuleSettings settings = null;
38 private Map<String, ReportModuleConfig> moduleConfigs;
39 private final boolean useCaseSpecificData;
44 ReportWizardPortableCaseOptionsVisualPanel(ReportWizardPortableCaseOptionsPanel wizPanel, Map<String, ReportModuleConfig> moduleConfigs,
boolean useCaseSpecificData) {
45 this.wizPanel = wizPanel;
46 this.useCaseSpecificData = useCaseSpecificData;
47 this.moduleConfigs = moduleConfigs;
49 customizeComponents();
52 private void customizeComponents() {
54 if (!PlatformUtil.isWindowsOS()) {
55 errorLabel.setVisible(
true);
56 compressCheckbox.setEnabled(
false);
58 errorLabel.setVisible(
false);
61 for (ChunkSize chunkSize : ChunkSize.values()) {
62 chunkSizeComboBox.addItem(chunkSize);
66 if (moduleConfigs != null) {
68 ReportModuleConfig config = moduleConfigs.get(PortableCaseReportModule.class.getCanonicalName());
71 ReportModuleSettings reportSettings = config.getModuleSettings();
73 if (reportSettings instanceof PortableCaseReportModuleSettings) {
74 settings = (PortableCaseReportModuleSettings) reportSettings;
79 if (settings == null) {
81 settings =
new PortableCaseReportModuleSettings();
85 compressCheckbox.setSelected(settings.shouldCompress());
86 chunkSizeComboBox.setEnabled(settings.shouldCompress());
87 chunkSizeComboBox.setSelectedItem(settings.getChunkSize());
90 listPanel.setLayout(
new GridLayout(1,2));
91 listPanel.add(
new PortableCaseTagsListPanel(wizPanel, settings, useCaseSpecificData));
92 listPanel.add(
new PortableCaseInterestingItemsListPanel(wizPanel, settings, useCaseSpecificData));
96 "ReportWizardPortableCaseOptionsVisualPanel.getName.title=Choose Portable Case settings",
99 public String getName() {
100 return Bundle.ReportWizardPortableCaseOptionsVisualPanel_getName_title();
108 private ChunkSize getChunkSize() {
109 return (ChunkSize) chunkSizeComboBox.getSelectedItem();
115 private void updateCompression() {
116 if (settings != null) {
117 settings.updateCompression(compressCheckbox.isSelected(), getChunkSize());
118 wizPanel.setFinish(settings.isValid());
127 PortableCaseReportModuleSettings getPortableCaseReportSettings() {
136 @SuppressWarnings(
"unchecked")
138 private
void initComponents() {
140 jPanel1 =
new javax.swing.JPanel();
141 chunkSizeComboBox =
new javax.swing.JComboBox<>();
142 compressCheckbox =
new javax.swing.JCheckBox();
143 errorLabel =
new javax.swing.JLabel();
144 listPanel =
new javax.swing.JPanel();
146 chunkSizeComboBox.addActionListener(
new java.awt.event.ActionListener() {
147 public void actionPerformed(java.awt.event.ActionEvent evt) {
148 chunkSizeComboBoxActionPerformed(evt);
152 org.openide.awt.Mnemonics.setLocalizedText(compressCheckbox,
org.openide.util.NbBundle.getMessage(ReportWizardPortableCaseOptionsVisualPanel.class,
"ReportWizardPortableCaseOptionsVisualPanel.compressCheckbox.text"));
153 compressCheckbox.setToolTipText(
org.openide.util.NbBundle.getMessage(ReportWizardPortableCaseOptionsVisualPanel.class,
"ReportWizardPortableCaseOptionsVisualPanel.compressCheckbox.toolTipText"));
154 compressCheckbox.addActionListener(
new java.awt.event.ActionListener() {
155 public void actionPerformed(java.awt.event.ActionEvent evt) {
156 compressCheckboxActionPerformed(evt);
160 errorLabel.setForeground(
new java.awt.Color(255, 0, 0));
161 org.openide.awt.Mnemonics.setLocalizedText(errorLabel,
org.openide.util.NbBundle.getMessage(ReportWizardPortableCaseOptionsVisualPanel.class,
"ReportWizardPortableCaseOptionsVisualPanel.errorLabel.text"));
163 javax.swing.GroupLayout listPanelLayout =
new javax.swing.GroupLayout(listPanel);
164 listPanel.setLayout(listPanelLayout);
165 listPanelLayout.setHorizontalGroup(
166 listPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
167 .addGap(0, 0, Short.MAX_VALUE)
169 listPanelLayout.setVerticalGroup(
170 listPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
171 .addGap(0, 217, Short.MAX_VALUE)
174 javax.swing.GroupLayout jPanel1Layout =
new javax.swing.GroupLayout(jPanel1);
175 jPanel1.setLayout(jPanel1Layout);
176 jPanel1Layout.setHorizontalGroup(
177 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
178 .addGroup(jPanel1Layout.createSequentialGroup()
180 .addComponent(compressCheckbox)
181 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
182 .addComponent(chunkSizeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
183 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
184 .addComponent(errorLabel)
185 .addContainerGap(41, Short.MAX_VALUE))
186 .addComponent(listPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
188 jPanel1Layout.setVerticalGroup(
189 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
190 .addGroup(jPanel1Layout.createSequentialGroup()
191 .addComponent(listPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
192 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
193 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
194 .addComponent(compressCheckbox)
195 .addComponent(chunkSizeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
196 .addComponent(errorLabel))
200 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
201 this.setLayout(layout);
202 layout.setHorizontalGroup(
203 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
204 .addGap(0, 463, Short.MAX_VALUE)
205 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
206 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
208 layout.setVerticalGroup(
209 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
210 .addGap(0, 259, Short.MAX_VALUE)
211 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
212 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
216 private void chunkSizeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
220 private void compressCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
221 chunkSizeComboBox.setEnabled(compressCheckbox.isSelected());
227 private javax.swing.JComboBox<ChunkSize> chunkSizeComboBox;
228 private javax.swing.JCheckBox compressCheckbox;
229 private javax.swing.JLabel errorLabel;
230 private javax.swing.JPanel jPanel1;
231 private javax.swing.JPanel listPanel;