| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| 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() ); |
| mainWindow.update( mainWindow.getGraphics() ); |
| } |
| |
| |
| public void enableCancelButton( boolean enable ) |
| { |
| if( enable ) |
| { |
| cancelButton.setEnabled( true ); |
| cancelButton.setText( "Finish" ); |
| } |
| else |
| { |
| cancelButton.setEnabled( false ); |
| cancelButton.setText( "Cancel" ); |
| } |
| |
| } |
| |
| } |