From 3e9960f8a712e8590b3ab3126d823504027516da Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 28 Sep 2014 16:48:54 -0400 Subject: added jar export --- src/cuchaz/enigma/gui/ProgressDialog.java | 36 ++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'src/cuchaz/enigma/gui/ProgressDialog.java') 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; import cuchaz.enigma.Constants; import cuchaz.enigma.Deobfuscator.ProgressListener; -public class ProgressDialog implements ProgressListener +public class ProgressDialog implements ProgressListener, AutoCloseable { private JFrame m_frame; + private JLabel m_title; private JLabel m_text; private JProgressBar m_progress; public ProgressDialog( JFrame parent ) { // init frame - m_frame = new JFrame( Constants.Name + " - Export" ); + m_frame = new JFrame( Constants.Name + " - Operation in progress" ); final Container pane = m_frame.getContentPane(); FlowLayout layout = new FlowLayout(); layout.setAlignment( FlowLayout.LEFT ); pane.setLayout( layout ); - pane.add( new JLabel( "Decompiling classes..." ) ); + m_title = new JLabel(); + pane.add( m_title ); // set up the progress bar JPanel panel = new JPanel(); @@ -68,9 +70,9 @@ public class ProgressDialog implements ProgressListener } @Override - public void init( int totalWork ) + public void init( int totalWork, String title ) { - m_text.setText( "Decompiling " + totalWork + " classes..." ); + m_title.setText( title ); m_progress.setMinimum( 0 ); m_progress.setMaximum( totalWork ); m_progress.setValue( 0 ); @@ -86,4 +88,28 @@ public class ProgressDialog implements ProgressListener m_frame.validate(); m_frame.repaint(); } + + public static interface ProgressRunnable + { + void run( ProgressListener listener ) throws Exception; + } + + public static void runInThread( final JFrame parent, final ProgressRunnable runnable ) + { + new Thread( ) + { + @Override + public void run( ) + { + try( ProgressDialog progress = new ProgressDialog( parent ) ) + { + runnable.run( progress ); + } + catch( Exception ex ) + { + throw new Error( ex ); + } + } + }.start(); + } } -- cgit v1.2.3