source: josm/trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java@ 1281

Last change on this file since 1281 was 1281, checked in by ulfl, 15 years ago

add setIndeterminate() to the PleaseWaitDialog and use it at a few places
add some more user feedback for task long running on huge data

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1// License: GPL. Copyright 2007 by Immanuel Scholz and others
2package org.openstreetmap.josm.gui;
3
4import java.awt.Component;
5import java.awt.GridBagLayout;
6import java.awt.event.ComponentEvent;
7import java.awt.event.ComponentListener;
8
9import javax.swing.BorderFactory;
10import javax.swing.BoundedRangeModel;
11import javax.swing.JButton;
12import javax.swing.JDialog;
13import javax.swing.JLabel;
14import javax.swing.JOptionPane;
15import javax.swing.JPanel;
16import javax.swing.JProgressBar;
17
18import org.openstreetmap.josm.Main;
19import org.openstreetmap.josm.tools.GBC;
20import org.openstreetmap.josm.tools.I18n;
21
22public class PleaseWaitDialog extends JDialog {
23
24 private final JProgressBar progressBar = new JProgressBar();
25
26 public final JLabel currentAction = new JLabel(I18n.tr("Contacting the OSM server..."));
27 public final BoundedRangeModel progress = progressBar.getModel();
28 public final JButton cancel = new JButton(I18n.tr("Cancel"));
29
30 public PleaseWaitDialog(Component parent) {
31 super(JOptionPane.getFrameForComponent(parent), true);
32 setLayout(new GridBagLayout());
33 JPanel pane = new JPanel(new GridBagLayout());
34 pane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
35 pane.add(currentAction, GBC.eol().fill(GBC.HORIZONTAL));
36 pane.add(progressBar, GBC.eop().fill(GBC.HORIZONTAL));
37 pane.add(cancel, GBC.eol().anchor(GBC.CENTER));
38 setContentPane(pane);
39 setSize(Main.pref.getInteger("progressdialog.size",400),100);
40 setLocationRelativeTo(Main.parent);
41 addComponentListener(new ComponentListener() {
42 public void componentHidden(ComponentEvent e) {}
43 public void componentMoved(ComponentEvent e) {}
44 public void componentShown(ComponentEvent e) {}
45 public void componentResized(ComponentEvent ev) {
46 int w = getWidth();
47 if(w > 200)
48 Main.pref.putInteger("progressdialog.size",w);
49 }
50 });
51 }
52
53 public void setIndeterminate(boolean newValue) {
54 progressBar.setIndeterminate(newValue);
55 }
56}
Note: See TracBrowser for help on using the repository browser.