Statistics
| Revision:

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
}