+++ /dev/null
-package tim.prune.gui;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-
-import tim.prune.I18nManager;
-
-/**
- * Class to show a simple progress dialog
- * similar to swing's ProgressMonitor but with a few
- * modifications
- */
-public class ProgressDialog
-{
- /** Parent frame */
- private JFrame _parentFrame = null;
- /** Key for title text */
- private String _titleKey = null;
- /** function dialog */
- private JDialog _dialog = null;
- /** Progress bar for function */
- private JProgressBar _progressBar = null;
- /** Cancel flag */
- private boolean _cancelled = false;
-
-
- /**
- * Constructor
- * @param inParentFrame parent frame
- * @param inNameKey key for title
- */
- public ProgressDialog(JFrame inParentFrame, String inNameKey)
- {
- _parentFrame = inParentFrame;
- _titleKey = inNameKey;
- }
-
- public void show()
- {
- if (_dialog == null)
- {
- _dialog = new JDialog(_parentFrame, I18nManager.getText(_titleKey), false);
- _dialog.setLocationRelativeTo(_parentFrame);
- _dialog.getContentPane().add(makeDialogComponents());
- _dialog.pack();
- }
- _progressBar.setMinimum(0);
- _progressBar.setMaximum(100);
- _progressBar.setValue(0);
- _progressBar.setIndeterminate(true);
- _cancelled = false;
- _dialog.setVisible(true);
- }
-
- /**
- * Make the dialog components
- * @return the GUI components for the dialog
- */
- private Component makeDialogComponents()
- {
- JPanel dialogPanel = new JPanel();
- dialogPanel.setLayout(new BorderLayout());
- dialogPanel.add(new JLabel(I18nManager.getText("confirm.running")), BorderLayout.NORTH);
- // Centre panel with an empty border
- JPanel centrePanel = new JPanel();
- centrePanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
- centrePanel.setLayout(new BorderLayout());
- _progressBar = new JProgressBar();
- _progressBar.setPreferredSize(new Dimension(250, 30));
- centrePanel.add(_progressBar, BorderLayout.CENTER);
- dialogPanel.add(centrePanel, BorderLayout.CENTER);
- // Cancel button at the bottom
- JPanel buttonPanel = new JPanel();
- buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
- JButton cancelButton = new JButton(I18nManager.getText("button.cancel"));
- cancelButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- _cancelled = true;
- _dialog.dispose();
- }
- });
- buttonPanel.add(cancelButton);
- dialogPanel.add(buttonPanel, BorderLayout.SOUTH);
- return dialogPanel;
- }
-
- /** Set the maximum value of the progress bar */
- public void setMaximum(int inMax) {
- _progressBar.setMaximum(inMax);
- _progressBar.setIndeterminate(inMax <= 1);
- }
-
- /** Set the current value of the progress bar */
- public void setValue(int inValue) {
- _progressBar.setValue(inValue);
- }
-
- /** Close the dialog */
- public void dispose() {
- _dialog.dispose();
- }
-
- /**
- * @return true if cancel button was pressed
- */
- public boolean isCancelled() {
- return _cancelled;
- }
-}