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         Long unallocatedSize = viewModel.getUnallocatedSize();
 
  178         if (unallocatedSize == null) {
 
  179             unallocatedSizeValue.setText(Bundle.ContainerPanel_setFieldsForNonImageDataSource_na());
 
  181             unallocatedSizeValue.setText(SizeRepresentationUtil.getSizeString(unallocatedSize));
 
  184         imageTypeValue.setText(viewModel.getImageType());
 
  185         sizeValue.setText(SizeRepresentationUtil.getSizeString(viewModel.getSize()));
 
  186         sectorSizeValue.setText(SizeRepresentationUtil.getSizeString(viewModel.getSectorSize()));
 
  187         timeZoneValue.setText(viewModel.getTimeZone());
 
  189         for (String path : viewModel.getPaths()) {
 
  190             ((DefaultTableModel) filePathsTable.getModel()).addRow(
new Object[]{path});
 
  193         md5HashValue.setText(viewModel.getMd5Hash());
 
  194         sha1HashValue.setText(viewModel.getSha1Hash());
 
  195         sha256HashValue.setText(viewModel.getSha256Hash());
 
  201     private void clearTableValues() {
 
  202         displayNameValue.setText(
"");
 
  203         originalNameValue.setText(
"");
 
  204         deviceIdValue.setText(
"");
 
  205         timeZoneValue.setText(
"");
 
  206         acquisitionDetailsTextArea.setText(
"");
 
  207         imageTypeValue.setText(
"");
 
  208         sizeValue.setText(
"");
 
  209         sectorSizeValue.setText(
"");
 
  210         md5HashValue.setText(
"");
 
  211         sha1HashValue.setText(
"");
 
  212         sha256HashValue.setText(
"");
 
  213         unallocatedSizeValue.setText(
"");
 
  214         ((DefaultTableModel) filePathsTable.getModel()).setRowCount(0);
 
  222     @SuppressWarnings(
"unchecked")
 
  224     private 
void initComponents() {
 
  225         java.awt.GridBagConstraints gridBagConstraints;
 
  227         jScrollPane1 = 
new javax.swing.JScrollPane();
 
  228         jPanel1 = 
new javax.swing.JPanel();
 
  229         displayNameLabel = 
new javax.swing.JLabel();
 
  230         originalNameLabel = 
new javax.swing.JLabel();
 
  231         sha1HashValue = 
new javax.swing.JLabel();
 
  232         displayNameValue = 
new javax.swing.JLabel();
 
  233         sha256HashValue = 
new javax.swing.JLabel();
 
  234         originalNameValue = 
new javax.swing.JLabel();
 
  235         deviceIdValue = 
new javax.swing.JLabel();
 
  236         filePathsScrollPane = 
new javax.swing.JScrollPane();
 
  237         filePathsTable = 
new javax.swing.JTable();
 
  238         timeZoneValue = 
new javax.swing.JLabel();
 
  239         imageTypeValue = 
new javax.swing.JLabel();
 
  240         md5HashValue = 
new javax.swing.JLabel();
 
  241         sectorSizeValue = 
new javax.swing.JLabel();
 
  242         sizeValue = 
new javax.swing.JLabel();
 
  243         filePathsLabel = 
new javax.swing.JLabel();
 
  244         sha256HashLabel = 
new javax.swing.JLabel();
 
  245         sha1HashLabel = 
new javax.swing.JLabel();
 
  246         md5HashLabel = 
new javax.swing.JLabel();
 
  247         sectorSizeLabel = 
new javax.swing.JLabel();
 
  248         sizeLabel = 
new javax.swing.JLabel();
 
  249         imageTypeLabel = 
new javax.swing.JLabel();
 
  250         acquisitionDetailsLabel = 
new javax.swing.JLabel();
 
  251         timeZoneLabel = 
new javax.swing.JLabel();
 
  252         deviceIdLabel = 
new javax.swing.JLabel();
 
  253         acquisitionDetailsScrollPane = 
new javax.swing.JScrollPane();
 
  254         acquisitionDetailsTextArea = 
new javax.swing.JTextArea();
 
  255         filler1 = 
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(32767, 32767));
 
  256         filler2 = 
new javax.swing.Box.Filler(
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(0, 0), 
new java.awt.Dimension(32767, 32767));
 
  257         unallocatedSizeLabel = 
new javax.swing.JLabel();
 
  258         unallocatedSizeValue = 
new javax.swing.JLabel();
 
  260         jPanel1.setLayout(
new java.awt.GridBagLayout());
 
  262         org.openide.awt.Mnemonics.setLocalizedText(displayNameLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.displayNameLabel.text")); 
 
  263         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  264         gridBagConstraints.gridx = 0;
 
  265         gridBagConstraints.gridy = 0;
 
  266         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  267         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  268         gridBagConstraints.insets = 
new java.awt.Insets(10, 10, 0, 4);
 
  269         jPanel1.add(displayNameLabel, gridBagConstraints);
 
  271         org.openide.awt.Mnemonics.setLocalizedText(originalNameLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.originalNameLabel.text")); 
 
  272         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  273         gridBagConstraints.gridx = 0;
 
  274         gridBagConstraints.gridy = 1;
 
  275         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  276         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  277         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  278         jPanel1.add(originalNameLabel, gridBagConstraints);
 
  280         org.openide.awt.Mnemonics.setLocalizedText(sha1HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha1HashValue.text")); 
 
  281         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  282         gridBagConstraints.gridx = 1;
 
  283         gridBagConstraints.gridy = 12;
 
  284         gridBagConstraints.gridwidth = 4;
 
  285         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  286         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  287         gridBagConstraints.weightx = 0.5;
 
  288         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  289         jPanel1.add(sha1HashValue, gridBagConstraints);
 
  291         org.openide.awt.Mnemonics.setLocalizedText(displayNameValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.displayNameValue.text")); 
 
  292         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  293         gridBagConstraints.gridx = 1;
 
  294         gridBagConstraints.gridy = 0;
 
  295         gridBagConstraints.gridwidth = 4;
 
  296         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  297         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  298         gridBagConstraints.weightx = 0.5;
 
  299         gridBagConstraints.insets = 
new java.awt.Insets(10, 0, 0, 10);
 
  300         jPanel1.add(displayNameValue, gridBagConstraints);
 
  302         org.openide.awt.Mnemonics.setLocalizedText(sha256HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha256HashValue.text")); 
 
  303         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  304         gridBagConstraints.gridx = 1;
 
  305         gridBagConstraints.gridy = 13;
 
  306         gridBagConstraints.gridwidth = 4;
 
  307         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  308         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  309         gridBagConstraints.weightx = 0.5;
 
  310         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  311         jPanel1.add(sha256HashValue, gridBagConstraints);
 
  313         org.openide.awt.Mnemonics.setLocalizedText(originalNameValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.originalNameValue.text")); 
 
  314         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  315         gridBagConstraints.gridx = 1;
 
  316         gridBagConstraints.gridy = 1;
 
  317         gridBagConstraints.gridwidth = 4;
 
  318         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  319         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  320         gridBagConstraints.weightx = 0.5;
 
  321         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  322         jPanel1.add(originalNameValue, gridBagConstraints);
 
  324         org.openide.awt.Mnemonics.setLocalizedText(deviceIdValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdValue.text")); 
 
  325         deviceIdValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdValue.toolTipText")); 
 
  326         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  327         gridBagConstraints.gridx = 1;
 
  328         gridBagConstraints.gridy = 2;
 
  329         gridBagConstraints.gridwidth = 4;
 
  330         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  331         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  332         gridBagConstraints.weightx = 0.5;
 
  333         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  334         jPanel1.add(deviceIdValue, gridBagConstraints);
 
  336         filePathsScrollPane.setPreferredSize(
new java.awt.Dimension(80, 50));
 
  338         filePathsTable.setModel(
new javax.swing.table.DefaultTableModel(
 
  346             boolean[] canEdit = 
new boolean [] {
 
  350             public boolean isCellEditable(
int rowIndex, 
int columnIndex) {
 
  351                 return canEdit [columnIndex];
 
  354         filePathsTable.setTableHeader(null);
 
  355         filePathsScrollPane.setViewportView(filePathsTable);
 
  356         if (filePathsTable.getColumnModel().getColumnCount() > 0) {
 
  357             filePathsTable.getColumnModel().getColumn(0).setHeaderValue(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.filePathsTable.columnModel.title0")); 
 
  360         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  361         gridBagConstraints.gridx = 1;
 
  362         gridBagConstraints.gridy = 14;
 
  363         gridBagConstraints.gridwidth = 4;
 
  364         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  365         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  366         gridBagConstraints.weightx = 0.5;
 
  367         gridBagConstraints.weighty = 1.2;
 
  368         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 10, 10);
 
  369         jPanel1.add(filePathsScrollPane, gridBagConstraints);
 
  371         org.openide.awt.Mnemonics.setLocalizedText(timeZoneValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.timeZoneValue.text")); 
 
  372         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  373         gridBagConstraints.gridx = 1;
 
  374         gridBagConstraints.gridy = 5;
 
  375         gridBagConstraints.gridwidth = 4;
 
  376         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  377         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  378         gridBagConstraints.weightx = 0.5;
 
  379         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 6, 10);
 
  380         jPanel1.add(timeZoneValue, gridBagConstraints);
 
  382         org.openide.awt.Mnemonics.setLocalizedText(imageTypeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeValue.text")); 
 
  383         imageTypeValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeValue.toolTipText")); 
 
  384         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  385         gridBagConstraints.gridx = 1;
 
  386         gridBagConstraints.gridy = 7;
 
  387         gridBagConstraints.gridwidth = 4;
 
  388         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  389         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  390         gridBagConstraints.weightx = 0.5;
 
  391         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 0, 10);
 
  392         jPanel1.add(imageTypeValue, gridBagConstraints);
 
  394         org.openide.awt.Mnemonics.setLocalizedText(md5HashValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashValue.text")); 
 
  395         md5HashValue.setToolTipText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashValue.toolTipText")); 
 
  396         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  397         gridBagConstraints.gridx = 1;
 
  398         gridBagConstraints.gridy = 11;
 
  399         gridBagConstraints.gridwidth = 4;
 
  400         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  401         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  402         gridBagConstraints.weightx = 0.5;
 
  403         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  404         jPanel1.add(md5HashValue, gridBagConstraints);
 
  406         org.openide.awt.Mnemonics.setLocalizedText(sectorSizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sectorSizeValue.text")); 
 
  407         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  408         gridBagConstraints.gridx = 1;
 
  409         gridBagConstraints.gridy = 10;
 
  410         gridBagConstraints.gridwidth = 4;
 
  411         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  412         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  413         gridBagConstraints.weightx = 0.5;
 
  414         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  415         jPanel1.add(sectorSizeValue, gridBagConstraints);
 
  417         org.openide.awt.Mnemonics.setLocalizedText(sizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sizeValue.text")); 
 
  418         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  419         gridBagConstraints.gridx = 1;
 
  420         gridBagConstraints.gridy = 8;
 
  421         gridBagConstraints.gridwidth = 4;
 
  422         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  423         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  424         gridBagConstraints.weightx = 0.5;
 
  425         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  426         jPanel1.add(sizeValue, gridBagConstraints);
 
  428         org.openide.awt.Mnemonics.setLocalizedText(filePathsLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.filePathsLabel.text")); 
 
  429         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  430         gridBagConstraints.gridx = 0;
 
  431         gridBagConstraints.gridy = 14;
 
  432         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  433         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  434         gridBagConstraints.weighty = 1.2;
 
  435         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 10, 4);
 
  436         jPanel1.add(filePathsLabel, gridBagConstraints);
 
  438         org.openide.awt.Mnemonics.setLocalizedText(sha256HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha256HashLabel.text")); 
 
  439         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  440         gridBagConstraints.gridx = 0;
 
  441         gridBagConstraints.gridy = 13;
 
  442         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  443         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  444         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  445         jPanel1.add(sha256HashLabel, gridBagConstraints);
 
  447         org.openide.awt.Mnemonics.setLocalizedText(sha1HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sha1HashLabel.text")); 
 
  448         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  449         gridBagConstraints.gridx = 0;
 
  450         gridBagConstraints.gridy = 12;
 
  451         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  452         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  453         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  454         jPanel1.add(sha1HashLabel, gridBagConstraints);
 
  456         org.openide.awt.Mnemonics.setLocalizedText(md5HashLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.md5HashLabel.text")); 
 
  457         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  458         gridBagConstraints.gridx = 0;
 
  459         gridBagConstraints.gridy = 11;
 
  460         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  461         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  462         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  463         jPanel1.add(md5HashLabel, gridBagConstraints);
 
  465         org.openide.awt.Mnemonics.setLocalizedText(sectorSizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sectorSizeLabel.text")); 
 
  466         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  467         gridBagConstraints.gridx = 0;
 
  468         gridBagConstraints.gridy = 10;
 
  469         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  470         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  471         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  472         jPanel1.add(sectorSizeLabel, gridBagConstraints);
 
  474         org.openide.awt.Mnemonics.setLocalizedText(sizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.sizeLabel.text")); 
 
  475         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  476         gridBagConstraints.gridx = 0;
 
  477         gridBagConstraints.gridy = 8;
 
  478         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  479         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  480         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  481         jPanel1.add(sizeLabel, gridBagConstraints);
 
  483         org.openide.awt.Mnemonics.setLocalizedText(imageTypeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.imageTypeLabel.text")); 
 
  484         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  485         gridBagConstraints.gridx = 0;
 
  486         gridBagConstraints.gridy = 7;
 
  487         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  488         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  489         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 0, 4);
 
  490         jPanel1.add(imageTypeLabel, gridBagConstraints);
 
  492         org.openide.awt.Mnemonics.setLocalizedText(acquisitionDetailsLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.acquisitionDetailsLabel.text")); 
 
  493         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  494         gridBagConstraints.gridx = 0;
 
  495         gridBagConstraints.gridy = 6;
 
  496         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  497         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  498         gridBagConstraints.weighty = 0.6;
 
  499         gridBagConstraints.insets = 
new java.awt.Insets(6, 10, 6, 4);
 
  500         jPanel1.add(acquisitionDetailsLabel, gridBagConstraints);
 
  502         org.openide.awt.Mnemonics.setLocalizedText(timeZoneLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.timeZoneLabel.text")); 
 
  503         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  504         gridBagConstraints.gridx = 0;
 
  505         gridBagConstraints.gridy = 5;
 
  506         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  507         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  508         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  509         jPanel1.add(timeZoneLabel, gridBagConstraints);
 
  511         org.openide.awt.Mnemonics.setLocalizedText(deviceIdLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.deviceIdLabel.text")); 
 
  512         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  513         gridBagConstraints.gridx = 0;
 
  514         gridBagConstraints.gridy = 2;
 
  515         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  516         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  517         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 6, 4);
 
  518         jPanel1.add(deviceIdLabel, gridBagConstraints);
 
  520         acquisitionDetailsTextArea.setEditable(
false);
 
  521         acquisitionDetailsTextArea.setBackground(javax.swing.UIManager.getDefaults().getColor(
"TextArea.disabledBackground"));
 
  522         acquisitionDetailsTextArea.setColumns(20);
 
  523         acquisitionDetailsTextArea.setRows(4);
 
  524         acquisitionDetailsTextArea.setText(
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.acquisitionDetailsTextArea.text")); 
 
  525         acquisitionDetailsTextArea.setBorder(null);
 
  526         acquisitionDetailsScrollPane.setViewportView(acquisitionDetailsTextArea);
 
  528         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  529         gridBagConstraints.gridx = 1;
 
  530         gridBagConstraints.gridy = 6;
 
  531         gridBagConstraints.gridwidth = 4;
 
  532         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  533         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  534         gridBagConstraints.weightx = 0.5;
 
  535         gridBagConstraints.weighty = 0.6;
 
  536         gridBagConstraints.insets = 
new java.awt.Insets(6, 0, 6, 10);
 
  537         jPanel1.add(acquisitionDetailsScrollPane, gridBagConstraints);
 
  538         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  539         gridBagConstraints.gridx = 0;
 
  540         gridBagConstraints.gridy = 15;
 
  541         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  542         gridBagConstraints.weighty = 0.1;
 
  543         jPanel1.add(filler1, gridBagConstraints);
 
  544         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  545         gridBagConstraints.gridx = 1;
 
  546         gridBagConstraints.gridy = 15;
 
  547         gridBagConstraints.gridwidth = 4;
 
  548         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
 
  549         gridBagConstraints.weighty = 0.1;
 
  550         jPanel1.add(filler2, gridBagConstraints);
 
  552         org.openide.awt.Mnemonics.setLocalizedText(unallocatedSizeLabel, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.unallocatedSizeLabel.text")); 
 
  553         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  554         gridBagConstraints.gridx = 0;
 
  555         gridBagConstraints.gridy = 9;
 
  556         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  557         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  558         gridBagConstraints.insets = 
new java.awt.Insets(0, 10, 0, 4);
 
  559         jPanel1.add(unallocatedSizeLabel, gridBagConstraints);
 
  561         org.openide.awt.Mnemonics.setLocalizedText(unallocatedSizeValue, 
org.openide.util.NbBundle.getMessage(ContainerPanel.class, 
"ContainerPanel.unallocatedSizeValue.text")); 
 
  562         gridBagConstraints = 
new java.awt.GridBagConstraints();
 
  563         gridBagConstraints.gridx = 1;
 
  564         gridBagConstraints.gridy = 9;
 
  565         gridBagConstraints.gridwidth = 4;
 
  566         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
 
  567         gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
 
  568         gridBagConstraints.weightx = 0.5;
 
  569         gridBagConstraints.insets = 
new java.awt.Insets(0, 0, 0, 10);
 
  570         jPanel1.add(unallocatedSizeValue, gridBagConstraints);
 
  572         jScrollPane1.setViewportView(jPanel1);
 
  574         javax.swing.GroupLayout layout = 
new javax.swing.GroupLayout(
this);
 
  575         this.setLayout(layout);
 
  576         layout.setHorizontalGroup(
 
  577             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  578             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
 
  579                 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
 
  582         layout.setVerticalGroup(
 
  583             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
  584             .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
 
  590     private javax.swing.JLabel acquisitionDetailsLabel;
 
  591     private javax.swing.JScrollPane acquisitionDetailsScrollPane;
 
  592     private javax.swing.JTextArea acquisitionDetailsTextArea;
 
  593     private javax.swing.JLabel deviceIdLabel;
 
  594     private javax.swing.JLabel deviceIdValue;
 
  595     private javax.swing.JLabel displayNameLabel;
 
  596     private javax.swing.JLabel displayNameValue;
 
  597     private javax.swing.JLabel filePathsLabel;
 
  598     private javax.swing.JScrollPane filePathsScrollPane;
 
  599     private javax.swing.JTable filePathsTable;
 
  600     private javax.swing.Box.Filler filler1;
 
  601     private javax.swing.Box.Filler filler2;
 
  602     private javax.swing.JLabel imageTypeLabel;
 
  603     private javax.swing.JLabel imageTypeValue;
 
  604     private javax.swing.JPanel jPanel1;
 
  605     private javax.swing.JScrollPane jScrollPane1;
 
  606     private javax.swing.JLabel md5HashLabel;
 
  607     private javax.swing.JLabel md5HashValue;
 
  608     private javax.swing.JLabel originalNameLabel;
 
  609     private javax.swing.JLabel originalNameValue;
 
  610     private javax.swing.JLabel sectorSizeLabel;
 
  611     private javax.swing.JLabel sectorSizeValue;
 
  612     private javax.swing.JLabel sha1HashLabel;
 
  613     private javax.swing.JLabel sha1HashValue;
 
  614     private javax.swing.JLabel sha256HashLabel;
 
  615     private javax.swing.JLabel sha256HashValue;
 
  616     private javax.swing.JLabel sizeLabel;
 
  617     private javax.swing.JLabel sizeValue;
 
  618     private javax.swing.JLabel timeZoneLabel;
 
  619     private javax.swing.JLabel timeZoneValue;
 
  620     private javax.swing.JLabel unallocatedSizeLabel;
 
  621     private javax.swing.JLabel unallocatedSizeValue;