diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties index 8d951061da..a77d048939 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties @@ -1,3 +1,4 @@ -DataSourceSummaryDetailsPanel.operatingSystemLabel.text=OS: DataSourceSummaryFilesPanel.fileCountsLabel.text=Files (based on MIME type) DataSourceSummaryDialog.closeButton.text=Close +DataSourceSummaryDetailsPanel.jTable1.columnModel.title1=Value +DataSourceSummaryDetailsPanel.jTable1.columnModel.title0=Detail diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.form b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.form index cc80f427c4..51fbf14c4a 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.form @@ -16,37 +16,56 @@ - - - - - - - + - - - - - - - - + - - - - - - - - - + + + + + + + + + + + + + +
+
+ + + + + + <ResourceString bundle="org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties" key="DataSourceSummaryDetailsPanel.jTable1.columnModel.title0" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + + + + + + + <ResourceString bundle="org/sleuthkit/autopsy/casemodule/datasourceSummary/Bundle.properties" key="DataSourceSummaryDetailsPanel.jTable1.columnModel.title1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/> + + + + + + + + + +
+
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.java index f054d72e4e..7230284069 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDetailsPanel.java @@ -22,10 +22,14 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; +import javax.swing.table.DefaultTableModel; +import org.apache.commons.lang.StringUtils; +import org.openide.util.Exceptions; import org.openide.util.NbBundle.Messages; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.datamodel.DataSource; +import org.sleuthkit.datamodel.Image; import org.sleuthkit.datamodel.OSInfo; import org.sleuthkit.datamodel.OSUtility; import org.sleuthkit.datamodel.SleuthkitCase; @@ -63,8 +67,56 @@ public class DataSourceSummaryDetailsPanel extends javax.swing.JPanel { * @param selectedDataSource the DataSource to display details about. */ void updateDetailsPanelData(DataSource selectedDataSource) { - operatingSystemValueLabel.setText(getOSName(selectedDataSource)); - this.repaint(); + clearTableValues(); + if (selectedDataSource != null) { + updateTableValue("Name", selectedDataSource.getName()); + updateTableValue("Display Name", selectedDataSource.getName()); + updateTableValue("Device ID", selectedDataSource.getDeviceId()); + updateTableValue("Operating System", getOSName(selectedDataSource)); + updateTableValue("Time Zone", selectedDataSource.getTimeZone()); + if (selectedDataSource instanceof Image) { + updateTableValue("File Path", StringUtils.join(((Image) selectedDataSource).getPaths())); + updateTableValue("Size", String.valueOf(selectedDataSource.getSize()) + " bytes"); + updateTableValue("Sector Size", String.valueOf(((Image) selectedDataSource).getSsize()) + " bytes"); + try { + updateTableValue("MD5", ((Image) selectedDataSource).getMd5()); + } catch (TskCoreException ex) { + + } + try { + updateTableValue("SHA1", ((Image) selectedDataSource).getSha1()); + } catch (TskCoreException ex) { + + } + try { + updateTableValue("SHA256", ((Image) selectedDataSource).getSha256()); + } catch (TskCoreException ex) { + + } + } + try { + updateTableValue("Aquisition Details", selectedDataSource.getAcquisitionDetails()); + } catch (TskCoreException ex) { + + } + this.repaint(); + } + } + + void clearTableValues() { + ((DefaultTableModel) jTable1.getModel()).setRowCount(0); + } + + void updateTableValue(String valueName, String value) { + if (value != null && !value.isEmpty()) { + ((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{valueName, value}); + } +// for (int row = 0; row < jTable1.getRowCount(); row++) { +// if (jTable1.getModel().getValueAt(row, 0).equals(valueName)) { +// jTable1.getModel().setValueAt(value, row, 1); +// return; +// } +// } } /** @@ -108,36 +160,47 @@ public class DataSourceSummaryDetailsPanel extends javax.swing.JPanel { // //GEN-BEGIN:initComponents private void initComponents() { - operatingSystemLabel = new javax.swing.JLabel(); - operatingSystemValueLabel = new javax.swing.JLabel(); + jScrollPane2 = new javax.swing.JScrollPane(); + jTable1 = new javax.swing.JTable(); - org.openide.awt.Mnemonics.setLocalizedText(operatingSystemLabel, org.openide.util.NbBundle.getMessage(DataSourceSummaryDetailsPanel.class, "DataSourceSummaryDetailsPanel.operatingSystemLabel.text")); // NOI18N + jTable1.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + + }, + new String [] { + "Detail", "Value" + } + ) { + boolean[] canEdit = new boolean [] { + false, false + }; + + public boolean isCellEditable(int rowIndex, int columnIndex) { + return canEdit [columnIndex]; + } + }); + jTable1.setCellSelectionEnabled(true); + jScrollPane2.setViewportView(jTable1); + if (jTable1.getColumnModel().getColumnCount() > 0) { + jTable1.getColumnModel().getColumn(0).setHeaderValue(org.openide.util.NbBundle.getMessage(DataSourceSummaryDetailsPanel.class, "DataSourceSummaryDetailsPanel.jTable1.columnModel.title0")); // NOI18N + jTable1.getColumnModel().getColumn(1).setHeaderValue(org.openide.util.NbBundle.getMessage(DataSourceSummaryDetailsPanel.class, "DataSourceSummaryDetailsPanel.jTable1.columnModel.title1")); // NOI18N + } javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(operatingSystemLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(operatingSystemValueLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 445, Short.MAX_VALUE) - .addContainerGap()) + .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 545, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(operatingSystemLabel, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(operatingSystemValueLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(153, Short.MAX_VALUE)) + .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE) ); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel operatingSystemLabel; - private javax.swing.JLabel operatingSystemValueLabel; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JTable jTable1; // End of variables declaration//GEN-END:variables } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.form b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.form index 10526924bf..89a17afc68 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.form +++ b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.form @@ -22,7 +22,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.java b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.java index 98ae959e53..33856e21c1 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/datasourceSummary/DataSourceSummaryDialog.java @@ -109,7 +109,7 @@ final class DataSourceSummaryDialog extends javax.swing.JDialog implements Obser .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(dataSourceSummarySplitPane, javax.swing.GroupLayout.DEFAULT_SIZE, 630, Short.MAX_VALUE) + .addComponent(dataSourceSummarySplitPane, javax.swing.GroupLayout.DEFAULT_SIZE, 668, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(closeButton))) @@ -119,7 +119,7 @@ final class DataSourceSummaryDialog extends javax.swing.JDialog implements Obser layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(dataSourceSummarySplitPane, javax.swing.GroupLayout.DEFAULT_SIZE, 292, Short.MAX_VALUE) + .addComponent(dataSourceSummarySplitPane, javax.swing.GroupLayout.DEFAULT_SIZE, 353, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(closeButton) .addContainerGap())