- _parentFrame = inParentFrame;
- _function = inFunction;
- }
-
- /**
- * Create the dialog to show the progress
- */
- private void createProgressDialog()
- {
- _progressDialog = new JDialog(_parentFrame, I18nManager.getText("dialog.jpegload.progress.title"));
- _progressDialog.setLocationRelativeTo(_parentFrame);
- _progressBar = new JProgressBar(0, 100);
- _progressBar.setValue(0);
- _progressBar.setStringPainted(true);
- _progressBar.setString("");
- JPanel panel = new JPanel();
- panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
- panel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
- panel.add(new JLabel(I18nManager.getText("dialog.jpegload.progress")));
- panel.add(_progressBar);
- JButton cancelButton = new JButton(I18nManager.getText("button.cancel"));
- cancelButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- _function.cancel();
- }
- });
- panel.add(cancelButton);
- _progressDialog.getContentPane().add(panel);
- _progressDialog.pack();
- _progressDialog.setVisible(true);
- }
-
- /**
- * Show the dialog in indeterminate mode, before limits are calculated
- */
- public void show()
- {
- if (_progressDialog == null)
- {
- createProgressDialog();
- _progressBar.setIndeterminate(true);
- }
- }
-
- /**
- * Update the progress bar
- * @param inCurrent current value
- * @param inMax maximum value
- */
- public void showProgress(int inCurrent, int inMax)
- {
- if (_progressDialog == null)
- createProgressDialog();
- if (_progressBar.isIndeterminate())
- _progressBar.setIndeterminate(false);
- if (inMax > 0)
- _progressBar.setMaximum(inMax);
- _progressBar.setValue(inCurrent);
- _progressBar.setString("" + inCurrent + " / " + _progressBar.getMaximum());
- }
-
- /**
- * Close the dialog
- */
- public void close()
- {
- if (_progressDialog != null)
- _progressDialog.dispose();