summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/gui/ProgressDialog.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-28 16:48:54 -0400
committerGravatar jeff2014-09-28 16:48:54 -0400
commit3e9960f8a712e8590b3ab3126d823504027516da (patch)
tree3a437ef90fcfde1eaa8bf3e8ab3b4f946aa1bab2 /src/cuchaz/enigma/gui/ProgressDialog.java
parentargument names now default to the names chosen by Procyon (diff)
downloadenigma-fork-3e9960f8a712e8590b3ab3126d823504027516da.tar.gz
enigma-fork-3e9960f8a712e8590b3ab3126d823504027516da.tar.xz
enigma-fork-3e9960f8a712e8590b3ab3126d823504027516da.zip
added jar export
Diffstat (limited to 'src/cuchaz/enigma/gui/ProgressDialog.java')
-rw-r--r--src/cuchaz/enigma/gui/ProgressDialog.java36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/cuchaz/enigma/gui/ProgressDialog.java b/src/cuchaz/enigma/gui/ProgressDialog.java
index 40ac6a6..7f95431 100644
--- a/src/cuchaz/enigma/gui/ProgressDialog.java
+++ b/src/cuchaz/enigma/gui/ProgressDialog.java
@@ -25,22 +25,24 @@ import javax.swing.WindowConstants;
25import cuchaz.enigma.Constants; 25import cuchaz.enigma.Constants;
26import cuchaz.enigma.Deobfuscator.ProgressListener; 26import cuchaz.enigma.Deobfuscator.ProgressListener;
27 27
28public class ProgressDialog implements ProgressListener 28public class ProgressDialog implements ProgressListener, AutoCloseable
29{ 29{
30 private JFrame m_frame; 30 private JFrame m_frame;
31 private JLabel m_title;
31 private JLabel m_text; 32 private JLabel m_text;
32 private JProgressBar m_progress; 33 private JProgressBar m_progress;
33 34
34 public ProgressDialog( JFrame parent ) 35 public ProgressDialog( JFrame parent )
35 { 36 {
36 // init frame 37 // init frame
37 m_frame = new JFrame( Constants.Name + " - Export" ); 38 m_frame = new JFrame( Constants.Name + " - Operation in progress" );
38 final Container pane = m_frame.getContentPane(); 39 final Container pane = m_frame.getContentPane();
39 FlowLayout layout = new FlowLayout(); 40 FlowLayout layout = new FlowLayout();
40 layout.setAlignment( FlowLayout.LEFT ); 41 layout.setAlignment( FlowLayout.LEFT );
41 pane.setLayout( layout ); 42 pane.setLayout( layout );
42 43
43 pane.add( new JLabel( "Decompiling classes..." ) ); 44 m_title = new JLabel();
45 pane.add( m_title );
44 46
45 // set up the progress bar 47 // set up the progress bar
46 JPanel panel = new JPanel(); 48 JPanel panel = new JPanel();
@@ -68,9 +70,9 @@ public class ProgressDialog implements ProgressListener
68 } 70 }
69 71
70 @Override 72 @Override
71 public void init( int totalWork ) 73 public void init( int totalWork, String title )
72 { 74 {
73 m_text.setText( "Decompiling " + totalWork + " classes..." ); 75 m_title.setText( title );
74 m_progress.setMinimum( 0 ); 76 m_progress.setMinimum( 0 );
75 m_progress.setMaximum( totalWork ); 77 m_progress.setMaximum( totalWork );
76 m_progress.setValue( 0 ); 78 m_progress.setValue( 0 );
@@ -86,4 +88,28 @@ public class ProgressDialog implements ProgressListener
86 m_frame.validate(); 88 m_frame.validate();
87 m_frame.repaint(); 89 m_frame.repaint();
88 } 90 }
91
92 public static interface ProgressRunnable
93 {
94 void run( ProgressListener listener ) throws Exception;
95 }
96
97 public static void runInThread( final JFrame parent, final ProgressRunnable runnable )
98 {
99 new Thread( )
100 {
101 @Override
102 public void run( )
103 {
104 try( ProgressDialog progress = new ProgressDialog( parent ) )
105 {
106 runnable.run( progress );
107 }
108 catch( Exception ex )
109 {
110 throw new Error( ex );
111 }
112 }
113 }.start();
114 }
89} 115}