root / trunk / libraries / libUIComponent / src / org / gvsig / gui / beans / progresspanel / ProgressPanel.java @ 11068
History | View | Annotate | Download (7.42 KB)
1 | 10948 | nacho | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
|
||
4 | *
|
||
5 | * This program is free software; you can redistribute it and/or
|
||
6 | * modify it under the terms of the GNU General Public License
|
||
7 | * as published by the Free Software Foundation; either version 2
|
||
8 | * of the License, or (at your option) any later version.
|
||
9 | *
|
||
10 | * This program is distributed in the hope that it will be useful,
|
||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
13 | * GNU General Public License for more details.
|
||
14 | *
|
||
15 | * You should have received a copy of the GNU General Public License
|
||
16 | * along with this program; if not, write to the Free Software
|
||
17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
18 | */
|
||
19 | package org.gvsig.gui.beans.progresspanel; |
||
20 | |||
21 | import java.awt.Dimension; |
||
22 | import java.awt.FlowLayout; |
||
23 | import java.awt.Toolkit; |
||
24 | |||
25 | import javax.swing.JFrame; |
||
26 | import javax.swing.JLabel; |
||
27 | import javax.swing.JPanel; |
||
28 | import javax.swing.JProgressBar; |
||
29 | import javax.swing.JScrollPane; |
||
30 | import javax.swing.JTextPane; |
||
31 | |||
32 | import org.gvsig.gui.beans.buttonspanel.ButtonsPanel; |
||
33 | 11042 | bsanchez | import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent; |
34 | import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener; |
||
35 | import org.gvsig.gui.beans.defaultbuttonspanel.DefaultButtonsPanel; |
||
36 | 10948 | nacho | /**
|
37 | * <code>ProgressPanel</code>. Muestra una ventana de di?logo para representar
|
||
38 | * una barra de progreso con su ventana de registro.
|
||
39 | *
|
||
40 | * @version 20/03/2007
|
||
41 | * @author Borja Sanchez Zamorano (borja.sanchez@iver.es)
|
||
42 | */
|
||
43 | public class ProgressPanel extends JFrame { |
||
44 | private static final long serialVersionUID = -6930857769971064429L; |
||
45 | private JPanel jPanel = null; |
||
46 | private JLabel jLabel = null; |
||
47 | private JLabel jLabel1 = null; |
||
48 | private JPanel jPanel1 = null; |
||
49 | private JPanel njp = null; |
||
50 | 11042 | bsanchez | private DefaultButtonsPanel defaultButtonsPanel = null; |
51 | 10948 | nacho | private JProgressBar jProgressBar = null; |
52 | private JScrollPane jScrollPane = null; |
||
53 | private JTextPane jTextPane = null; |
||
54 | private LogControl text = new LogControl(); |
||
55 | 11068 | bsanchez | |
56 | private boolean showPause = true; |
||
57 | 10948 | nacho | |
58 | /**
|
||
59 | * Constructor
|
||
60 | */
|
||
61 | public ProgressPanel() {
|
||
62 | initialize(); |
||
63 | } |
||
64 | |||
65 | 11068 | bsanchez | public ProgressPanel(boolean showPause) { |
66 | this.showPause = showPause;
|
||
67 | initialize(); |
||
68 | } |
||
69 | |||
70 | 10948 | nacho | /**
|
71 | * This method initializes this
|
||
72 | *
|
||
73 | */
|
||
74 | private void initialize() { |
||
75 | njp = new JPanel(); |
||
76 | njp.setLayout(new java.awt.BorderLayout(5, 5)); |
||
77 | njp.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5)); |
||
78 | this.setContentPane(njp);
|
||
79 | this.setResizable(false); |
||
80 | njp.add(getJPanel(), java.awt.BorderLayout.NORTH); |
||
81 | njp.add(getJPanel1(), java.awt.BorderLayout.CENTER); |
||
82 | njp.add(getButtonsPanel(), java.awt.BorderLayout.SOUTH); |
||
83 | showLog(false);
|
||
84 | setPercent(0);
|
||
85 | Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); |
||
86 | this.setLocation(
|
||
87 | (int) (d.getWidth() - this.getWidth()) >> 1, |
||
88 | (int) (d.getHeight() - this.getHeight()) >> 1); |
||
89 | this.show();
|
||
90 | } |
||
91 | |||
92 | /**
|
||
93 | * This method initializes jPanel
|
||
94 | *
|
||
95 | * @return javax.swing.JPanel
|
||
96 | */
|
||
97 | private JPanel getJPanel() { |
||
98 | if (jPanel == null) { |
||
99 | jLabel1 = new JLabel(); |
||
100 | jLabel = new JLabel(); |
||
101 | jLabel.setText("Espere...");
|
||
102 | jPanel = new JPanel(); |
||
103 | jPanel.setLayout(new java.awt.BorderLayout(5, 5)); |
||
104 | jPanel.add(jLabel, java.awt.BorderLayout.WEST); |
||
105 | jPanel.add(jLabel1, java.awt.BorderLayout.EAST); |
||
106 | } |
||
107 | return jPanel;
|
||
108 | } |
||
109 | |||
110 | /**
|
||
111 | * This method initializes jPanel1
|
||
112 | *
|
||
113 | * @return javax.swing.JPanel
|
||
114 | */
|
||
115 | private JPanel getJPanel1() { |
||
116 | if (jPanel1 == null) { |
||
117 | jPanel1 = new JPanel(); |
||
118 | jPanel1.setLayout(new java.awt.BorderLayout(5, 5)); |
||
119 | jPanel1.add(getJProgressBar(), java.awt.BorderLayout.NORTH); |
||
120 | jPanel1.add(getJScrollPane(), java.awt.BorderLayout.CENTER); |
||
121 | } |
||
122 | return jPanel1;
|
||
123 | } |
||
124 | |||
125 | 11042 | bsanchez | public void addButtonPressedListener(ButtonsPanelListener listener) { |
126 | getDefaultButtonsPanel().addButtonPressedListener(listener); |
||
127 | } |
||
128 | |||
129 | public void removeButtonPressedListener(ButtonsPanelListener listener) { |
||
130 | getDefaultButtonsPanel().removeButtonPressedListener(listener); |
||
131 | } |
||
132 | |||
133 | 10948 | nacho | public void showLog(boolean visible) { |
134 | 10962 | bsanchez | |
135 | 11042 | bsanchez | getButtonsPanel().getButton(ButtonsPanel.BUTTON_SEEDETAILS).setVisible(!visible); |
136 | getButtonsPanel().getButton(ButtonsPanel.BUTTON_HIDEDETAILS).setVisible(visible); |
||
137 | 10948 | nacho | jScrollPane.setVisible(visible); |
138 | |||
139 | 10962 | bsanchez | int width = (this.getWidth()<400?400:this.getWidth()); |
140 | 10948 | nacho | int height = (visible?300:120); |
141 | |||
142 | 10962 | bsanchez | this.setIgnoreRepaint(true); |
143 | 10948 | nacho | this.setSize(width, height);
|
144 | 10962 | bsanchez | this.setResizable(visible);
|
145 | this.setIgnoreRepaint(false); |
||
146 | 10948 | nacho | this.show();
|
147 | } |
||
148 | 10962 | bsanchez | |
149 | public void showPause(boolean visible) { |
||
150 | 11068 | bsanchez | if (showPause) {
|
151 | getButtonsPanel().getButton(ButtonsPanel.BUTTON_RESTART).setVisible(!visible); |
||
152 | getButtonsPanel().getButton(ButtonsPanel.BUTTON_PAUSE).setVisible(visible); |
||
153 | } else {
|
||
154 | getButtonsPanel().getButton(ButtonsPanel.BUTTON_RESTART).setVisible(false);
|
||
155 | getButtonsPanel().getButton(ButtonsPanel.BUTTON_PAUSE).setVisible(false);
|
||
156 | } |
||
157 | 10962 | bsanchez | } |
158 | 10948 | nacho | |
159 | 11042 | bsanchez | public ButtonsPanel getButtonsPanel() {
|
160 | return getDefaultButtonsPanel().getButtonsPanel();
|
||
161 | } |
||
162 | 10948 | nacho | /**
|
163 | 11042 | bsanchez | * This method initializes DefaultButtonsPanel
|
164 | 10948 | nacho | *
|
165 | 11042 | bsanchez | * @return DefaultButtonsPanel
|
166 | 10948 | nacho | */
|
167 | 11042 | bsanchez | public DefaultButtonsPanel getDefaultButtonsPanel() {
|
168 | if (defaultButtonsPanel == null) { |
||
169 | defaultButtonsPanel = new DefaultButtonsPanel(ButtonsPanel.BUTTONS_NONE);
|
||
170 | getButtonsPanel().addSeeDetails(); |
||
171 | getButtonsPanel().addHideDetails(); |
||
172 | getButtonsPanel().addPause(); |
||
173 | getButtonsPanel().addRestart(); |
||
174 | 10962 | bsanchez | showPause(true);
|
175 | 11042 | bsanchez | getButtonsPanel().addCancel(); |
176 | getButtonsPanel().setLayout(new java.awt.FlowLayout(FlowLayout.CENTER)); |
||
177 | getButtonsPanel().addButtonPressedListener(new ButtonsPanelListener() {
|
||
178 | public void actionButtonPressed(ButtonsPanelEvent e) { |
||
179 | switch (e.getButton()) {
|
||
180 | case ButtonsPanel.BUTTON_SEEDETAILS:
|
||
181 | showLog(true);
|
||
182 | break;
|
||
183 | case ButtonsPanel.BUTTON_HIDEDETAILS:
|
||
184 | showLog(false);
|
||
185 | break;
|
||
186 | case ButtonsPanel.BUTTON_PAUSE:
|
||
187 | showPause(false);
|
||
188 | break;
|
||
189 | case ButtonsPanel.BUTTON_RESTART:
|
||
190 | showPause(true);
|
||
191 | break;
|
||
192 | 10948 | nacho | } |
193 | } |
||
194 | }); |
||
195 | } |
||
196 | 11042 | bsanchez | return defaultButtonsPanel;
|
197 | 10948 | nacho | } |
198 | |||
199 | /**
|
||
200 | * This method initializes jProgressBar
|
||
201 | *
|
||
202 | * @return javax.swing.JProgressBar
|
||
203 | */
|
||
204 | private JProgressBar getJProgressBar() { |
||
205 | if (jProgressBar == null) { |
||
206 | jProgressBar = new JProgressBar(); |
||
207 | jProgressBar.setValue(50);
|
||
208 | } |
||
209 | return jProgressBar;
|
||
210 | } |
||
211 | |||
212 | /**
|
||
213 | * This method initializes jScrollPane
|
||
214 | *
|
||
215 | * @return javax.swing.JScrollPane
|
||
216 | */
|
||
217 | private JScrollPane getJScrollPane() { |
||
218 | if (jScrollPane == null) { |
||
219 | jScrollPane = new JScrollPane(); |
||
220 | jScrollPane.setViewportView(getJTextPane()); |
||
221 | jScrollPane.setVisible(false);
|
||
222 | } |
||
223 | return jScrollPane;
|
||
224 | } |
||
225 | |||
226 | /**
|
||
227 | * This method initializes jTextPane
|
||
228 | *
|
||
229 | * @return javax.swing.JTextPane
|
||
230 | */
|
||
231 | private JTextPane getJTextPane() { |
||
232 | if (jTextPane == null) { |
||
233 | jTextPane = new JTextPane(); |
||
234 | jTextPane.setEditable(false);
|
||
235 | } |
||
236 | return jTextPane;
|
||
237 | } |
||
238 | |||
239 | private void updateLog() { |
||
240 | jTextPane.setText(text.getText()); |
||
241 | 10962 | bsanchez | jTextPane.setCaretPosition(jTextPane.getText().length()); |
242 | 10948 | nacho | } |
243 | |||
244 | public void addLineLog(String line) { |
||
245 | text.addLine(line); |
||
246 | updateLog(); |
||
247 | } |
||
248 | |||
249 | public void replaceLastLineLog(String line) { |
||
250 | text.replaceLastLine(line); |
||
251 | updateLog(); |
||
252 | } |
||
253 | |||
254 | public void setLog(String value) { |
||
255 | text.setText(value); |
||
256 | updateLog(); |
||
257 | } |
||
258 | |||
259 | public int getPercent() { |
||
260 | return jProgressBar.getValue();
|
||
261 | } |
||
262 | |||
263 | public void setPercent(int value) { |
||
264 | jProgressBar.setValue(value); |
||
265 | jLabel1.setText(value + "%");
|
||
266 | } |
||
267 | |||
268 | public void setLabel(String value) { |
||
269 | jLabel.setText(value); |
||
270 | } |
||
271 | } |