summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/ProgressDialog.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-23 16:20:15 -0400
committerGravatar jeff2014-08-23 16:20:15 -0400
commita700b403d790c23989da524c934f0185b87c7b32 (patch)
tree10a6b279927efea8cbfd12288edd6ad06f046eb2 /src/cuchaz/enigma/gui/ProgressDialog.java
parentAdded tag v0.3 beta for changeset d90963ed6887 (diff)
downloadenigma-fork-a700b403d790c23989da524c934f0185b87c7b32.tar.gz
enigma-fork-a700b403d790c23989da524c934f0185b87c7b32.tar.xz
enigma-fork-a700b403d790c23989da524c934f0185b87c7b32.zip
added export command with progress bar
Diffstat (limited to '')
-rw-r--r--src/cuchaz/enigma/gui/ProgressDialog.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/gui/ProgressDialog.java b/src/cuchaz/enigma/gui/ProgressDialog.java
new file mode 100644
index 0000000..40ac6a6
--- /dev/null
+++ b/src/cuchaz/enigma/gui/ProgressDialog.java
@@ -0,0 +1,89 @@
1/*******************************************************************************
2 * Copyright (c) 2014 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Public License v3.0
5 * which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/gpl.html
7 *
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11package cuchaz.enigma.gui;
12
13import java.awt.BorderLayout;
14import java.awt.Container;
15import java.awt.Dimension;
16import java.awt.FlowLayout;
17
18import javax.swing.BorderFactory;
19import javax.swing.JFrame;
20import javax.swing.JLabel;
21import javax.swing.JPanel;
22import javax.swing.JProgressBar;
23import javax.swing.WindowConstants;
24
25import cuchaz.enigma.Constants;
26import cuchaz.enigma.Deobfuscator.ProgressListener;
27
28public class ProgressDialog implements ProgressListener
29{
30 private JFrame m_frame;
31 private JLabel m_text;
32 private JProgressBar m_progress;
33
34 public ProgressDialog( JFrame parent )
35 {
36 // init frame
37 m_frame = new JFrame( Constants.Name + " - Export" );
38 final Container pane = m_frame.getContentPane();
39 FlowLayout layout = new FlowLayout();
40 layout.setAlignment( FlowLayout.LEFT );
41 pane.setLayout( layout );
42
43 pane.add( new JLabel( "Decompiling classes..." ) );
44
45 // set up the progress bar
46 JPanel panel = new JPanel();
47 pane.add( panel );
48 panel.setLayout( new BorderLayout() );
49 m_text = GuiTricks.unboldLabel( new JLabel() );
50 m_progress = new JProgressBar();
51 m_text.setBorder( BorderFactory.createEmptyBorder( 0, 0, 10, 0 ) );
52 panel.add( m_text, BorderLayout.NORTH );
53 panel.add( m_progress, BorderLayout.CENTER );
54 panel.setPreferredSize( new Dimension( 360, 50 ) );
55
56 // show the frame
57 pane.doLayout();
58 m_frame.setSize( 400, 120 );
59 m_frame.setResizable( false );
60 m_frame.setLocationRelativeTo( parent );
61 m_frame.setVisible( true );
62 m_frame.setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
63 }
64
65 public void close( )
66 {
67 m_frame.dispose();
68 }
69
70 @Override
71 public void init( int totalWork )
72 {
73 m_text.setText( "Decompiling " + totalWork + " classes..." );
74 m_progress.setMinimum( 0 );
75 m_progress.setMaximum( totalWork );
76 m_progress.setValue( 0 );
77 }
78
79 @Override
80 public void onProgress( int numDone, String message )
81 {
82 m_text.setText( message );
83 m_progress.setValue( numDone );
84
85 // update the frame
86 m_frame.validate();
87 m_frame.repaint();
88 }
89}