source: josm/trunk/src/org/openstreetmap/josm/gui/io/UploadAndSaveProgressRenderer.java@ 12853

Last change on this file since 12853 was 12452, checked in by bastiK, 7 years ago

see #14794 - javadoc for the josm.gui.io package

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io;
3
4import java.awt.GridBagConstraints;
5import java.awt.GridBagLayout;
6import java.awt.Insets;
7import java.beans.PropertyChangeEvent;
8import java.beans.PropertyChangeListener;
9
10import javax.swing.JLabel;
11import javax.swing.JPanel;
12import javax.swing.JProgressBar;
13
14import org.openstreetmap.josm.gui.io.SaveLayersModel.Mode;
15import org.openstreetmap.josm.gui.progress.ProgressRenderer;
16
17/**
18 * A {@link ProgressRenderer} used for upload/save action in the {@link SaveLayersDialog}.
19 */
20class UploadAndSaveProgressRenderer extends JPanel implements ProgressRenderer, PropertyChangeListener {
21
22 private final JLabel lblTaskTitle = new JLabel("");
23 private final JLabel lblCustomText = new JLabel("");
24 private final JProgressBar progressBar = new JProgressBar(JProgressBar.HORIZONTAL);
25
26 /**
27 * Constructs a new {@code UploadAndSaveProgressRenderer}.
28 */
29 UploadAndSaveProgressRenderer() {
30 build();
31 // initially not visible
32 setVisible(false);
33 }
34
35 protected void build() {
36 setLayout(new GridBagLayout());
37 GridBagConstraints gc = new GridBagConstraints();
38 gc.gridx = 0;
39 gc.gridy = 0;
40 gc.fill = GridBagConstraints.HORIZONTAL;
41 gc.weightx = 1.0;
42 gc.weighty = 0.0;
43 gc.insets = new Insets(5, 0, 0, 5);
44 add(lblTaskTitle, gc);
45 lblTaskTitle.setLabelFor(lblCustomText);
46
47 gc.gridy = 1;
48 add(lblCustomText, gc);
49 lblCustomText.setLabelFor(progressBar);
50
51 gc.gridy = 2;
52 add(progressBar, gc);
53 }
54
55 @Override
56 public void setCustomText(String message) {
57 lblCustomText.setText(message);
58 repaint();
59 }
60
61 @Override
62 public void setIndeterminate(boolean indeterminate) {
63 progressBar.setIndeterminate(indeterminate);
64 repaint();
65 }
66
67 @Override
68 public void setMaximum(int maximum) {
69 progressBar.setMaximum(maximum);
70 repaint();
71 }
72
73 @Override
74 public void setTaskTitle(String taskTitle) {
75 lblTaskTitle.setText(taskTitle);
76 repaint();
77 }
78
79 @Override
80 public void setValue(int value) {
81 progressBar.setValue(value);
82 repaint();
83 }
84
85 @Override
86 public void propertyChange(PropertyChangeEvent evt) {
87 if (evt.getPropertyName().equals(SaveLayersModel.MODE_PROP)) {
88 setVisible(Mode.UPLOADING_AND_SAVING.equals(evt.getNewValue()));
89 }
90 getParent().validate();
91 }
92}
Note: See TracBrowser for help on using the repository browser.