19 package org.sleuthkit.autopsy.datasourcesummary.ui;
21 import java.util.Arrays;
22 import java.util.Collections;
23 import java.util.List;
24 import org.apache.commons.lang3.tuple.Pair;
25 import org.openide.util.NbBundle.Messages;
46 "PastCasesPanel_caseColumn_title=Case",
47 "PastCasesPanel_countColumn_title=Count",
48 "PastCasesPanel_onNoCrIngest_message=No results will be shown because the Central Repository module was not run.",
49 "PastCasesPanel_notableFileTable_tabName=Cases with Common Notable",
50 "PastCasesPanel_sameIdsTable_tabName=Past Cases with the Same Devices",})
53 private static final long serialVersionUID = 1L;
57 Bundle.PastCasesPanel_caseColumn_title(),
64 Bundle.PastCasesPanel_countColumn_title(),
71 = Arrays.asList(CASE_COL, COUNT_COL);
77 private final List<JTablePanel<?>> tables = Arrays.asList(
98 this.pastCasesFetcher = (dataSource) -> pastCaseData.
getPastCasesData(dataSource);
101 dataFetchComponents = Arrays.asList(
104 (result) -> handleResult(result))
123 fetchInformation(dataFetchComponents, dataSource);
128 onNewDataSource(dataFetchComponents, tables, dataSource);
133 PastCasesResult result = getFetchResult(pastCasesFetcher,
"Past cases sheets", dataSource);
134 if (result == null) {
135 return Collections.emptyList();
138 return Arrays.asList(
139 getTableExport(DEFAULT_TEMPLATE, Bundle.PastCasesPanel_notableFileTable_tabName(), result.
getTaggedNotable()),
140 getTableExport(DEFAULT_TEMPLATE, Bundle.PastCasesPanel_sameIdsTable_tabName(), result.
getSameIdsResults())
155 @SuppressWarnings(
"unchecked")
157 private
void initComponents() {
159 javax.swing.JScrollPane mainScrollPane =
new javax.swing.JScrollPane();
160 javax.swing.JPanel mainContentPanel =
new javax.swing.JPanel();
161 javax.swing.JPanel ingestRunningPanel = ingestRunningLabel;
162 javax.swing.JLabel notableFileLabel =
new javax.swing.JLabel();
163 javax.swing.Box.Filler filler1 =
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 2),
new java.awt.Dimension(0, 2),
new java.awt.Dimension(0, 2));
164 javax.swing.JPanel notableFilePanel = notableFileTable;
165 javax.swing.Box.Filler filler2 =
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 20),
new java.awt.Dimension(0, 20),
new java.awt.Dimension(0, 20));
166 javax.swing.JLabel sameIdLabel =
new javax.swing.JLabel();
167 javax.swing.Box.Filler filler3 =
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 2),
new java.awt.Dimension(0, 2),
new java.awt.Dimension(0, 2));
168 javax.swing.JPanel sameIdPanel = sameIdTable;
169 javax.swing.Box.Filler filler5 =
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 0),
new java.awt.Dimension(0, 0),
new java.awt.Dimension(0, 32767));
171 mainContentPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
172 mainContentPanel.setLayout(
new javax.swing.BoxLayout(mainContentPanel, javax.swing.BoxLayout.PAGE_AXIS));
174 ingestRunningPanel.setAlignmentX(0.0F);
175 ingestRunningPanel.setMaximumSize(
new java.awt.Dimension(32767, 25));
176 ingestRunningPanel.setMinimumSize(
new java.awt.Dimension(10, 25));
177 ingestRunningPanel.setPreferredSize(
new java.awt.Dimension(10, 25));
178 mainContentPanel.add(ingestRunningPanel);
180 org.openide.awt.Mnemonics.setLocalizedText(notableFileLabel,
org.openide.util.NbBundle.getMessage(
PastCasesPanel.class,
"PastCasesPanel.notableFileLabel.text"));
181 mainContentPanel.add(notableFileLabel);
182 notableFileLabel.getAccessibleContext().setAccessibleName(
org.openide.util.NbBundle.getMessage(
PastCasesPanel.class,
"PastCasesPanel.notableFileLabel.text"));
184 filler1.setAlignmentX(0.0F);
185 mainContentPanel.add(filler1);
187 notableFilePanel.setAlignmentX(0.0F);
188 notableFilePanel.setMaximumSize(
new java.awt.Dimension(32767, 106));
189 notableFilePanel.setMinimumSize(
new java.awt.Dimension(100, 106));
190 notableFilePanel.setPreferredSize(
new java.awt.Dimension(100, 106));
191 mainContentPanel.add(notableFilePanel);
193 filler2.setAlignmentX(0.0F);
194 mainContentPanel.add(filler2);
196 org.openide.awt.Mnemonics.setLocalizedText(sameIdLabel,
org.openide.util.NbBundle.getMessage(
PastCasesPanel.class,
"PastCasesPanel.sameIdLabel.text"));
197 mainContentPanel.add(sameIdLabel);
199 filler3.setAlignmentX(0.0F);
200 mainContentPanel.add(filler3);
202 sameIdPanel.setAlignmentX(0.0F);
203 sameIdPanel.setMaximumSize(
new java.awt.Dimension(32767, 106));
204 sameIdPanel.setMinimumSize(
new java.awt.Dimension(100, 106));
205 sameIdPanel.setPreferredSize(
new java.awt.Dimension(100, 106));
206 mainContentPanel.add(sameIdPanel);
208 filler5.setAlignmentX(0.0F);
209 mainContentPanel.add(filler5);
211 mainScrollPane.setViewportView(mainContentPanel);
213 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
214 this.setLayout(layout);
215 layout.setHorizontalGroup(
216 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
217 .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
219 layout.setVerticalGroup(
220 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
221 .addComponent(mainScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
void handleResult(DataFetchResult< PastCasesResult > result)
static< I, O > DataFetchResult< O > getSubResult(DataFetchResult< I > inputResult, Function< I, O > getSubResult)
List< Pair< String, Long > > getSameIdsResults()
void showDataFetchResult(DataFetchResult< T > result, String errorMessage, String noResultsMessage)
static< T, CextendsGuiCellModel > JTablePanel< T > getJTablePanel(List< ColumnModel< T, C >> columns)
PastCasesResult getPastCasesData(DataSource dataSource)
PastCasesPanel(PastCasesSummary pastCaseData)
void onNewDataSource(DataSource dataSource)
List< Pair< String, Long > > getTaggedNotable()
final List< DataFetchComponents< DataSource,?> > dataFetchComponents
final DataFetcher< DataSource, PastCasesResult > pastCasesFetcher
void fetchInformation(DataSource dataSource)