svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / project / documents / gui / ProjectGeneralPropertiesPage.java @ 44502
History | View | Annotate | Download (10.9 KB)
1 | 41350 | jjdelcerro | package org.gvsig.app.project.documents.gui; |
---|---|---|---|
2 | |||
3 | import java.awt.Color; |
||
4 | import java.awt.Dimension; |
||
5 | import java.awt.FlowLayout; |
||
6 | import java.awt.GridBagConstraints; |
||
7 | import java.awt.GridBagLayout; |
||
8 | import java.awt.GridLayout; |
||
9 | import java.awt.Insets; |
||
10 | import java.io.File; |
||
11 | import javax.swing.JButton; |
||
12 | import javax.swing.JColorChooser; |
||
13 | import javax.swing.JComponent; |
||
14 | import javax.swing.JLabel; |
||
15 | import javax.swing.JPanel; |
||
16 | import javax.swing.JScrollPane; |
||
17 | import javax.swing.JTextArea; |
||
18 | import javax.swing.JTextField; |
||
19 | import org.gvsig.andami.PluginServices; |
||
20 | import org.gvsig.app.extension.ProjectExtension; |
||
21 | import org.gvsig.app.project.Project; |
||
22 | import org.gvsig.propertypage.PropertiesPage; |
||
23 | import org.gvsig.tools.ToolsLocator; |
||
24 | import org.gvsig.tools.i18n.I18nManager; |
||
25 | import org.gvsig.tools.swing.api.ToolsSwingLocator; |
||
26 | |||
27 | public class ProjectGeneralPropertiesPage extends JPanel implements PropertiesPage { |
||
28 | |||
29 | private Project project = null; |
||
30 | |||
31 | private JPanel jPanel = null; |
||
32 | private JLabel jLabel = null; |
||
33 | private JLabel jLabel1 = null; |
||
34 | private JLabel jLabel2 = null; |
||
35 | private JLabel jLabel3 = null; |
||
36 | private JLabel jLabel4 = null; |
||
37 | private JTextField txtName = null; |
||
38 | private JTextField txtPath = null; |
||
39 | private JTextField txtCreationDate = null; |
||
40 | private JTextField txtModificationDate = null; |
||
41 | private JTextField txtOwner = null; |
||
42 | private JLabel jLabel5 = null; |
||
43 | private JTextArea txtComments = null; |
||
44 | private JLabel jLabel6 = null; |
||
45 | private JLabel lblColor = null; |
||
46 | private JButton btnColor = null; |
||
47 | private JScrollPane jScrollPane = null; |
||
48 | |||
49 | public ProjectGeneralPropertiesPage(Project project) {
|
||
50 | this.project = project;
|
||
51 | initComponents(); |
||
52 | } |
||
53 | |||
54 | 43913 | jjdelcerro | @Override
|
55 | public void setData(Object data) { |
||
56 | |||
57 | } |
||
58 | |||
59 | @Override
|
||
60 | 41350 | jjdelcerro | public boolean whenAccept() { |
61 | return whenApply();
|
||
62 | } |
||
63 | |||
64 | 43913 | jjdelcerro | @Override
|
65 | 41350 | jjdelcerro | public boolean whenApply() { |
66 | project.setName(txtName.getText()); |
||
67 | project.setOwner(txtOwner.getText()); |
||
68 | project.setComments(txtComments.getText()); |
||
69 | project.setSelectionColor(lblColor.getBackground()); |
||
70 | |||
71 | return true; |
||
72 | } |
||
73 | |||
74 | 43913 | jjdelcerro | @Override
|
75 | 41350 | jjdelcerro | public boolean whenCancel() { |
76 | return true; |
||
77 | } |
||
78 | |||
79 | 43913 | jjdelcerro | @Override
|
80 | 41350 | jjdelcerro | public String getTitle() { |
81 | I18nManager i18nManager = ToolsLocator.getI18nManager(); |
||
82 | return i18nManager.getTranslation("General"); |
||
83 | } |
||
84 | |||
85 | public int getPriority() { |
||
86 | return 1000; |
||
87 | } |
||
88 | |||
89 | public JComponent asJComponent() { |
||
90 | return this; |
||
91 | } |
||
92 | |||
93 | private void initComponents() { |
||
94 | setLayout(new GridLayout(1, 1, 0, 0)); |
||
95 | add(getJPanel()); |
||
96 | |||
97 | getTxtName().setText(project.getName()); |
||
98 | |||
99 | String path = ProjectExtension.getPath();
|
||
100 | |||
101 | if ( path != null ) { |
||
102 | File f = new File(path); |
||
103 | getTxtPath().setText(f.toString()); |
||
104 | } else {
|
||
105 | getTxtPath().setText("");
|
||
106 | } |
||
107 | |||
108 | getTxtOwner().setText(project.getOwner()); |
||
109 | getTxtComments().setText(project.getComments()); |
||
110 | getTxtCreationDate().setText(project.getCreationDate()); |
||
111 | getTxtModificationDate().setText(project.getModificationDate()); |
||
112 | |||
113 | getLblColor().setBackground(project.getSelectionColor()); |
||
114 | } |
||
115 | |||
116 | /**
|
||
117 | * This method initializes jPanel
|
||
118 | *
|
||
119 | * @return JPanel
|
||
120 | */
|
||
121 | private JPanel getJPanel() { |
||
122 | if ( jPanel == null ) { |
||
123 | |||
124 | jPanel = new JPanel(new GridBagLayout()); |
||
125 | GridBagConstraints c = new GridBagConstraints(); |
||
126 | c.insets = new Insets(2, 5, 0, 5); |
||
127 | c.gridy = -1;
|
||
128 | |||
129 | addRow(c, getJLabel(), getTxtName()); |
||
130 | addRow(c, getJLabel1(), getTxtPath()); |
||
131 | addRow(c, getJLabel2(), getTxtCreationDate()); |
||
132 | addRow(c, getJLabel3(), getTxtModificationDate()); |
||
133 | addRow(c, getJLabel4(), getTxtOwner()); |
||
134 | |||
135 | c.anchor = GridBagConstraints.WEST;
|
||
136 | c.weightx = 0.0d;
|
||
137 | c.gridx = 0;
|
||
138 | c.gridy++; |
||
139 | jPanel.add(getJLabel6(), c); |
||
140 | |||
141 | JPanel colorPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); |
||
142 | colorPanel.add(getLblColor()); |
||
143 | colorPanel.add(getBtnColor()); |
||
144 | |||
145 | c.fill = GridBagConstraints.HORIZONTAL;
|
||
146 | c.weightx = 1.0d;
|
||
147 | c.gridx = 1;
|
||
148 | jPanel.add(colorPanel, c); |
||
149 | |||
150 | c.anchor = GridBagConstraints.WEST;
|
||
151 | c.weightx = 0.0d;
|
||
152 | c.gridx = 0;
|
||
153 | c.gridy++; |
||
154 | jPanel.add(getJLabel5(), c); |
||
155 | |||
156 | c.fill = GridBagConstraints.BOTH;
|
||
157 | c.weightx = 1.0d;
|
||
158 | c.gridy++; |
||
159 | c.gridwidth = 2;
|
||
160 | jPanel.add(getJScrollPane(), c); |
||
161 | |||
162 | c.anchor = GridBagConstraints.EAST;
|
||
163 | c.gridx = 0;
|
||
164 | c.gridwidth = 2;
|
||
165 | c.gridy++; |
||
166 | c.weightx = 1.0d;
|
||
167 | } |
||
168 | |||
169 | return jPanel;
|
||
170 | } |
||
171 | |||
172 | private void addRow(GridBagConstraints c, JComponent label, JComponent text) { |
||
173 | c.anchor = GridBagConstraints.WEST;
|
||
174 | c.weightx = 0.0d;
|
||
175 | c.gridx = 0;
|
||
176 | c.gridy++; |
||
177 | jPanel.add(label, c); |
||
178 | |||
179 | c.fill = GridBagConstraints.HORIZONTAL;
|
||
180 | c.weightx = 1.0d;
|
||
181 | c.gridx = 1;
|
||
182 | jPanel.add(text, c); |
||
183 | } |
||
184 | |||
185 | /**
|
||
186 | * This method initializes jLabel
|
||
187 | *
|
||
188 | * @return JLabel
|
||
189 | */
|
||
190 | private JLabel getJLabel() { |
||
191 | if ( jLabel == null ) { |
||
192 | jLabel = new JLabel(); |
||
193 | jLabel.setText(PluginServices.getText(this, "nombre_sesion") + ":"); |
||
194 | } |
||
195 | |||
196 | return jLabel;
|
||
197 | } |
||
198 | |||
199 | /**
|
||
200 | * This method initializes jLabel1
|
||
201 | *
|
||
202 | * @return JLabel
|
||
203 | */
|
||
204 | private JLabel getJLabel1() { |
||
205 | if ( jLabel1 == null ) { |
||
206 | jLabel1 = new JLabel(); |
||
207 | jLabel1.setText(PluginServices.getText(this, "path") + ":"); |
||
208 | } |
||
209 | |||
210 | return jLabel1;
|
||
211 | } |
||
212 | |||
213 | /**
|
||
214 | * This method initializes jLabel2
|
||
215 | *
|
||
216 | * @return JLabel
|
||
217 | */
|
||
218 | private JLabel getJLabel2() { |
||
219 | if ( jLabel2 == null ) { |
||
220 | jLabel2 = new JLabel(); |
||
221 | jLabel2 |
||
222 | .setText(PluginServices.getText(this, "creation_date") + ":"); |
||
223 | } |
||
224 | |||
225 | return jLabel2;
|
||
226 | } |
||
227 | |||
228 | /**
|
||
229 | * This method initializes jLabel3
|
||
230 | *
|
||
231 | * @return JLabel
|
||
232 | */
|
||
233 | private JLabel getJLabel3() { |
||
234 | if ( jLabel3 == null ) { |
||
235 | jLabel3 = new JLabel(); |
||
236 | jLabel3.setText(PluginServices.getText(this, "modification_date") |
||
237 | + ":");
|
||
238 | } |
||
239 | |||
240 | return jLabel3;
|
||
241 | } |
||
242 | |||
243 | /**
|
||
244 | * This method initializes jLabel4
|
||
245 | *
|
||
246 | * @return JLabel
|
||
247 | */
|
||
248 | private JLabel getJLabel4() { |
||
249 | if ( jLabel4 == null ) { |
||
250 | jLabel4 = new JLabel(); |
||
251 | jLabel4.setText(PluginServices.getText(this, "owner") + ":"); |
||
252 | } |
||
253 | |||
254 | return jLabel4;
|
||
255 | } |
||
256 | |||
257 | /**
|
||
258 | * This method initializes txtName
|
||
259 | *
|
||
260 | * @return JTextField
|
||
261 | */
|
||
262 | private JTextField getTxtName() { |
||
263 | if ( txtName == null ) { |
||
264 | txtName = new JTextField(20); |
||
265 | } |
||
266 | |||
267 | return txtName;
|
||
268 | } |
||
269 | |||
270 | /**
|
||
271 | * This method initializes txtPath
|
||
272 | *
|
||
273 | * @return JTextField
|
||
274 | */
|
||
275 | private JTextField getTxtPath() { |
||
276 | if ( txtPath == null ) { |
||
277 | txtPath = new JTextField(20); |
||
278 | txtPath.setEditable(false);
|
||
279 | txtPath.setBackground(java.awt.Color.white); |
||
280 | } |
||
281 | |||
282 | return txtPath;
|
||
283 | } |
||
284 | |||
285 | /**
|
||
286 | * This method initializes txtCreationDate
|
||
287 | *
|
||
288 | * @return JTextField
|
||
289 | */
|
||
290 | private JTextField getTxtCreationDate() { |
||
291 | if ( txtCreationDate == null ) { |
||
292 | txtCreationDate = new JTextField(20); |
||
293 | txtCreationDate.setEditable(false);
|
||
294 | txtCreationDate.setBackground(java.awt.Color.white); |
||
295 | } |
||
296 | |||
297 | return txtCreationDate;
|
||
298 | } |
||
299 | |||
300 | /**
|
||
301 | * This method initializes txtModificationDate
|
||
302 | *
|
||
303 | * @return JTextField
|
||
304 | */
|
||
305 | private JTextField getTxtModificationDate() { |
||
306 | if ( txtModificationDate == null ) { |
||
307 | txtModificationDate = new JTextField(20); |
||
308 | txtModificationDate.setEditable(false);
|
||
309 | txtModificationDate.setBackground(java.awt.Color.white); |
||
310 | } |
||
311 | |||
312 | return txtModificationDate;
|
||
313 | } |
||
314 | |||
315 | /**
|
||
316 | * This method initializes txtOwner
|
||
317 | *
|
||
318 | * @return JTextField
|
||
319 | */
|
||
320 | private JTextField getTxtOwner() { |
||
321 | if ( txtOwner == null ) { |
||
322 | txtOwner = new JTextField(20); |
||
323 | } |
||
324 | |||
325 | return txtOwner;
|
||
326 | } |
||
327 | |||
328 | /**
|
||
329 | * This method initializes jLabel5
|
||
330 | *
|
||
331 | * @return JLabel
|
||
332 | */
|
||
333 | private JLabel getJLabel5() { |
||
334 | if ( jLabel5 == null ) { |
||
335 | jLabel5 = new JLabel(); |
||
336 | jLabel5.setText(PluginServices.getText(this, "comentarios") + ":"); |
||
337 | } |
||
338 | |||
339 | return jLabel5;
|
||
340 | } |
||
341 | |||
342 | /**
|
||
343 | * This method initializes txtComments
|
||
344 | *
|
||
345 | * @return JTextArea
|
||
346 | */
|
||
347 | private JTextArea getTxtComments() { |
||
348 | if ( txtComments == null ) { |
||
349 | txtComments = new JTextArea(); |
||
350 | txtComments.setRows(4);
|
||
351 | txtComments.setColumns(20);
|
||
352 | } |
||
353 | |||
354 | return txtComments;
|
||
355 | } |
||
356 | |||
357 | /**
|
||
358 | * This method initializes jLabel6
|
||
359 | *
|
||
360 | * @return JLabel
|
||
361 | */
|
||
362 | private JLabel getJLabel6() { |
||
363 | if ( jLabel6 == null ) { |
||
364 | jLabel6 = new JLabel(); |
||
365 | jLabel6.setText(PluginServices.getText(this, "selection_color") |
||
366 | + ":");
|
||
367 | } |
||
368 | |||
369 | return jLabel6;
|
||
370 | } |
||
371 | |||
372 | /**
|
||
373 | * This method initializes lblColor
|
||
374 | *
|
||
375 | * @return JLabel
|
||
376 | */
|
||
377 | private JLabel getLblColor() { |
||
378 | if ( lblColor == null ) { |
||
379 | lblColor = new JLabel(); |
||
380 | |||
381 | lblColor.setPreferredSize(getBtnColor().getPreferredSize()); |
||
382 | lblColor.setOpaque(true);
|
||
383 | } |
||
384 | |||
385 | return lblColor;
|
||
386 | } |
||
387 | |||
388 | /**
|
||
389 | * This method initializes btnColor
|
||
390 | *
|
||
391 | * @return JButton
|
||
392 | */
|
||
393 | private JButton getBtnColor() { |
||
394 | if ( btnColor == null ) { |
||
395 | btnColor |
||
396 | = ToolsSwingLocator.getUsabilitySwingManager().createJButton( |
||
397 | "...");
|
||
398 | |||
399 | btnColor.addActionListener(new java.awt.event.ActionListener() {
|
||
400 | |||
401 | 43913 | jjdelcerro | @Override
|
402 | 41350 | jjdelcerro | public void actionPerformed(java.awt.event.ActionEvent e) { |
403 | Color ret
|
||
404 | = JColorChooser.showDialog(ProjectGeneralPropertiesPage.this,
|
||
405 | PluginServices.getText(this, "selection_color"), |
||
406 | lblColor.getBackground()); |
||
407 | |||
408 | if ( ret != null ) { |
||
409 | lblColor.setBackground(ret); |
||
410 | } |
||
411 | } |
||
412 | }); |
||
413 | } |
||
414 | |||
415 | return btnColor;
|
||
416 | } |
||
417 | |||
418 | /**
|
||
419 | * This method initializes jScrollPane
|
||
420 | *
|
||
421 | * @return JScrollPane
|
||
422 | */
|
||
423 | private JScrollPane getJScrollPane() { |
||
424 | if ( jScrollPane == null ) { |
||
425 | jScrollPane = new JScrollPane(getTxtComments()); |
||
426 | Dimension dim = getTxtComments().getPreferredSize();
|
||
427 | jScrollPane |
||
428 | .setMinimumSize(new Dimension(dim.width, dim.height + 10)); |
||
429 | } |
||
430 | |||
431 | return jScrollPane;
|
||
432 | } |
||
433 | |||
434 | } |