19 package org.sleuthkit.autopsy.datasourcesummary.ui;
 
   21 import java.beans.PropertyChangeEvent;
 
   22 import java.util.Arrays;
 
   23 import java.util.HashSet;
 
   24 import java.util.List;
 
   26 import java.util.logging.Level;
 
   28 import javax.swing.table.DefaultTableModel;
 
   29 import org.openide.util.NbBundle.Messages;
 
   44     "ContainerPanel_tabName=Container" 
   46 class ContainerPanel extends BaseDataSourceSummaryPanel {
 
   49     private static final Set<Case.Events> CASE_EVENT_SET = 
new HashSet<>(Arrays.asList(
 
   50             Case.Events.DATA_SOURCE_NAME_CHANGED
 
   54     private static final UpdateGovernor CONTAINER_UPDATES = 
new DefaultUpdateGovernor() {
 
   57         public Set<Case.Events> getCaseEventUpdates() {
 
   58             return CASE_EVENT_SET;
 
   62         public boolean isRefreshRequiredForCaseEvent(PropertyChangeEvent evt) {
 
   69     private static final long serialVersionUID = 1L;
 
   70     private static final Logger logger = Logger.getLogger(ContainerPanel.class.getName());
 
   72     private final List<DataFetchComponents<DataSource, ?>> dataFetchComponents;
 
   73     private final DataFetcher<DataSource, ContainerDetails> containerDataFetcher;
 
   79         this(
new ContainerSummaryGetter());
 
   85     ContainerPanel(ContainerSummaryGetter containerSummary) {
 
   86         super(containerSummary, CONTAINER_UPDATES);
 
   88         containerDataFetcher = (dataSource) -> containerSummary.getContainerDetails(dataSource);
 
   90         dataFetchComponents = Arrays.asList(
 
   91                 new DataFetchComponents<>(
 
   94                             if (result != null && result.getResultType() == ResultType.SUCCESS) {
 
   95                                 ContainerDetails data = result.getData();
 
   96                                 updateDetailsPanelData(data);
 
   99                                     logger.log(Level.WARNING, 
"No data fetch result was provided to the ContainerPanel.");
 
  101                                     logger.log(Level.WARNING, 
"An exception occurred while attempting to fetch data for the ContainerPanel.",
 
  102                                             result.getException());
 
  104                                 updateDetailsPanelData(null);
 
  115     protected void onNewDataSource(DataSource dataSource) {
 
  116         fetchInformation(dataSource);
 
  120     protected void fetchInformation(DataSource dataSource) {
 
  121         fetchInformation(dataFetchComponents, dataSource);
 
  129     private void updateDetailsPanelData(ContainerDetails viewModel) {
 
  131         if (viewModel == null) {
 
  135         displayNameValue.setText(viewModel.getDisplayName());
 
  136         originalNameValue.setText(viewModel.getOriginalName());
 
  137         deviceIdValue.setText(viewModel.getDeviceId());
 
  138         acquisitionDetailsTextArea.setText(viewModel.getAcquisitionDetails());
 
  140         if (viewModel.getImageDetails() != null) {
 
  141             setFieldsForImage(viewModel.getImageDetails());
 
  143             setFieldsForNonImageDataSource();
 
  153         "ContainerPanel_setFieldsForNonImageDataSource_na=N/A" 
  155     private void setFieldsForNonImageDataSource() {
 
  156         String NA = Bundle.ContainerPanel_setFieldsForNonImageDataSource_na();
 
  158         unallocatedSizeValue.setText(NA);
 
  159         imageTypeValue.setText(NA);
 
  160         sizeValue.setText(NA);
 
  161         sectorSizeValue.setText(NA);
 
  162         timeZoneValue.setText(NA);
 
  164         ((DefaultTableModel) filePathsTable.getModel()).addRow(
new Object[]{NA});
 
  166         md5HashValue.setText(NA);
 
  167         sha1HashValue.setText(NA);
 
  168         sha256HashValue.setText(NA);
 
  176     private void setFieldsForImage(ImageDetails viewModel) {
 
  177         unallocatedSizeValue.setText(SizeRepresentationUtil.getSizeString(viewModel.getUnallocatedSize()));
 
  178         imageTypeValue.setText(viewModel.getImageType());
 
  179         sizeValue.setText(SizeRepresentationUtil.getSizeString(viewModel.getSize()));
 
  180         sectorSizeValue.setText(SizeRepresentationUtil.getSizeString(viewModel.getSectorSize()));
 
  181         timeZoneValue.setText(viewModel.getTimeZone());
 
  183         for (String path : viewModel.getPaths()) {
 
  184             ((DefaultTableModel) filePathsTable.getModel()).addRow(
new Object[]{path});
 
  187         md5HashValue.setText(viewModel.getMd5Hash());
 
  188         sha1HashValue.setText(viewModel.getSha1Hash());
 
  189         sha256HashValue.setText(viewModel.getSha256Hash());
 
  195     private void clearTableValues() {
 
  196         displayNameValue.setText(
"");
 
  197         originalNameValue.setText(
"");
 
  198         deviceIdValue.setText(
"");
 
  199         timeZoneValue.setText(
"");
 
  200         acquisitionDetailsTextArea.setText(
"");
 
  201         imageTypeValue.setText(
"");
 
  202         sizeValue.setText(
"");
 
  203         sectorSizeValue.setText(
"");
 
  204         md5HashValue.setText(
"");
 
  205         sha1HashValue.setText(
"");
 
  206         sha256HashValue.setText(
"");
 
  207         unallocatedSizeValue.setText(
"");
 
  208         ((DefaultTableModel) filePathsTable.getModel()).setRowCount(0);
 
  216     @SuppressWarnings(
"unchecked")
 
  218     private 
void initComponents() {
 
  219         java.awt.GridBagConstraints gridBagConstraints;
 
  221         jScrollPane1 = 
new javax.swing.JScrollPane();
 
  222         jPanel1 = 
new javax.swing.JPanel();
 
  223         displayNameLabel = 
new javax.swing.JLabel();
 
  224         originalNameLabel = 
new javax.swing.JLabel();
 
  225         sha1HashValue = 
new javax.swing.JLabel();
 
  226         displayNameValue = 
new javax.swing.JLabel();
 
  227         sha256HashValue = 
new javax.swing.JLabel();
 
  228         originalNameValue = 
new javax.swing.JLabel();
 
  229         deviceIdValue = 
new javax.swing.JLabel();
 
  230         filePathsScrollPane = 
new javax.swing.JScrollPane();
 
  231         filePathsTable = 
new javax.swing.JTable();
 
  232         timeZoneValue = 
new javax.swing.JLabel();
 
  233         imageTypeValue = 
new javax.swing.JLabel();
 
  234         md5HashValue = 
new javax.swing.JLabel();
 
  235         sectorSizeValue = 
new javax.swing.JLabel();
 
  236         sizeValue = 
new javax.swing.JLabel();
 
  237         filePathsLabel = 
new javax.swing.JLabel();
 
  238         sha256HashLabel = 
new javax.swing.JLabel();
 
  239         sha1HashLabel = 
new javax.swing.JLabel();
 
  240         md5HashLabel = 
new javax.swing.JLabel();
 
  241         sectorSizeLabel = 
new javax.swing.JLabel();
 
  242         sizeLabel = 
new javax.swing.JLabel();
 
  243         imageTypeLabel = 
new javax.swing.JLabel();
 
  244         acquisitionDetailsLabel = 
new javax.swing.JLabel();
 
  245         timeZoneLabel = 
new javax.swing.JLabel();
 
  246         deviceIdLabel = 
new javax.swing.JLabel();
 
  247         acquisitionDetailsScrollPane = 
new javax.swing.JScrollPane();
 
  248         acquisitionDetailsTextArea = 
new javax.swing.JTextArea();
 
  249         filler1 = 
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(32767, 32767));
 
  250         filler2 = 
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(32767, 32767));
 
  251         unallocatedSizeLabel = 
new javax.swing.JLabel();
 
  252         unallocatedSizeValue = 
new javax.swing.JLabel();
 
  254         jPanel1.setLayout(
new java.awt.GridBagLayout());
 
  256         org.openide.awt.Mnemonics.setLocalizedText(displayNameLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.displayNameLabel.text")); 
 
  257         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  258         gridBagConstraints.gridx = 0;
 
  259         gridBagConstraints.gridy = 0;
 
  260         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  261         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  262         gridBagConstraints.insets = 
new java.awt.Insets(10, 10, 0, 4);
 
  263         jPanel1.add(displayNameLabel, gridBagConstraints);
 
  265         org.openide.awt.Mnemonics.setLocalizedText(originalNameLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.originalNameLabel.text")); 
 
  266         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  267         gridBagConstraints.gridx = 0;
 
  268         gridBagConstraints.gridy = 1;
 
  269         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  270         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  271         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  272         jPanel1.add(originalNameLabel, gridBagConstraints);
 
  274         org.openide.awt.Mnemonics.setLocalizedText(sha1HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha1HashValue.text")); 
 
  275         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  276         gridBagConstraints.gridx = 1;
 
  277         gridBagConstraints.gridy = 12;
 
  278         gridBagConstraints.gridwidth = 4;
 
  279         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  280         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  281         gridBagConstraints.weightx = 0.5;
 
  282         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  283         jPanel1.add(sha1HashValue, gridBagConstraints);
 
  285         org.openide.awt.Mnemonics.setLocalizedText(displayNameValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.displayNameValue.text")); 
 
  286         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  287         gridBagConstraints.gridx = 1;
 
  288         gridBagConstraints.gridy = 0;
 
  289         gridBagConstraints.gridwidth = 4;
 
  290         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  291         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  292         gridBagConstraints.weightx = 0.5;
 
  293         gridBagConstraints.insets = 
new java.awt.Insets(10, 0, 0, 10);
 
  294         jPanel1.add(displayNameValue, gridBagConstraints);
 
  296         org.openide.awt.Mnemonics.setLocalizedText(sha256HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha256HashValue.text")); 
 
  297         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  298         gridBagConstraints.gridx = 1;
 
  299         gridBagConstraints.gridy = 13;
 
  300         gridBagConstraints.gridwidth = 4;
 
  301         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  302         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  303         gridBagConstraints.weightx = 0.5;
 
  304         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  305         jPanel1.add(sha256HashValue, gridBagConstraints);
 
  307         org.openide.awt.Mnemonics.setLocalizedText(originalNameValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.originalNameValue.text")); 
 
  308         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  309         gridBagConstraints.gridx = 1;
 
  310         gridBagConstraints.gridy = 1;
 
  311         gridBagConstraints.gridwidth = 4;
 
  312         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  313         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  314         gridBagConstraints.weightx = 0.5;
 
  315         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  316         jPanel1.add(originalNameValue, gridBagConstraints);
 
  318         org.openide.awt.Mnemonics.setLocalizedText(deviceIdValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdValue.text")); 
 
  319         deviceIdValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdValue.toolTipText")); 
 
  320         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  321         gridBagConstraints.gridx = 1;
 
  322         gridBagConstraints.gridy = 2;
 
  323         gridBagConstraints.gridwidth = 4;
 
  324         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  325         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  326         gridBagConstraints.weightx = 0.5;
 
  327         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  328         jPanel1.add(deviceIdValue, gridBagConstraints);
 
  330         filePathsScrollPane.setPreferredSize(
new java.awt.Dimension(80, 50));
 
  332         filePathsTable.setModel(
new javax.swing.table.DefaultTableModel(
 
  340             boolean[] canEdit = 
new boolean [] {
 
  344             public boolean isCellEditable(
int rowIndex, 
int columnIndex) {
 
  345                 return canEdit [columnIndex];
 
  348         filePathsTable.setTableHeader(null);
 
  349         filePathsScrollPane.setViewportView(filePathsTable);
 
  350         if (filePathsTable.getColumnModel().getColumnCount() > 0) {
 
  351             filePathsTable.getColumnModel().getColumn(0).setHeaderValue(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.filePathsTable.columnModel.title0")); 
 
  354         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  355         gridBagConstraints.gridx = 1;
 
  356         gridBagConstraints.gridy = 14;
 
  357         gridBagConstraints.gridwidth = 4;
 
  358         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  359         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  360         gridBagConstraints.weightx = 0.5;
 
  361         gridBagConstraints.weighty = 1.2;
 
  362         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 10, 10);
 
  363         jPanel1.add(filePathsScrollPane, gridBagConstraints);
 
  365         org.openide.awt.Mnemonics.setLocalizedText(timeZoneValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.timeZoneValue.text")); 
 
  366         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  367         gridBagConstraints.gridx = 1;
 
  368         gridBagConstraints.gridy = 5;
 
  369         gridBagConstraints.gridwidth = 4;
 
  370         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  371         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  372         gridBagConstraints.weightx = 0.5;
 
  373         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  374         jPanel1.add(timeZoneValue, gridBagConstraints);
 
  376         org.openide.awt.Mnemonics.setLocalizedText(imageTypeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeValue.text")); 
 
  377         imageTypeValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeValue.toolTipText")); 
 
  378         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  379         gridBagConstraints.gridx = 1;
 
  380         gridBagConstraints.gridy = 7;
 
  381         gridBagConstraints.gridwidth = 4;
 
  382         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  383         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  384         gridBagConstraints.weightx = 0.5;
 
  385         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 0, 10);
 
  386         jPanel1.add(imageTypeValue, gridBagConstraints);
 
  388         org.openide.awt.Mnemonics.setLocalizedText(md5HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashValue.text")); 
 
  389         md5HashValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashValue.toolTipText")); 
 
  390         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  391         gridBagConstraints.gridx = 1;
 
  392         gridBagConstraints.gridy = 11;
 
  393         gridBagConstraints.gridwidth = 4;
 
  394         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  395         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  396         gridBagConstraints.weightx = 0.5;
 
  397         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  398         jPanel1.add(md5HashValue, gridBagConstraints);
 
  400         org.openide.awt.Mnemonics.setLocalizedText(sectorSizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sectorSizeValue.text")); 
 
  401         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  402         gridBagConstraints.gridx = 1;
 
  403         gridBagConstraints.gridy = 10;
 
  404         gridBagConstraints.gridwidth = 4;
 
  405         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  406         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  407         gridBagConstraints.weightx = 0.5;
 
  408         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  409         jPanel1.add(sectorSizeValue, gridBagConstraints);
 
  411         org.openide.awt.Mnemonics.setLocalizedText(sizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sizeValue.text")); 
 
  412         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  413         gridBagConstraints.gridx = 1;
 
  414         gridBagConstraints.gridy = 8;
 
  415         gridBagConstraints.gridwidth = 4;
 
  416         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  417         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  418         gridBagConstraints.weightx = 0.5;
 
  419         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  420         jPanel1.add(sizeValue, gridBagConstraints);
 
  422         org.openide.awt.Mnemonics.setLocalizedText(filePathsLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.filePathsLabel.text")); 
 
  423         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  424         gridBagConstraints.gridx = 0;
 
  425         gridBagConstraints.gridy = 14;
 
  426         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  427         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  428         gridBagConstraints.weighty = 1.2;
 
  429         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 10, 4);
 
  430         jPanel1.add(filePathsLabel, gridBagConstraints);
 
  432         org.openide.awt.Mnemonics.setLocalizedText(sha256HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha256HashLabel.text")); 
 
  433         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  434         gridBagConstraints.gridx = 0;
 
  435         gridBagConstraints.gridy = 13;
 
  436         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  437         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  438         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  439         jPanel1.add(sha256HashLabel, gridBagConstraints);
 
  441         org.openide.awt.Mnemonics.setLocalizedText(sha1HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha1HashLabel.text")); 
 
  442         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  443         gridBagConstraints.gridx = 0;
 
  444         gridBagConstraints.gridy = 12;
 
  445         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  446         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  447         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  448         jPanel1.add(sha1HashLabel, gridBagConstraints);
 
  450         org.openide.awt.Mnemonics.setLocalizedText(md5HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashLabel.text")); 
 
  451         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  452         gridBagConstraints.gridx = 0;
 
  453         gridBagConstraints.gridy = 11;
 
  454         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  455         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  456         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  457         jPanel1.add(md5HashLabel, gridBagConstraints);
 
  459         org.openide.awt.Mnemonics.setLocalizedText(sectorSizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sectorSizeLabel.text")); 
 
  460         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  461         gridBagConstraints.gridx = 0;
 
  462         gridBagConstraints.gridy = 10;
 
  463         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  464         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  465         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  466         jPanel1.add(sectorSizeLabel, gridBagConstraints);
 
  468         org.openide.awt.Mnemonics.setLocalizedText(sizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sizeLabel.text")); 
 
  469         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  470         gridBagConstraints.gridx = 0;
 
  471         gridBagConstraints.gridy = 8;
 
  472         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  473         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  474         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  475         jPanel1.add(sizeLabel, gridBagConstraints);
 
  477         org.openide.awt.Mnemonics.setLocalizedText(imageTypeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeLabel.text")); 
 
  478         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  479         gridBagConstraints.gridx = 0;
 
  480         gridBagConstraints.gridy = 7;
 
  481         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  482         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  483         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 0, 4);
 
  484         jPanel1.add(imageTypeLabel, gridBagConstraints);
 
  486         org.openide.awt.Mnemonics.setLocalizedText(acquisitionDetailsLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.acquisitionDetailsLabel.text")); 
 
  487         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  488         gridBagConstraints.gridx = 0;
 
  489         gridBagConstraints.gridy = 6;
 
  490         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  491         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  492         gridBagConstraints.weighty = 0.6;
 
  493         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 6, 4);
 
  494         jPanel1.add(acquisitionDetailsLabel, gridBagConstraints);
 
  496         org.openide.awt.Mnemonics.setLocalizedText(timeZoneLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.timeZoneLabel.text")); 
 
  497         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  498         gridBagConstraints.gridx = 0;
 
  499         gridBagConstraints.gridy = 5;
 
  500         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  501         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  502         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  503         jPanel1.add(timeZoneLabel, gridBagConstraints);
 
  505         org.openide.awt.Mnemonics.setLocalizedText(deviceIdLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdLabel.text")); 
 
  506         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  507         gridBagConstraints.gridx = 0;
 
  508         gridBagConstraints.gridy = 2;
 
  509         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  510         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  511         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  512         jPanel1.add(deviceIdLabel, gridBagConstraints);
 
  514         acquisitionDetailsTextArea.setEditable(
false);
 
  515         acquisitionDetailsTextArea.setBackground(javax.swing.UIManager.getDefaults().getColor(
"TextArea.disabledBackground"));
 
  516         acquisitionDetailsTextArea.setColumns(20);
 
  517         acquisitionDetailsTextArea.setRows(4);
 
  518         acquisitionDetailsTextArea.setText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.acquisitionDetailsTextArea.text")); 
 
  519         acquisitionDetailsTextArea.setBorder(null);
 
  520         acquisitionDetailsScrollPane.setViewportView(acquisitionDetailsTextArea);
 
  522         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  523         gridBagConstraints.gridx = 1;
 
  524         gridBagConstraints.gridy = 6;
 
  525         gridBagConstraints.gridwidth = 4;
 
  526         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  527         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  528         gridBagConstraints.weightx = 0.5;
 
  529         gridBagConstraints.weighty = 0.6;
 
  530         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 6, 10);
 
  531         jPanel1.add(acquisitionDetailsScrollPane, gridBagConstraints);
 
  532         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  533         gridBagConstraints.gridx = 0;
 
  534         gridBagConstraints.gridy = 15;
 
  535         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  536         gridBagConstraints.weighty = 0.1;
 
  537         jPanel1.add(filler1, gridBagConstraints);
 
  538         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  539         gridBagConstraints.gridx = 1;
 
  540         gridBagConstraints.gridy = 15;
 
  541         gridBagConstraints.gridwidth = 4;
 
  542         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  543         gridBagConstraints.weighty = 0.1;
 
  544         jPanel1.add(filler2, gridBagConstraints);
 
  546         org.openide.awt.Mnemonics.setLocalizedText(unallocatedSizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.unallocatedSizeLabel.text")); 
 
  547         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  548         gridBagConstraints.gridx = 0;
 
  549         gridBagConstraints.gridy = 9;
 
  550         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  551         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  552         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  553         jPanel1.add(unallocatedSizeLabel, gridBagConstraints);
 
  555         org.openide.awt.Mnemonics.setLocalizedText(unallocatedSizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.unallocatedSizeValue.text")); 
 
  556         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  557         gridBagConstraints.gridx = 1;
 
  558         gridBagConstraints.gridy = 9;
 
  559         gridBagConstraints.gridwidth = 4;
 
  560         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  561         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  562         gridBagConstraints.weightx = 0.5;
 
  563         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  564         jPanel1.add(unallocatedSizeValue, gridBagConstraints);
 
  566         jScrollPane1.setViewportView(jPanel1);
 
  568         javax.swing.GroupLayout layout = 
new javax.swing.GroupLayout(
this);
 
  569         this.setLayout(layout);
 
  570         layout.setHorizontalGroup(
 
  571             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  572             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
 
  573                 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
 
  576         layout.setVerticalGroup(
 
  577             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  578             .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
 
  584     private javax.swing.JLabel acquisitionDetailsLabel;
 
  585     private javax.swing.JScrollPane acquisitionDetailsScrollPane;
 
  586     private javax.swing.JTextArea acquisitionDetailsTextArea;
 
  587     private javax.swing.JLabel deviceIdLabel;
 
  588     private javax.swing.JLabel deviceIdValue;
 
  589     private javax.swing.JLabel displayNameLabel;
 
  590     private javax.swing.JLabel displayNameValue;
 
  591     private javax.swing.JLabel filePathsLabel;
 
  592     private javax.swing.JScrollPane filePathsScrollPane;
 
  593     private javax.swing.JTable filePathsTable;
 
  594     private javax.swing.Box.Filler filler1;
 
  595     private javax.swing.Box.Filler filler2;
 
  596     private javax.swing.JLabel imageTypeLabel;
 
  597     private javax.swing.JLabel imageTypeValue;
 
  598     private javax.swing.JPanel jPanel1;
 
  599     private javax.swing.JScrollPane jScrollPane1;
 
  600     private javax.swing.JLabel md5HashLabel;
 
  601     private javax.swing.JLabel md5HashValue;
 
  602     private javax.swing.JLabel originalNameLabel;
 
  603     private javax.swing.JLabel originalNameValue;
 
  604     private javax.swing.JLabel sectorSizeLabel;
 
  605     private javax.swing.JLabel sectorSizeValue;
 
  606     private javax.swing.JLabel sha1HashLabel;
 
  607     private javax.swing.JLabel sha1HashValue;
 
  608     private javax.swing.JLabel sha256HashLabel;
 
  609     private javax.swing.JLabel sha256HashValue;
 
  610     private javax.swing.JLabel sizeLabel;
 
  611     private javax.swing.JLabel sizeValue;
 
  612     private javax.swing.JLabel timeZoneLabel;
 
  613     private javax.swing.JLabel timeZoneValue;
 
  614     private javax.swing.JLabel unallocatedSizeLabel;
 
  615     private javax.swing.JLabel unallocatedSizeValue;