svn-gvsig-desktop / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / project / documents / view / gui / ViewProperties.java @ 40331
History | View | Annotate | Download (23.6 KB)
1 | 36475 | cordinyana | /* gvSIG. Geographic Information System of the Valencian Government
|
---|---|---|---|
2 | 7304 | caballero | *
|
3 | 36475 | cordinyana | * Copyright (C) 2007-2008 Infrastructures and Transports Department
|
4 | * of the Valencian Government (CIT)
|
||
5 | *
|
||
6 | 7304 | caballero | * This program is free software; you can redistribute it and/or
|
7 | * modify it under the terms of the GNU General Public License
|
||
8 | * as published by the Free Software Foundation; either version 2
|
||
9 | * of the License, or (at your option) any later version.
|
||
10 | 36475 | cordinyana | *
|
11 | 7304 | caballero | * This program is distributed in the hope that it will be useful,
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | 36475 | cordinyana | *
|
16 | 7304 | caballero | * You should have received a copy of the GNU General Public License
|
17 | * along with this program; if not, write to the Free Software
|
||
18 | 36475 | cordinyana | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 | * MA 02110-1301, USA.
|
||
20 | *
|
||
21 | 7304 | caballero | */
|
22 | 29596 | jpiera | package org.gvsig.app.project.documents.view.gui; |
23 | 7304 | caballero | |
24 | 38875 | jldominguez | import java.awt.BorderLayout; |
25 | 7304 | caballero | import java.awt.Color; |
26 | 30156 | vcaballero | import java.awt.Component; |
27 | 7304 | caballero | import java.awt.Dimension; |
28 | 38112 | cordinyana | import java.awt.GridBagConstraints; |
29 | import java.awt.GridBagLayout; |
||
30 | 38874 | jldominguez | import java.awt.GridLayout; |
31 | 38112 | cordinyana | import java.awt.Insets; |
32 | 7304 | caballero | import java.awt.event.ActionListener; |
33 | 38875 | jldominguez | import java.awt.event.MouseEvent; |
34 | import java.awt.event.MouseListener; |
||
35 | 31496 | jjdelcerro | import java.util.List; |
36 | 7304 | caballero | |
37 | 38112 | cordinyana | import javax.swing.BorderFactory; |
38 | 36475 | cordinyana | import javax.swing.JButton; |
39 | 38875 | jldominguez | import javax.swing.JCheckBox; |
40 | 7304 | caballero | import javax.swing.JColorChooser; |
41 | 24964 | vcaballero | import javax.swing.JComboBox; |
42 | 38112 | cordinyana | import javax.swing.JComponent; |
43 | 38874 | jldominguez | import javax.swing.JLabel; |
44 | 30156 | vcaballero | import javax.swing.JOptionPane; |
45 | 7304 | caballero | import javax.swing.JPanel; |
46 | |||
47 | 9956 | caballero | import org.cresques.cts.IProjection; |
48 | 36475 | cordinyana | |
49 | 29596 | jpiera | import org.gvsig.andami.PluginServices; |
50 | import org.gvsig.andami.ui.mdiManager.SingletonWindow; |
||
51 | import org.gvsig.andami.ui.mdiManager.WindowInfo; |
||
52 | import org.gvsig.app.gui.JComboBoxUnits; |
||
53 | import org.gvsig.app.gui.panels.CRSSelectPanel; |
||
54 | 38875 | jldominguez | import org.gvsig.app.gui.preferencespage.ViewPage; |
55 | 38876 | jldominguez | import org.gvsig.app.project.DefaultProject; |
56 | 30156 | vcaballero | import org.gvsig.app.project.Project; |
57 | 31496 | jjdelcerro | import org.gvsig.app.project.ProjectManager; |
58 | 38875 | jldominguez | import org.gvsig.app.project.ProjectPreferences; |
59 | 31496 | jjdelcerro | import org.gvsig.app.project.documents.Document; |
60 | import org.gvsig.app.project.documents.view.DefaultViewDocument; |
||
61 | import org.gvsig.app.project.documents.view.ViewManager; |
||
62 | 38876 | jldominguez | import org.gvsig.fmap.crs.CRSFactory; |
63 | 20994 | jmvivo | import org.gvsig.fmap.mapcontext.MapContext; |
64 | 7304 | caballero | import org.gvsig.gui.beans.AcceptCancelPanel; |
65 | 38112 | cordinyana | import org.gvsig.i18n.Messages; |
66 | 38875 | jldominguez | import org.gvsig.utils.XMLEntity; |
67 | 7304 | caballero | |
68 | /**
|
||
69 | * Dialogo donde se muestran las propiedades de una vista
|
||
70 | 36475 | cordinyana | *
|
71 | 7304 | caballero | * @author Fernando Gonz?lez Cort?s
|
72 | 38112 | cordinyana | * @author gvSIG Team
|
73 | 7304 | caballero | */
|
74 | 36475 | cordinyana | public class ViewProperties extends JPanel implements SingletonWindow { |
75 | |||
76 | private static final long serialVersionUID = 5328865370833315385L; |
||
77 | 38874 | jldominguez | |
78 | public static final int FIXED_WIDTH = 300; |
||
79 | |||
80 | 38112 | cordinyana | private javax.swing.JLabel jLabelName = null; |
81 | 36475 | cordinyana | private javax.swing.JTextField txtName = null; |
82 | 38112 | cordinyana | private javax.swing.JLabel jLabelDate = null; |
83 | 36475 | cordinyana | private javax.swing.JTextField txtDate = null; |
84 | 38112 | cordinyana | private javax.swing.JLabel jLabelOwner = null; |
85 | 36475 | cordinyana | private javax.swing.JTextField txtOwner = null; |
86 | 38112 | cordinyana | private javax.swing.JLabel jLabelMapUnits = null; |
87 | 36475 | cordinyana | private javax.swing.JComboBox cmbMapUnits = null; |
88 | 38112 | cordinyana | private javax.swing.JLabel jLabelDistanceUnits = null; |
89 | 36475 | cordinyana | private javax.swing.JComboBox cmbDistanceUnits = null; |
90 | 38112 | cordinyana | private javax.swing.JLabel jLabelAreaUnits = null; |
91 | 36475 | cordinyana | private javax.swing.JTextArea txtComments = null; |
92 | 38112 | cordinyana | private javax.swing.JLabel jLabelColor = null; |
93 | private javax.swing.JLabel jLabelComments = null; |
||
94 | 38930 | jldominguez | private javax.swing.JPanel lblColor = null; |
95 | 38875 | jldominguez | |
96 | private JCheckBox setAsDefCrsChk = null; |
||
97 | private ViewProperties self = null; |
||
98 | 7304 | caballero | |
99 | 36475 | cordinyana | private Color backColor = null; |
100 | 7304 | caballero | |
101 | 36475 | cordinyana | private JButton btnColor = null; |
102 | private DefaultViewDocument view = null; |
||
103 | private javax.swing.JScrollPane jScrollPane = null; |
||
104 | protected CRSSelectPanel jPanelProj = null; |
||
105 | private AcceptCancelPanel okCancelPanel = null; |
||
106 | private boolean isAcceppted = false; |
||
107 | private JComboBox cmbDistanceArea = null; |
||
108 | 7304 | caballero | |
109 | 36475 | cordinyana | /**
|
110 | * This is the default constructor
|
||
111 | *
|
||
112 | * @param f
|
||
113 | * Frame padre del dialogo
|
||
114 | * @param v
|
||
115 | * Vista que se representa
|
||
116 | */
|
||
117 | public ViewProperties(DefaultViewDocument v) {
|
||
118 | view = v; |
||
119 | initialize(); |
||
120 | 38875 | jldominguez | self = this;
|
121 | 36475 | cordinyana | } |
122 | 9532 | caballero | |
123 | 36475 | cordinyana | /**
|
124 | * This method initializes this
|
||
125 | */
|
||
126 | private void initialize() { |
||
127 | 38112 | cordinyana | setLayout(new GridBagLayout()); |
128 | setBorder(BorderFactory.createEmptyBorder(4, 5, 4, 5)); |
||
129 | 9532 | caballero | |
130 | 38112 | cordinyana | GridBagConstraints c = new GridBagConstraints(); |
131 | c.insets = new Insets(2, 5, 2, 5); |
||
132 | c.gridy = -1;
|
||
133 | 9532 | caballero | |
134 | 38112 | cordinyana | addRow(c, getJLabelName(), getTxtName()); |
135 | addRow(c, getJLabelDate(), getTxtDate()); |
||
136 | addRow(c, getJLabelOwner(), getTxtOwner()); |
||
137 | addRow(c, getJLabelMapUnits(), getCmbMapUnits()); |
||
138 | addRow(c, getJLabelDistanceUnits(), getCmbDistanceUnits()); |
||
139 | addRow(c, getJLabelAreaUnits(), getCmbDistanceArea()); |
||
140 | 9532 | caballero | |
141 | 38874 | jldominguez | // some extra space
|
142 | addRow(c, new JLabel(" "), new JLabel(" ")); |
||
143 | |||
144 | GridLayout gl = new GridLayout(1,2); |
||
145 | JPanel colorPanel = new JPanel(gl); |
||
146 | colorPanel.add(getJLabelColor()); |
||
147 | 38930 | jldominguez | JPanel secondHalfPanel = new JPanel(new GridBagLayout()); |
148 | |||
149 | GridBagConstraints c2 = new GridBagConstraints(); |
||
150 | 38875 | jldominguez | |
151 | 38930 | jldominguez | c2.fill = GridBagConstraints.BOTH;
|
152 | c2.weightx = 1.0; //request any extra hor space |
||
153 | c2.gridx = 0;
|
||
154 | c2.gridwidth = 1;
|
||
155 | c2.gridy = 0;
|
||
156 | 38875 | jldominguez | |
157 | 38930 | jldominguez | JPanel auxPanel = new JPanel(new GridLayout(1,2)); |
158 | auxPanel.add(getLblColor(secondHalfPanel.getBackground())); |
||
159 | auxPanel.add(new JLabel("")); |
||
160 | secondHalfPanel.add(auxPanel, c2); |
||
161 | |||
162 | c2.fill = GridBagConstraints.NONE;
|
||
163 | c2.weightx = 0.0;
|
||
164 | c2.gridx = 1;
|
||
165 | secondHalfPanel.add(getBtnColor(), c2); |
||
166 | |||
167 | 38874 | jldominguez | colorPanel.add(secondHalfPanel); |
168 | |||
169 | c.gridx = 0;
|
||
170 | c.gridwidth = 2;
|
||
171 | c.gridy++; |
||
172 | add(colorPanel, c); |
||
173 | c.gridwidth = 1;
|
||
174 | |||
175 | 38112 | cordinyana | c.anchor = GridBagConstraints.WEST;
|
176 | c.weightx = 0.0d;
|
||
177 | c.gridx = 0;
|
||
178 | c.gridwidth = GridBagConstraints.REMAINDER;
|
||
179 | c.gridy++; |
||
180 | c.weightx = 1.0d;
|
||
181 | c.fill = GridBagConstraints.HORIZONTAL;
|
||
182 | add(getJPanelProj(), c); |
||
183 | 38875 | jldominguez | |
184 | // ============ set current as app default CRS
|
||
185 | c.anchor = GridBagConstraints.CENTER;
|
||
186 | c.gridy++; |
||
187 | JPanel auxp = new JPanel(new BorderLayout()); |
||
188 | auxp.add(getSetAsDefaultCrsCheckbox(), BorderLayout.CENTER);
|
||
189 | add(auxp, c); |
||
190 | // =============================
|
||
191 | |||
192 | // some extra space
|
||
193 | addRow(c, new JLabel(" "), new JLabel(" ")); |
||
194 | 38112 | cordinyana | |
195 | c.anchor = GridBagConstraints.WEST;
|
||
196 | c.weightx = 0.0d;
|
||
197 | c.gridx = 0;
|
||
198 | c.gridy++; |
||
199 | add(getJLabelComments(), c); |
||
200 | |||
201 | c.fill = GridBagConstraints.BOTH;
|
||
202 | c.weightx = 1.0d;
|
||
203 | c.gridy++; |
||
204 | c.gridwidth = 2;
|
||
205 | add(getJScrollPaneComments(), c); |
||
206 | |||
207 | c.anchor = GridBagConstraints.EAST;
|
||
208 | c.gridx = 0;
|
||
209 | c.gridwidth = 2;
|
||
210 | c.gridy++; |
||
211 | c.weightx = 1.0d;
|
||
212 | |||
213 | add(getOkCancelPanel(), c); |
||
214 | 36475 | cordinyana | } |
215 | 7304 | caballero | |
216 | 38112 | cordinyana | |
217 | |||
218 | 38874 | jldominguez | |
219 | 38875 | jldominguez | /**
|
220 | * @return
|
||
221 | */
|
||
222 | private JCheckBox getSetAsDefaultCrsCheckbox() { |
||
223 | |||
224 | if (setAsDefCrsChk == null) { |
||
225 | setAsDefCrsChk = new JCheckBox(Messages.getText( |
||
226 | "_Set_this_CRS_as_app_default"));
|
||
227 | updateSetAsDefaultCRSChk(); |
||
228 | } |
||
229 | return setAsDefCrsChk;
|
||
230 | } |
||
231 | |||
232 | |||
233 | private String getAppDefaultCRS() { |
||
234 | ProjectPreferences pp = new ProjectPreferences();
|
||
235 | IProjection curr_def = pp.getDefaultProjection(); |
||
236 | return curr_def.getAbrev();
|
||
237 | } |
||
238 | |||
239 | private void setAppDefaultCRS(String abbrev) { |
||
240 | PluginServices ps = PluginServices.getPluginServices(this);
|
||
241 | XMLEntity xml = ps.getPersistentXML(); |
||
242 | xml.putProperty(ViewPage.DEFAULT_PROJECTION_KEY_NAME, abbrev); |
||
243 | 38876 | jldominguez | IProjection proj = CRSFactory.getCRS(abbrev); |
244 | DefaultProject.setDefaultProjection(proj); |
||
245 | 38875 | jldominguez | } |
246 | |||
247 | private void updateSetAsDefaultCRSChk() { |
||
248 | |||
249 | 38877 | jldominguez | IProjection view_proj = this.jPanelProj.getCurProj();
|
250 | 38875 | jldominguez | String view_abbrev = view_proj.getAbrev();
|
251 | |||
252 | String curr_app_crs_def = getAppDefaultCRS();
|
||
253 | if (view_abbrev.compareToIgnoreCase(curr_app_crs_def) == 0) { |
||
254 | // same as curr default
|
||
255 | this.getSetAsDefaultCrsCheckbox().setSelected(true); |
||
256 | this.getSetAsDefaultCrsCheckbox().setEnabled(false); |
||
257 | } else {
|
||
258 | this.getSetAsDefaultCrsCheckbox().setEnabled(true); |
||
259 | this.getSetAsDefaultCrsCheckbox().setSelected(false); |
||
260 | } |
||
261 | } |
||
262 | |||
263 | 38112 | cordinyana | private void addRow(GridBagConstraints c, JComponent label, JComponent text) { |
264 | c.anchor = GridBagConstraints.WEST;
|
||
265 | c.weightx = 0.0d;
|
||
266 | c.gridx = 0;
|
||
267 | c.gridy++; |
||
268 | add(label, c); |
||
269 | |||
270 | c.fill = GridBagConstraints.HORIZONTAL;
|
||
271 | c.weightx = 1.0d;
|
||
272 | c.gridx = 1;
|
||
273 | add(text, c); |
||
274 | } |
||
275 | 38874 | jldominguez | |
276 | 38112 | cordinyana | |
277 | 38874 | jldominguez | |
278 | 36475 | cordinyana | /**
|
279 | * This method initializes jLabel
|
||
280 | *
|
||
281 | * @return javax.swing.JLabel
|
||
282 | */
|
||
283 | 38112 | cordinyana | private javax.swing.JLabel getJLabelName() {
|
284 | if (jLabelName == null) { |
||
285 | jLabelName = |
||
286 | new javax.swing.JLabel(Messages.getText("nombre") + ":"); |
||
287 | 36475 | cordinyana | } |
288 | 7304 | caballero | |
289 | 38112 | cordinyana | return jLabelName;
|
290 | 36475 | cordinyana | } |
291 | 7304 | caballero | |
292 | 36475 | cordinyana | /**
|
293 | * This method initializes txtName
|
||
294 | *
|
||
295 | * @return javax.swing.JTextField
|
||
296 | */
|
||
297 | private javax.swing.JTextField getTxtName() {
|
||
298 | if (txtName == null) { |
||
299 | 38112 | cordinyana | txtName = new javax.swing.JTextField(view.getName());
|
300 | 36475 | cordinyana | } |
301 | 9532 | caballero | |
302 | 36475 | cordinyana | return txtName;
|
303 | } |
||
304 | 7304 | caballero | |
305 | 36475 | cordinyana | /**
|
306 | * This method initializes jLabel1
|
||
307 | *
|
||
308 | * @return javax.swing.JLabel
|
||
309 | */
|
||
310 | 38112 | cordinyana | private javax.swing.JLabel getJLabelDate() {
|
311 | if (jLabelDate == null) { |
||
312 | jLabelDate = |
||
313 | new javax.swing.JLabel(Messages.getText("creation_date") + ":"); |
||
314 | 36475 | cordinyana | } |
315 | 7304 | caballero | |
316 | 38112 | cordinyana | return jLabelDate;
|
317 | 36475 | cordinyana | } |
318 | 7304 | caballero | |
319 | 36475 | cordinyana | /**
|
320 | * This method initializes txtDate
|
||
321 | *
|
||
322 | * @return javax.swing.JTextField
|
||
323 | */
|
||
324 | private javax.swing.JTextField getTxtDate() {
|
||
325 | if (txtDate == null) { |
||
326 | 38112 | cordinyana | txtDate = new javax.swing.JTextField(view.getCreationDate());
|
327 | 36475 | cordinyana | txtDate.setEditable(false);
|
328 | txtDate.setBackground(java.awt.Color.white); |
||
329 | } |
||
330 | 7304 | caballero | |
331 | 36475 | cordinyana | return txtDate;
|
332 | } |
||
333 | 7304 | caballero | |
334 | 36475 | cordinyana | /**
|
335 | * This method initializes jLabel2
|
||
336 | *
|
||
337 | * @return javax.swing.JLabel
|
||
338 | */
|
||
339 | 38112 | cordinyana | private javax.swing.JLabel getJLabelOwner() {
|
340 | if (jLabelOwner == null) { |
||
341 | jLabelOwner = |
||
342 | new javax.swing.JLabel(Messages.getText("owner") + ":"); |
||
343 | 36475 | cordinyana | } |
344 | 7304 | caballero | |
345 | 38112 | cordinyana | return jLabelOwner;
|
346 | 36475 | cordinyana | } |
347 | 7304 | caballero | |
348 | 36475 | cordinyana | /**
|
349 | * This method initializes txtOwner
|
||
350 | *
|
||
351 | * @return javax.swing.JTextField
|
||
352 | */
|
||
353 | private javax.swing.JTextField getTxtOwner() {
|
||
354 | if (txtOwner == null) { |
||
355 | 38112 | cordinyana | txtOwner = new javax.swing.JTextField(view.getOwner());
|
356 | 36475 | cordinyana | } |
357 | 7304 | caballero | |
358 | 36475 | cordinyana | return txtOwner;
|
359 | } |
||
360 | 7304 | caballero | |
361 | 36475 | cordinyana | /**
|
362 | * This method initializes jLabel4
|
||
363 | *
|
||
364 | * @return javax.swing.JLabel
|
||
365 | */
|
||
366 | 38112 | cordinyana | private javax.swing.JLabel getJLabelMapUnits() {
|
367 | if (jLabelMapUnits == null) { |
||
368 | jLabelMapUnits = |
||
369 | new javax.swing.JLabel(Messages.getText("map_units") + ":"); |
||
370 | 36475 | cordinyana | } |
371 | 7304 | caballero | |
372 | 38112 | cordinyana | return jLabelMapUnits;
|
373 | 36475 | cordinyana | } |
374 | 7304 | caballero | |
375 | 36475 | cordinyana | /**
|
376 | * This method initializes cmbMapUnits
|
||
377 | *
|
||
378 | * @return javax.swing.JComboBox
|
||
379 | */
|
||
380 | private javax.swing.JComboBox getCmbMapUnits() {
|
||
381 | if (cmbMapUnits == null |
||
382 | || MapContext.getDistanceNames().length > cmbMapUnits |
||
383 | .getItemCount()) { |
||
384 | cmbMapUnits = new JComboBoxUnits(false); |
||
385 | 7304 | caballero | |
386 | 36475 | cordinyana | IProjection proj = view.getProjection(); |
387 | if (!proj.isProjected()) {
|
||
388 | 38112 | cordinyana | cmbMapUnits.setSelectedItem(Messages.getText("Grados")); // deegree |
389 | 36475 | cordinyana | cmbMapUnits.setEnabled(false);
|
390 | } else {
|
||
391 | if (!(cmbMapUnits.getItemCount() == MapContext
|
||
392 | .getDistanceNames().length)) { |
||
393 | 38112 | cordinyana | cmbMapUnits.removeItem(Messages.getText("Grados")); // deegree |
394 | 36475 | cordinyana | view.getMapContext().getViewPort().setMapUnits(1);
|
395 | } |
||
396 | cmbMapUnits.setSelectedIndex(view.getMapContext().getViewPort() |
||
397 | .getMapUnits()); |
||
398 | cmbMapUnits.setEnabled(true);
|
||
399 | } |
||
400 | } |
||
401 | 11465 | jaume | |
402 | 36475 | cordinyana | return cmbMapUnits;
|
403 | } |
||
404 | 9956 | caballero | |
405 | 36475 | cordinyana | /**
|
406 | * This method initializes jLabel5
|
||
407 | *
|
||
408 | * @return javax.swing.JLabel
|
||
409 | */
|
||
410 | 38112 | cordinyana | private javax.swing.JLabel getJLabelDistanceUnits() {
|
411 | if (jLabelDistanceUnits == null) { |
||
412 | jLabelDistanceUnits = |
||
413 | new javax.swing.JLabel(Messages.getText("distance_units") + ":"); |
||
414 | 36475 | cordinyana | } |
415 | 7304 | caballero | |
416 | 38112 | cordinyana | return jLabelDistanceUnits;
|
417 | 36475 | cordinyana | } |
418 | 7304 | caballero | |
419 | 36475 | cordinyana | /**
|
420 | 38112 | cordinyana | * This method initializes jLabel6
|
421 | *
|
||
422 | * @return javax.swing.JLabel
|
||
423 | */
|
||
424 | private javax.swing.JLabel getJLabelAreaUnits() {
|
||
425 | if (jLabelAreaUnits == null) { |
||
426 | jLabelAreaUnits = |
||
427 | new javax.swing.JLabel(Messages.getText("unidades_area") + ":"); |
||
428 | } |
||
429 | |||
430 | return jLabelAreaUnits;
|
||
431 | } |
||
432 | |||
433 | /**
|
||
434 | 36475 | cordinyana | * This method initializes cmbDistanceUnits
|
435 | *
|
||
436 | * @return javax.swing.JComboBox
|
||
437 | */
|
||
438 | private javax.swing.JComboBox getCmbDistanceUnits() {
|
||
439 | if (cmbDistanceUnits == null |
||
440 | || MapContext.getDistanceNames().length > cmbDistanceUnits |
||
441 | .getItemCount()) { |
||
442 | cmbDistanceUnits = new JComboBoxUnits(false); |
||
443 | 38112 | cordinyana | cmbDistanceUnits.setSelectedIndex(view.getMapContext() |
444 | .getViewPort().getDistanceUnits()); |
||
445 | 36475 | cordinyana | } |
446 | 7304 | caballero | |
447 | 36475 | cordinyana | return cmbDistanceUnits;
|
448 | } |
||
449 | 7304 | caballero | |
450 | 36475 | cordinyana | /**
|
451 | * This method initializes jLabel6
|
||
452 | *
|
||
453 | * @return javax.swing.JLabel
|
||
454 | */
|
||
455 | 38112 | cordinyana | private javax.swing.JLabel getJLabelComments() {
|
456 | if (jLabelComments == null) { |
||
457 | jLabelComments = |
||
458 | new javax.swing.JLabel(Messages.getText("comentarios") + ":"); |
||
459 | jLabelComments |
||
460 | .setHorizontalAlignment(javax.swing.SwingConstants.LEFT); |
||
461 | jLabelComments |
||
462 | .setHorizontalTextPosition(javax.swing.SwingConstants.LEFT); |
||
463 | 36475 | cordinyana | } |
464 | 7304 | caballero | |
465 | 38112 | cordinyana | return jLabelComments;
|
466 | 36475 | cordinyana | } |
467 | 7304 | caballero | |
468 | 36475 | cordinyana | /**
|
469 | * This method initializes txtComments
|
||
470 | *
|
||
471 | * @return javax.swing.JTextArea
|
||
472 | */
|
||
473 | private javax.swing.JTextArea getTxtComments() {
|
||
474 | if (txtComments == null) { |
||
475 | 38112 | cordinyana | txtComments = new javax.swing.JTextArea(view.getComment());
|
476 | txtComments.setRows(3);
|
||
477 | txtComments.setColumns(20);
|
||
478 | 36475 | cordinyana | } |
479 | 7304 | caballero | |
480 | 36475 | cordinyana | return txtComments;
|
481 | } |
||
482 | 7304 | caballero | |
483 | 36475 | cordinyana | /**
|
484 | * This method initializes jLabel7
|
||
485 | *
|
||
486 | * @return javax.swing.JLabel
|
||
487 | */
|
||
488 | 38112 | cordinyana | private javax.swing.JLabel getJLabelColor() {
|
489 | if (jLabelColor == null) { |
||
490 | jLabelColor = |
||
491 | new javax.swing.JLabel(Messages.getText("background_color") |
||
492 | + ":");
|
||
493 | 36475 | cordinyana | } |
494 | 7304 | caballero | |
495 | 38112 | cordinyana | return jLabelColor;
|
496 | 36475 | cordinyana | } |
497 | 7304 | caballero | |
498 | 36475 | cordinyana | /**
|
499 | * This method initializes lblColor
|
||
500 | *
|
||
501 | * @return javax.swing.JLabel
|
||
502 | */
|
||
503 | 38930 | jldominguez | private javax.swing.JPanel getLblColor(Color surround_color) { |
504 | 36475 | cordinyana | if (lblColor == null) { |
505 | 38930 | jldominguez | lblColor = new javax.swing.JPanel();
|
506 | lblColor.setPreferredSize(new java.awt.Dimension(42, 21)); |
||
507 | 36475 | cordinyana | Color theColor = view.getMapContext().getViewPort().getBackColor();
|
508 | backColor = theColor; |
||
509 | if (theColor == null) { |
||
510 | theColor = Color.WHITE;
|
||
511 | } |
||
512 | lblColor.setBackground(theColor); |
||
513 | 38930 | jldominguez | // lblColor.setBorder(BorderFactory.createLineBorder(surround_color, 3));
|
514 | 36475 | cordinyana | lblColor.setOpaque(true);
|
515 | } |
||
516 | 7304 | caballero | |
517 | 36475 | cordinyana | return lblColor;
|
518 | } |
||
519 | 7304 | caballero | |
520 | 36475 | cordinyana | /**
|
521 | * This method initializes btnColor
|
||
522 | *
|
||
523 | * @return javax.swing.JButton
|
||
524 | */
|
||
525 | private JButton getBtnColor() { |
||
526 | if (btnColor == null) { |
||
527 | 38874 | jldominguez | btnColor = new JButton(); |
528 | // ToolsSwingLocator.getUsabilitySwingManager().createJButton();
|
||
529 | 7304 | caballero | |
530 | 36475 | cordinyana | btnColor.setText("...");
|
531 | 7304 | caballero | |
532 | 36475 | cordinyana | btnColor.addActionListener(new java.awt.event.ActionListener() {
|
533 | 9532 | caballero | |
534 | 36475 | cordinyana | public void actionPerformed(java.awt.event.ActionEvent e) { |
535 | Color ret =
|
||
536 | JColorChooser.showDialog(ViewProperties.this,
|
||
537 | 38112 | cordinyana | Messages.getText("background_color"),
|
538 | 36475 | cordinyana | lblColor.getBackground()); |
539 | 7304 | caballero | |
540 | 36475 | cordinyana | if (ret != null) { |
541 | lblColor.setBackground(ret); |
||
542 | backColor = ret; |
||
543 | } else {
|
||
544 | lblColor.setBackground(Color.WHITE);
|
||
545 | } |
||
546 | } |
||
547 | }); |
||
548 | } |
||
549 | 7304 | caballero | |
550 | 36475 | cordinyana | return btnColor;
|
551 | } |
||
552 | 7304 | caballero | |
553 | 36475 | cordinyana | /**
|
554 | * This method initializes jScrollPane
|
||
555 | *
|
||
556 | * @return javax.swing.JScrollPane
|
||
557 | */
|
||
558 | 38112 | cordinyana | private javax.swing.JScrollPane getJScrollPaneComments() {
|
559 | 36475 | cordinyana | if (jScrollPane == null) { |
560 | jScrollPane = new javax.swing.JScrollPane();
|
||
561 | jScrollPane.setViewportView(getTxtComments()); |
||
562 | 38112 | cordinyana | Dimension dim = getTxtComments().getPreferredSize();
|
563 | jScrollPane |
||
564 | .setMinimumSize(new Dimension(dim.width, dim.height + 10)); |
||
565 | 36475 | cordinyana | } |
566 | 7304 | caballero | |
567 | 36475 | cordinyana | return jScrollPane;
|
568 | } |
||
569 | 7304 | caballero | |
570 | 36475 | cordinyana | /**
|
571 | * @see com.iver.mdiApp.ui.MDIManager.IWindow#getWindowInfo()
|
||
572 | */
|
||
573 | public WindowInfo getWindowInfo() {
|
||
574 | WindowInfo m_viewinfo = new WindowInfo();
|
||
575 | 38112 | cordinyana | this.validate();
|
576 | m_viewinfo.setTitle(Messages.getText("propiedades_vista"));
|
||
577 | Dimension dim = getPreferredSize();
|
||
578 | 38874 | jldominguez | m_viewinfo.setWidth(FIXED_WIDTH); |
579 | 38112 | cordinyana | m_viewinfo.setHeight(dim.height |
580 | + getOkCancelPanel().getPreferredSize().height); |
||
581 | 36475 | cordinyana | return m_viewinfo;
|
582 | } |
||
583 | 7304 | caballero | |
584 | 36475 | cordinyana | /**
|
585 | * This method initializes jPanel4
|
||
586 | *
|
||
587 | * @return javax.swing.JPanel
|
||
588 | */
|
||
589 | private CRSSelectPanel getJPanelProj() {
|
||
590 | if (jPanelProj == null) { |
||
591 | IProjection proj = view.getProjection(); |
||
592 | jPanelProj = CRSSelectPanel.getPanel(proj); |
||
593 | 38648 | nbrodin | jPanelProj.addActionListener(new java.awt.event.ActionListener() {
|
594 | |||
595 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
596 | if (jPanelProj.isOkPressed()) {
|
||
597 | if (!jPanelProj.getCurProj().isProjected()) {
|
||
598 | getCmbMapUnits().setSelectedItem( |
||
599 | PluginServices |
||
600 | .getText(this, "Grados")); |
||
601 | getCmbMapUnits().setEnabled(false);
|
||
602 | } else {
|
||
603 | if (getCmbMapUnits().getSelectedItem().equals(
|
||
604 | PluginServices |
||
605 | .getText(this, "Grados"))) { |
||
606 | getCmbMapUnits().setSelectedIndex(1);
|
||
607 | } |
||
608 | getCmbMapUnits().setEnabled(true);
|
||
609 | } |
||
610 | 38875 | jldominguez | self.updateSetAsDefaultCRSChk(); |
611 | 38648 | nbrodin | } |
612 | } |
||
613 | }); |
||
614 | 36475 | cordinyana | } |
615 | return jPanelProj;
|
||
616 | } |
||
617 | 7304 | caballero | |
618 | 36475 | cordinyana | /**
|
619 | * @see org.gvsig.andami.ui.mdiManager.SingletonWindow#getWindowModel()
|
||
620 | */
|
||
621 | public Object getWindowModel() { |
||
622 | return view;
|
||
623 | } |
||
624 | 7304 | caballero | |
625 | 36475 | cordinyana | /**
|
626 | * This method initializes okCancelPanel
|
||
627 | *
|
||
628 | * @return javax.swing.JPanel
|
||
629 | */
|
||
630 | private AcceptCancelPanel getOkCancelPanel() {
|
||
631 | if (okCancelPanel == null) { |
||
632 | ActionListener okAction, cancelAction;
|
||
633 | okAction = new java.awt.event.ActionListener() {
|
||
634 | 7304 | caballero | |
635 | 36475 | cordinyana | public void actionPerformed(java.awt.event.ActionEvent e) { |
636 | String name = txtName.getText();
|
||
637 | if (name == null || name.length() == 0) { |
||
638 | return;
|
||
639 | } |
||
640 | Project project = |
||
641 | ProjectManager.getInstance().getCurrentProject(); |
||
642 | List<Document> views = |
||
643 | project.getDocuments(ViewManager.TYPENAME); |
||
644 | for (Document theView : views) { |
||
645 | if (view.equals(theView)) {
|
||
646 | continue;
|
||
647 | } |
||
648 | if (theView.getName().equals(name)) {
|
||
649 | JOptionPane.showMessageDialog(
|
||
650 | (Component) PluginServices.getMainFrame(),
|
||
651 | 38112 | cordinyana | Messages.getText("elemento_ya_existe"));
|
652 | 36475 | cordinyana | return;
|
653 | } |
||
654 | } |
||
655 | 7304 | caballero | |
656 | 36475 | cordinyana | view.setName(name); |
657 | view.setCreationDate(txtDate.getText()); |
||
658 | view.setOwner(txtOwner.getText()); |
||
659 | view.setComment(txtComments.getText()); |
||
660 | view.getMapContext().getViewPort() |
||
661 | .setMapUnits(cmbMapUnits.getSelectedIndex()); |
||
662 | view.getMapContext().getViewPort() |
||
663 | .setDistanceUnits(cmbDistanceUnits.getSelectedIndex()); |
||
664 | view.getMapContext().getViewPort() |
||
665 | .setDistanceArea(cmbDistanceArea.getSelectedIndex()); |
||
666 | view.setBackColor(backColor); |
||
667 | 38112 | cordinyana | |
668 | // Select the projection
|
||
669 | 37609 | jpiera | if (jPanelProj.isOkPressed()) {
|
670 | if (!jPanelProj.getCurProj().isProjected()) {
|
||
671 | getCmbMapUnits().setSelectedItem( |
||
672 | 38112 | cordinyana | Messages.getText("Grados"));
|
673 | 37609 | jpiera | getCmbMapUnits().setEnabled(false);
|
674 | } else {
|
||
675 | if (getCmbMapUnits().getSelectedItem().equals(
|
||
676 | 38112 | cordinyana | Messages.getText("Grados"))) {
|
677 | 37609 | jpiera | getCmbMapUnits().setSelectedIndex(1);
|
678 | } |
||
679 | getCmbMapUnits().setEnabled(true);
|
||
680 | } |
||
681 | view.setProjection(jPanelProj.getCurProj()); |
||
682 | 38877 | jldominguez | if (self.getSetAsDefaultCrsCheckbox().isSelected()) {
|
683 | self.setAppDefaultCRS(jPanelProj.getCurProj().getAbrev()); |
||
684 | } |
||
685 | 37609 | jpiera | } |
686 | 38112 | cordinyana | |
687 | 36475 | cordinyana | isAcceppted = true;
|
688 | PluginServices.getMDIManager().closeWindow( |
||
689 | ViewProperties.this); |
||
690 | } |
||
691 | }; |
||
692 | cancelAction = new java.awt.event.ActionListener() {
|
||
693 | 7304 | caballero | |
694 | 36475 | cordinyana | public void actionPerformed(java.awt.event.ActionEvent e) { |
695 | isAcceppted = false;
|
||
696 | PluginServices.getMDIManager().closeWindow( |
||
697 | ViewProperties.this); |
||
698 | } |
||
699 | }; |
||
700 | okCancelPanel = new AcceptCancelPanel(okAction, cancelAction);
|
||
701 | } |
||
702 | return okCancelPanel;
|
||
703 | } |
||
704 | 30156 | vcaballero | |
705 | 36475 | cordinyana | public boolean isAcceppted() { |
706 | return isAcceppted;
|
||
707 | } |
||
708 | 9532 | caballero | |
709 | 36475 | cordinyana | /**
|
710 | * This method initializes jComboBox
|
||
711 | *
|
||
712 | * @return javax.swing.JComboBox
|
||
713 | */
|
||
714 | private JComboBox getCmbDistanceArea() { |
||
715 | String[] names = MapContext.getAreaNames(); |
||
716 | if (cmbDistanceArea == null |
||
717 | || names.length > cmbDistanceArea.getItemCount()) { |
||
718 | for (int i = 0; i < names.length; i++) { |
||
719 | names[i] = |
||
720 | 38112 | cordinyana | Messages.getText(names[i]) + MapContext.getOfLinear(i); |
721 | 36475 | cordinyana | } |
722 | cmbDistanceArea = new javax.swing.JComboBox(names);
|
||
723 | cmbDistanceArea.setEditable(false);
|
||
724 | cmbDistanceArea.setSelectedIndex(view.getMapContext().getViewPort() |
||
725 | .getDistanceArea()); |
||
726 | cmbDistanceArea |
||
727 | .addActionListener(new java.awt.event.ActionListener() {
|
||
728 | 9532 | caballero | |
729 | 36475 | cordinyana | public void actionPerformed(java.awt.event.ActionEvent e) { |
730 | // view.getMapContext().getViewPort().setDistanceUnits(cmbDistanceUnits.getSelectedIndex());
|
||
731 | } |
||
732 | }); |
||
733 | } |
||
734 | 9532 | caballero | |
735 | 36475 | cordinyana | return cmbDistanceArea;
|
736 | 20334 | vcaballero | |
737 | 36475 | cordinyana | } |
738 | 20334 | vcaballero | |
739 | 36475 | cordinyana | public Object getWindowProfile() { |
740 | return WindowInfo.PROPERTIES_PROFILE;
|
||
741 | } |
||
742 | 38875 | jldominguez | |
743 | 26449 | jmvivo | |
744 | 38875 | jldominguez | |
745 | |||
746 | 38112 | cordinyana | } |