diff options
Diffstat (limited to 'scripting/examples/java/Newsgroup/StatusWindow.java')
-rw-r--r-- | scripting/examples/java/Newsgroup/StatusWindow.java | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/scripting/examples/java/Newsgroup/StatusWindow.java b/scripting/examples/java/Newsgroup/StatusWindow.java new file mode 100644 index 000000000000..184b33ac5d55 --- /dev/null +++ b/scripting/examples/java/Newsgroup/StatusWindow.java @@ -0,0 +1,137 @@ +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; + +public class StatusWindow extends JFrame +{ + + private JProgressBar progressBar = null; + private JTextField statusLabel = null; + private JButton cancelButton = null; + private JFrame statusWindow = null; + private PostNewsgroup mainWindow = null; + + private final int MAXPROGRESS = 13; + private final int MINPROGRESS = 0; + + + public StatusWindow( PostNewsgroup mw, String title, int parentX, int parentY ) + { + this.setTitle( title ); + this.setLocation( parentX + 100, parentY + 100 ); + statusWindow = this; + mainWindow = mw; + + mainWindow.enableButtons( false ); + + statusWindow.addWindowListener( new WindowAdapter() + { + public void windowClosing( WindowEvent event ) { + mainWindow.enableButtons( true ); + } + }); + + progressBar = new JProgressBar(); + progressBar.setStringPainted( true ); + progressBar.setMaximum( MAXPROGRESS ); + progressBar.setMinimum( MINPROGRESS ); + progressBar.setSize( 30, 400 ); + + JLabel progLabel = new JLabel( "Progress:" ); + + JPanel progressPanel = new JPanel(); + progressPanel.setLayout( new BorderLayout( 10, 0 ) ); + progressPanel.add( progLabel, "West" ); + progressPanel.add( progressBar, "East" ); + + statusLabel = new JTextField(); + statusLabel.setColumns( 25 ); + statusLabel.setEditable( false ); + statusLabel.setBorder( null ); + //statusLabel.setBorder( LineBorder.createGrayLineBorder() ); + JPanel statusPanel = new JPanel(); + //statusPanel.setBorder( LineBorder.createBlackLineBorder() ); + statusPanel.setLayout( new BorderLayout() ); + statusPanel.add( statusLabel, "West" ); + + cancelButton = new JButton( "Cancel" ); + cancelButton.setSize( 30, 100 ); + cancelButton.setEnabled( false ); + cancelButton.addActionListener( new ActionListener() + { + public void actionPerformed( ActionEvent event ) { + // cancelling actions + mainWindow.enableButtons( true ); + statusWindow.dispose(); + } + }); + + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout( new BorderLayout( 0, 5 ) ); + buttonPanel.add( cancelButton, "East" ); + buttonPanel.add( new JSeparator( SwingConstants.HORIZONTAL ), "North" ); + + Container container = getContentPane(); + container.setLayout( new GridBagLayout() ); + GridBagConstraints constraints = new GridBagConstraints(); + constraints.fill = GridBagConstraints.BOTH; + + constraints.gridx = 0; + constraints.gridy = 0; + constraints.gridwidth = 1; + constraints.gridheight = 1; + constraints.insets = new Insets( 15, 15, 10, 15 ); + container.add( progressPanel, constraints ); + + constraints.gridx = 0; + constraints.gridy = 1; + constraints.gridwidth = 1; + constraints.gridheight = 1; + constraints.insets = new Insets( 10, 15, 10, 15 ); + container.add( statusPanel, constraints ); + + constraints.gridx = 0; + constraints.gridy = 2; + constraints.gridwidth = 1; + constraints.gridheight = 1; + constraints.insets = new Insets( 10, 15, 5, 15 ); + container.add( buttonPanel, constraints ); + + this.pack(); + this.setResizable( false ); + //this.setVisible( true ); + + } + + + public void setStatus( int progress, String status ) + { + progressBar.setValue( progress ); + statusLabel.setText( status ); + statusLabel.setToolTipText( status ); + if( progress == MAXPROGRESS ) + { + cancelButton.setEnabled( true ); + cancelButton.setText( "Close" ); + } + update( getGraphics() ); + } + + + public void enableCancelButton( boolean enable ) + { + if( enable ) + { + cancelButton.setEnabled( true ); + cancelButton.setText( "Close" ); + } + else + { + cancelButton.setEnabled( false ); + cancelButton.setText( "Cancel" ); + } + + } + +} |