Autopsy  3.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
ModalNoButtons.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2011 - 2013 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 
20 package org.sleuthkit.autopsy.modules.hashdatabase;
21 
22 import java.awt.*;
23 import java.beans.PropertyChangeEvent;
24 import java.beans.PropertyChangeListener;
25 import java.util.ArrayList;
26 import java.util.List;
27 import javax.swing.JOptionPane;
28 
29 import org.openide.util.NbBundle;
31 
42 class ModalNoButtons extends javax.swing.JDialog implements PropertyChangeListener {
43 
44  List<HashDb> unindexed;
45  HashDb toIndex;
46  HashLookupSettingsPanel hdbmp;
47  int length = 0;
48  int currentcount = 1;
49  String currentDb = "";
50 
57  ModalNoButtons(HashLookupSettingsPanel hdbmp, java.awt.Frame parent, List<HashDb> unindexed) {
58  super(parent, NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.indexingDbsTitle"), true);
59  this.unindexed = unindexed;
60  this.toIndex = null;
61  this.hdbmp = hdbmp;
62  initComponents();
63  initCustom();
64  }
65 
72  ModalNoButtons(HashLookupSettingsPanel hdbmp, java.awt.Frame parent, HashDb unindexed){
73  super(parent, NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.indexingDbTitle"), true);
74  this.unindexed = null;
75  this.toIndex = unindexed;
76  this.hdbmp = hdbmp;
77  initComponents();
78  initCustom();
79  }
80 
86  @SuppressWarnings("unchecked")
87  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
88  private void initComponents() {
89 
90  INDEXING_PROGBAR = new javax.swing.JProgressBar();
91  GO_GET_COFFEE_LABEL = new javax.swing.JLabel();
92  CURRENTLYON_LABEL = new javax.swing.JLabel();
93  CURRENTDB_LABEL = new javax.swing.JLabel();
94  CANCEL_BUTTON = new javax.swing.JButton();
95 
96  setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
97  setMinimumSize(new java.awt.Dimension(519, 130));
98  setModal(true);
99  setResizable(false);
100 
101  GO_GET_COFFEE_LABEL.setDisplayedMnemonic('H');
102  org.openide.awt.Mnemonics.setLocalizedText(GO_GET_COFFEE_LABEL, org.openide.util.NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.GO_GET_COFFEE_LABEL.text")); // NOI18N
103 
104  CURRENTLYON_LABEL.setFont(CURRENTLYON_LABEL.getFont().deriveFont(Font.PLAIN, 14));
105  org.openide.awt.Mnemonics.setLocalizedText(CURRENTLYON_LABEL, org.openide.util.NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.CURRENTLYON_LABEL.text")); // NOI18N
106 
107  CURRENTDB_LABEL.setFont(CURRENTDB_LABEL.getFont().deriveFont(Font.PLAIN, 14));
108  org.openide.awt.Mnemonics.setLocalizedText(CURRENTDB_LABEL, org.openide.util.NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.CURRENTDB_LABEL.text")); // NOI18N
109 
110  org.openide.awt.Mnemonics.setLocalizedText(CANCEL_BUTTON, org.openide.util.NbBundle.getMessage(ModalNoButtons.class, "ModalNoButtons.CANCEL_BUTTON.text")); // NOI18N
111  CANCEL_BUTTON.addMouseListener(new java.awt.event.MouseAdapter() {
112  public void mouseClicked(java.awt.event.MouseEvent evt) {
113  CANCEL_BUTTONMouseClicked(evt);
114  }
115  });
116 
117  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
118  getContentPane().setLayout(layout);
119  layout.setHorizontalGroup(
120  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
121  .addGroup(layout.createSequentialGroup()
122  .addContainerGap()
123  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
124  .addComponent(INDEXING_PROGBAR, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
125  .addGroup(layout.createSequentialGroup()
126  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
127  .addComponent(GO_GET_COFFEE_LABEL)
128  .addGroup(layout.createSequentialGroup()
129  .addComponent(CURRENTLYON_LABEL)
130  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
131  .addComponent(CURRENTDB_LABEL)))
132  .addGap(0, 161, Short.MAX_VALUE))
133  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
134  .addGap(0, 0, Short.MAX_VALUE)
135  .addComponent(CANCEL_BUTTON, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)))
136  .addContainerGap())
137  );
138  layout.setVerticalGroup(
139  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
140  .addGroup(layout.createSequentialGroup()
141  .addContainerGap()
142  .addComponent(GO_GET_COFFEE_LABEL)
143  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
144  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
145  .addComponent(CURRENTLYON_LABEL)
146  .addComponent(CURRENTDB_LABEL))
147  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
148  .addComponent(INDEXING_PROGBAR, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
149  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
150  .addComponent(CANCEL_BUTTON)
151  .addGap(36, 36, 36))
152  );
153 
154  pack();
155  }// </editor-fold>//GEN-END:initComponents
156 
166  private void CANCEL_BUTTONMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_CANCEL_BUTTONMouseClicked
167  String message = NbBundle.getMessage(this.getClass(), "ModalNoButtons.exitHashDbIndexingMsg");
168 
169  int res = JOptionPane.showConfirmDialog(this,
170  message,
171  NbBundle.getMessage(this.getClass(),
172  "ModalNoButtons.dlgTitle.unfinishedIndexing"),
173  JOptionPane.YES_NO_OPTION);
174  if(res == JOptionPane.YES_OPTION){
175  List<HashDb> remove = new ArrayList<>();
176  if(this.toIndex == null){
177  remove = this.unindexed;
178  }
179  else{
180  remove.add(this.toIndex);
181  }
182  this.hdbmp.removeThese(remove);
183  this.setVisible(false);
184  this.setModal(false);
185  this.dispose();
186  }
187 
188  }//GEN-LAST:event_CANCEL_BUTTONMouseClicked
189 
190  private void initCustom() {
191  this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
192  if(this.unindexed != null){
193  indexThese();
194  }
195  else{
196  indexThis();
197  }
198  }
199 
203  private void indexThis() {
204  this.INDEXING_PROGBAR.setIndeterminate(true);
205  currentDb = this.toIndex.getHashSetName();
206  this.CURRENTDB_LABEL.setText("(" + currentDb + ")");
207  this.length = 1;
208  this.CURRENTLYON_LABEL.setText(
209  NbBundle.getMessage(this.getClass(), "ModalNoButtons.indexThis.currentlyIndexing1Db"));
210  if (!this.toIndex.isIndexing()) {
211  this.toIndex.addPropertyChangeListener(this);
212  HashDbManager.getInstance().indexHashDatabase(toIndex);
213  }
214  }
215 
219  private void indexThese() {
220  length = this.unindexed.size();
221  this.INDEXING_PROGBAR.setIndeterminate(true);
222  for (HashDb db : this.unindexed) {
223  currentDb = db.getHashSetName();
224  this.CURRENTDB_LABEL.setText("(" + currentDb + ")");
225  this.CURRENTLYON_LABEL.setText(
226  NbBundle.getMessage(this.getClass(), "ModalNoButtons.indexThese.currentlyIndexing1OfNDbs", length));
227  if (!db.isIndexing()) {
228  db.addPropertyChangeListener(this);
229  HashDbManager.getInstance().indexHashDatabase(db);
230  }
231  }
232  }
233  // Variables declaration - do not modify//GEN-BEGIN:variables
234  private javax.swing.JButton CANCEL_BUTTON;
235  private javax.swing.JLabel CURRENTDB_LABEL;
236  private javax.swing.JLabel CURRENTLYON_LABEL;
237  private javax.swing.JLabel GO_GET_COFFEE_LABEL;
238  private javax.swing.JProgressBar INDEXING_PROGBAR;
239  // End of variables declaration//GEN-END:variables
240 
241  @Override
245  public void propertyChange(PropertyChangeEvent evt) {
246  if (evt.getPropertyName().equals(HashDb.Event.INDEXING_DONE.name())) {
247  if (currentcount >= length) {
248  this.INDEXING_PROGBAR.setValue(100);
249  this.setModal(false);
250  this.setVisible(false);
251  this.dispose();
252  } else {
253  currentcount++;
254  this.CURRENTLYON_LABEL.setText(
255  NbBundle.getMessage(this.getClass(), "ModalNoButtons.propChg.currentlyIndexingXofN",
256  currentcount, length));
257  }
258  }
259  }
260 }

Copyright © 2012-2015 Basis Technology. Generated on: Mon Oct 19 2015
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.