Autopsy  4.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
AddImageWizardAddingProgressVisual.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2012 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.autopsy.casemodule;
20 
21 import java.awt.Color;
22 import java.awt.event.ActionEvent;
23 import java.awt.event.ActionListener;
24 import javax.swing.JProgressBar;
25 import org.openide.WizardDescriptor;
26 import org.openide.util.NbBundle;
27 
32 class AddImageWizardAddingProgressVisual extends javax.swing.JPanel {
33 
34  private static final String ADDING_DATA_SOURCE_COMPLETE = NbBundle
35  .getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.addingDsComplete.text");
36  private String errorLog = "";
37  private boolean hasCriticalErrors = false;
38 
45  @Override
46  public String getName() {
47  return NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.getName.text");
48  }
49 
53  protected void setStateFinished() {
54  inProgressPanel.setVisible(false);
55  donePanel.setVisible(true);
56  //force repaint just in case
57  validate();
58  repaint();
59  }
60 
64  public AddImageWizardAddingProgressVisual() {
65  initComponents();
66  customizeComponents();
67 
68  }
69 
70  private void customizeComponents() {
71  //done and log button are both hidden to start
72  donePanel.setVisible(false);
73  viewLogButton.setVisible(false);
74  //match visual background of panel
75  this.progressTextArea.setBackground(this.getBackground());
76 
77  }
78 
79  public JProgressBar getProgressBar() {
80  return this.progressBar;
81  }
82 
90  public void setProgressBarTextAndColor(String text, int value, Color color) {
91  progressLabel.setText(text);
92  progressLabel.setForeground(color);
93  progressBar.setValue(value);
94  }
95 
101  public void setProgressMsgText(String msg) {
102  this.progressTextArea.setText(msg);
103  }
104 
113  public void showErrors(final String errors, boolean critical) {
114  hasCriticalErrors |= critical;
115 
116  //progressBar.setValue(100); //always invoked when process completed
117  if (hasCriticalErrors) {
118  statusLabel.setForeground(Color.RED);
119  statusLabel.setText(
120  NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.critText"));
121  } else {
122  statusLabel.setForeground(Color.BLACK);
123  statusLabel.setText(
124  NbBundle.getMessage(this.getClass(), "AddImageWizardAddingProgressVisual.showErrors.nonCritText"));
125  }
126 
127  errorLog += errors + "\n";
128  viewLogButton.setVisible(true);
129  }
130 
136  @SuppressWarnings("unchecked")
137  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
138  private void initComponents() {
139 
140  loadingPanel = new javax.swing.JPanel();
141  donePanel = new javax.swing.JPanel();
142  statusLabel = new javax.swing.JLabel();
143  viewLogButton = new javax.swing.JButton();
144  inProgressPanel = new javax.swing.JPanel();
145  progressBar = new javax.swing.JProgressBar();
146  progressLabel = new javax.swing.JLabel();
147  progressTextArea = new javax.swing.JTextArea();
148  subTitle1Label = new javax.swing.JLabel();
149 
150  javax.swing.GroupLayout loadingPanelLayout = new javax.swing.GroupLayout(loadingPanel);
151  loadingPanel.setLayout(loadingPanelLayout);
152  loadingPanelLayout.setHorizontalGroup(
153  loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
154  .addGap(0, 540, Short.MAX_VALUE)
155  );
156  loadingPanelLayout.setVerticalGroup(
157  loadingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
158  .addGap(0, 247, Short.MAX_VALUE)
159  );
160 
161  org.openide.awt.Mnemonics.setLocalizedText(statusLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.statusLabel.text")); // NOI18N
162 
163  org.openide.awt.Mnemonics.setLocalizedText(viewLogButton, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.viewLogButton.text")); // NOI18N
164  viewLogButton.addActionListener(new java.awt.event.ActionListener() {
165  public void actionPerformed(java.awt.event.ActionEvent evt) {
166  viewLogButtonActionPerformed(evt);
167  }
168  });
169 
170  javax.swing.GroupLayout donePanelLayout = new javax.swing.GroupLayout(donePanel);
171  donePanel.setLayout(donePanelLayout);
172  donePanelLayout.setHorizontalGroup(
173  donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
174  .addGroup(donePanelLayout.createSequentialGroup()
175  .addContainerGap()
176  .addGroup(donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
177  .addComponent(viewLogButton)
178  .addComponent(statusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 463, javax.swing.GroupLayout.PREFERRED_SIZE))
179  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
180  );
181  donePanelLayout.setVerticalGroup(
182  donePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
183  .addGroup(donePanelLayout.createSequentialGroup()
184  .addContainerGap()
185  .addComponent(statusLabel)
186  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
187  .addComponent(viewLogButton)
188  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
189  );
190 
191  progressBar.setIndeterminate(true);
192 
193  org.openide.awt.Mnemonics.setLocalizedText(progressLabel, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.progressLabel.text")); // NOI18N
194  progressLabel.setPreferredSize(null);
195 
196  progressTextArea.setEditable(false);
197  progressTextArea.setBackground(new java.awt.Color(240, 240, 240));
198  progressTextArea.setLineWrap(true);
199  progressTextArea.setRows(5);
200  progressTextArea.setWrapStyleWord(true);
201  progressTextArea.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.progressTextArea.border.title"))); // NOI18N
202  progressTextArea.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
203  progressTextArea.setFocusable(false);
204 
205  org.openide.awt.Mnemonics.setLocalizedText(subTitle1Label, org.openide.util.NbBundle.getMessage(AddImageWizardAddingProgressVisual.class, "AddImageWizardAddingProgressVisual.subTitle1Label.text")); // NOI18N
206 
207  javax.swing.GroupLayout inProgressPanelLayout = new javax.swing.GroupLayout(inProgressPanel);
208  inProgressPanel.setLayout(inProgressPanelLayout);
209  inProgressPanelLayout.setHorizontalGroup(
210  inProgressPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
211  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, inProgressPanelLayout.createSequentialGroup()
212  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
213  .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 475, javax.swing.GroupLayout.PREFERRED_SIZE)
214  .addContainerGap())
215  .addGroup(inProgressPanelLayout.createSequentialGroup()
216  .addContainerGap()
217  .addGroup(inProgressPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
218  .addComponent(progressTextArea)
219  .addComponent(progressLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
220  .addComponent(subTitle1Label, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
221  .addGap(0, 0, Short.MAX_VALUE))
222  );
223  inProgressPanelLayout.setVerticalGroup(
224  inProgressPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
225  .addGroup(inProgressPanelLayout.createSequentialGroup()
226  .addComponent(subTitle1Label)
227  .addGap(19, 19, 19)
228  .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
229  .addGap(18, 18, 18)
230  .addComponent(progressTextArea, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
231  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
232  .addComponent(progressLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
233  .addContainerGap())
234  );
235 
236  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
237  this.setLayout(layout);
238  layout.setHorizontalGroup(
239  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
240  .addGroup(layout.createSequentialGroup()
241  .addContainerGap()
242  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
243  .addComponent(inProgressPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
244  .addComponent(donePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
245  .addGap(0, 67, Short.MAX_VALUE))
246  );
247  layout.setVerticalGroup(
248  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
249  .addGroup(layout.createSequentialGroup()
250  .addGap(34, 34, 34)
251  .addComponent(inProgressPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
252  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
253  .addComponent(donePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
254  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
255  );
256  }// </editor-fold>//GEN-END:initComponents
257 
258  private void viewLogButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_viewLogButtonActionPerformed
259  //show error dialog
260  AddImageErrorsDialog dialog = new AddImageErrorsDialog(null, true);
261  dialog.appendErrors(errorLog);
262  dialog.setLocationRelativeTo(null);
263  dialog.setVisible(true);
264  }//GEN-LAST:event_viewLogButtonActionPerformed
265  // Variables declaration - do not modify//GEN-BEGIN:variables
266  protected javax.swing.JPanel donePanel;
267  protected javax.swing.JPanel inProgressPanel;
268  private javax.swing.JPanel loadingPanel;
269  private javax.swing.JProgressBar progressBar;
270  protected javax.swing.JLabel progressLabel;
271  protected javax.swing.JTextArea progressTextArea;
272  protected javax.swing.JLabel statusLabel;
273  protected javax.swing.JLabel subTitle1Label;
274  protected javax.swing.JButton viewLogButton;
275  // End of variables declaration//GEN-END:variables
276 }

Copyright © 2012-2016 Basis Technology. Generated on: Mon Jan 2 2017
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.