Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / project / ProjectWindow.java @ 596

History | View | Annotate | Download (32.7 KB)

1
package com.iver.cit.gvsig.project;
2

    
3
import java.awt.Component;
4
import java.beans.PropertyChangeEvent;
5
import java.beans.PropertyChangeListener;
6
import java.io.File;
7
import java.text.DateFormat;
8

    
9
import javax.swing.ButtonGroup;
10
import javax.swing.JDialog;
11
import javax.swing.JOptionPane;
12
import javax.swing.JPanel;
13

    
14
import com.hardcode.driverManager.DriverLoadException;
15
import com.hardcode.gdbms.engine.data.DBDriver;
16
import com.hardcode.gdbms.engine.data.DataSource;
17
import com.hardcode.gdbms.engine.data.DataSourceFactory;
18
import com.hardcode.gdbms.engine.data.FileDriver;
19
import com.iver.andami.PluginServices;
20
import com.iver.andami.messages.NotificationManager;
21
import com.iver.andami.ui.mdiManager.SingletonView;
22
import com.iver.andami.ui.mdiManager.View;
23
import com.iver.andami.ui.mdiManager.ViewInfo;
24
import com.iver.cit.gvsig.ProjectExtension;
25
import com.iver.cit.gvsig.fmap.drivers.GeorreferencedRasterDriver;
26
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
27
import com.iver.cit.gvsig.gui.DataBaseOpenDialog;
28
import com.iver.cit.gvsig.gui.FOpenDialog;
29
import com.iver.cit.gvsig.gui.FileOpenDialog;
30
import com.iver.cit.gvsig.gui.Table;
31
import com.iver.cit.gvsig.gui.layout.Layout;
32
import com.iver.cit.gvsig.project.castor.Project;
33
import com.iver.cit.gvsig.project.castor.ProjectElement;
34
import com.iver.cit.gvsig.project.castor.ProjectMap;
35
import com.iver.cit.gvsig.project.castor.ProjectTable;
36
import com.iver.cit.gvsig.project.castor.ProjectView;
37
import com.iver.utiles.DefaultListModel;
38

    
39

    
40
/**
41
 * Clase principal del proyecto donde se puede operar para crear vistas,
42
 * tablas, mapas, ...
43
 *
44
 * @author Fernando Gonz?lez Cort?s
45
 */
46
public class ProjectWindow extends JPanel implements PropertyChangeListener,
47
    View, SingletonView {
48
    private javax.swing.JPanel jPanel = null;
49
    private javax.swing.JRadioButton btnVistas = null;
50
    private javax.swing.JRadioButton btnTablas = null;
51
    private javax.swing.JRadioButton btnMapas = null;
52
    private ButtonGroup grupo = new ButtonGroup();
53
    private javax.swing.JPanel jPanel1 = null;
54
    private javax.swing.JList lstDocs = null;
55
    private javax.swing.JPanel jPanel2 = null;
56
    private javax.swing.JButton btnNuevo = null;
57
    private javax.swing.JButton btnPropiedades = null;
58
    private javax.swing.JButton btnAbrir = null;
59
    private javax.swing.JButton btnBorrar = null;
60
    private javax.swing.JButton btnRenombrar = null;
61
    private javax.swing.JPanel jPanel3 = null;
62
    private javax.swing.JLabel jLabel = null;
63
    private javax.swing.JLabel lblNombreSesion = null;
64
    private javax.swing.JLabel jLabel1 = null;
65
    private javax.swing.JLabel lblGuardado = null;
66
    private javax.swing.JLabel jLabel2 = null;
67
    private javax.swing.JLabel lblFecha = null;
68
    private javax.swing.JButton btnImportar = null;
69
    private javax.swing.JButton btnExportar = null;
70
    private javax.swing.JButton btnEditar = null;
71

    
72
    /** Proyecto representado en la vista */
73
    private Project p;
74

    
75
    /**
76
     * Extension con la informaci?n, entre otras, sobre las extensiones para
77
     * las tablas
78
     */
79
    private ProjectExtension projectExtension;
80
    private javax.swing.JScrollPane jScrollPane = null;
81
    private javax.swing.JPanel jPanel4 = null;
82

    
83
    /**
84
     * This is the default constructor
85
     *
86
     * @param project Extension
87
     */
88
    public ProjectWindow(ProjectExtension project) {
89
        super();
90

    
91
        initialize();
92

    
93
        projectExtension = project;
94

    
95
        refreshControls();
96
    }
97

    
98
    /**
99
     * Asigna el proyecto a la ventana
100
     *
101
     * @param p Proyecto con el que se operar? a trav?s de este di?logo
102
     */
103
    public void setProject(Project p) {
104
        this.p = p;
105
        p.addPropertyChangeListener(this);
106
        refreshControls();
107
    }
108

    
109
    /**
110
     * Activa los botones de la botonera del medio o los desactiva en funci?n
111
     * de que est? seleccionado o no un elemento de proyecto en la lista del
112
     * medio
113
     */
114
    private void activarBotones() {
115
        if (lstDocs.getSelectedIndex() != -1) {
116
            btnAbrir.setEnabled(true);
117
            btnBorrar.setEnabled(true);
118
            btnRenombrar.setEnabled(true);
119
            btnPropiedades.setEnabled(true);
120
        } else {
121
            btnAbrir.setEnabled(false);
122
            btnBorrar.setEnabled(false);
123
            btnRenombrar.setEnabled(false);
124
            btnPropiedades.setEnabled(false);
125
        }
126
    }
127

    
128
    /**
129
     * Refresca la lista de elementos de proyecto con vistas, mapas o tablas,
130
     * seg?n la opci?n activada
131
     */
132
    private void refreshList() {
133
        if (p != null) {
134
            DefaultListModel model;
135

    
136
            if (btnMapas.isSelected()) {
137
                model = new DefaultListModel(p.getMaps());
138

    
139
                //                                getBtnNuevo().setEnabled(true);
140
            } else if (btnTablas.isSelected()) {
141
                model = new DefaultListModel(p.getTables());
142

    
143
                //                getBtnNuevo().setEnabled(false);
144
            } else {
145
                model = new DefaultListModel(p.getViews());
146

    
147
                //                                getBtnNuevo().setEnabled(true);
148
            }
149

    
150
            lstDocs.setModel(model);
151

    
152
            activarBotones();
153
        }
154
    }
155

    
156
    /**
157
     * Refresca las etiquetas con la informaci?n del proyecto
158
     */
159
    private void refreshProperties() {
160
        if (p != null) {
161
            String aux;
162

    
163
            lblNombreSesion.setText(p.getName());
164

    
165
            String path = p.getPath();
166

    
167
            if (path != null) {
168
                File f = new File(path);
169
                lblGuardado.setText(f.toString());
170
            } else {
171
                lblGuardado.setText("");
172
            }
173

    
174
            lblFecha.setText(p.getCreationDate());
175
        }
176
    }
177

    
178
    /**
179
     * Refresca todo el di?logo
180
     */
181
    public void refreshControls() {
182
        refreshList();
183
        refreshProperties();
184
    }
185

    
186
    /**
187
     * This method initializes this
188
     */
189
    private void initialize() {
190
        setLayout(new java.awt.FlowLayout());
191
        add(getJPanel(), null);
192
        add(getJPanel1(), null);
193
        add(getJPanel3(), null);
194

    
195
        this.setSize(400, 450);
196
        this.setPreferredSize(new java.awt.Dimension(400, 430));
197
        grupo.add(btnVistas);
198
        grupo.add(btnTablas);
199
        grupo.add(btnMapas);
200

    
201
        btnVistas.setSelected(true);
202
    }
203

    
204
    /**
205
     * Crea un nuevo project element
206
     *
207
     * @throws Exception DOCUMENT ME!
208
     */
209
    private void nuevo() throws Exception {
210
        DateFormat df = DateFormat.getDateInstance();
211

    
212
        if (btnMapas.isSelected()) {
213
            ProjectMap map = ProjectFactory.createMap(PluginServices.getText(
214
                        this, "untitled"));
215
            map.setModel(new Layout());
216
            map.getModel().setProjectMap(map);
217
            p.addMap(map);
218
        } else if (btnTablas.isSelected()) {
219
            try {
220
                FOpenDialog fopen = new FOpenDialog();
221
                FileOpenDialog fod = new FileOpenDialog(new Class[]{FileDriver.class, GeorreferencedRasterDriver.class});
222
                DataBaseOpenDialog dbod = new DataBaseOpenDialog();
223
                dbod.setClasses(new Class[] { DBDriver.class });
224
                fopen.addTab("Fichero", fod);
225
                fopen.addTab("Base de datos", dbod);
226
                PluginServices.getMDIManager().addView(fopen);
227

    
228
                if (fopen.isAccepted()) {
229
                    JPanel panel = fopen.getSelectedTab();
230

    
231
                    if (panel instanceof FileOpenDialog) {
232
                            File[] files = fod.getFiles();
233
                            for (int i = 0; i < files.length; i++) {
234
                                String name = files[i].getName();
235
                            DataSourceFactory.addFileDataSource(fod.getDriverName(), name, files[i].getAbsolutePath(), files[i].getAbsolutePath());
236

    
237
                            DataSource dataSource = DataSourceFactory.createRandomDataSource(name);
238
                            SelectableDataSource sds = new SelectableDataSource(name, dataSource);
239
                            ProjectExtension ext = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);
240
                            ProjectTable projectTable = ProjectFactory.createTable(name, sds);
241
                            ext.getProject().addTable(projectTable);
242

    
243
                            Table t = new Table();
244
                            t.setModel(projectTable, null);
245
                            PluginServices.getMDIManager().addView(t);
246
                                                }
247
                    } else if (panel instanceof DataBaseOpenDialog) {
248
                        String driverName = dbod.getDriverName();
249
                        int port = -1;
250

    
251
                        try {
252
                            port = Integer.parseInt(dbod.getPort());
253
                        } catch (NumberFormatException e) {
254
                        }
255

    
256
                        String name = dbod.getHost() + "/" +
257
                            dbod.getDataBase();
258

    
259
                        if (port != -1) {
260
                            name = dbod.getHost() + ":" + port + "/" +
261
                                dbod.getDataBase();
262
                        }
263

    
264
                        String user = dbod.getUser().trim();
265
                        String password = dbod.getPassword();
266

    
267
                        if (user.equals("")) {
268
                            user = null;
269
                            password = null;
270
                        }
271

    
272
                        DataSourceFactory.addDBDataSource(name, dbod.getHost(),
273
                            port, user, password, dbod.getDataBase(),
274
                            dbod.getTable(), driverName);
275

    
276
                        DataSource dataSource = DataSourceFactory.createRandomDataSource(name);
277
                        SelectableDataSource sds = new SelectableDataSource(name, dataSource);
278

    
279
                        ProjectExtension ext = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);
280
                        ProjectTable projectTable = ProjectFactory.createTable(name, sds);
281
                        ext.getProject().addTable(projectTable);
282

    
283
                        Table t = new Table();
284
                        t.setModel(projectTable, null);
285
                        PluginServices.getMDIManager().addView(t);
286
                    }
287
                }
288
            } catch (DriverLoadException e) {
289
                    NotificationManager.addError("Error al cargar los drivers", e);
290
            }
291
        } else {
292
            ProjectView vista = ProjectFactory.createView(PluginServices.getText(
293
                        this, "untitled"));
294
            p.addView(vista);
295
        }
296
    }
297

    
298
    /**
299
     * Abre la ventana de un nuevo project element
300
     */
301
    private void abrir() {
302
        if (btnMapas.isSelected()) {
303
            int index = lstDocs.getSelectedIndex();
304

    
305
            if (index == -1) {
306
                return;
307
            }
308

    
309
            Layout l = (Layout)((ProjectMap) p.getMaps().get(index)).getModel();
310
            l.fullRect();
311
            PluginServices.getMDIManager().addView(l);
312
        } else if (btnTablas.isSelected()) {
313
            com.iver.cit.gvsig.gui.Table vista = new com.iver.cit.gvsig.gui.Table();
314
            int index = lstDocs.getSelectedIndex();
315

    
316
            if (index == -1) {
317
                return;
318
            }
319

    
320
            vista.setModel((ProjectTable) p.getTables().get(index), null);
321
            PluginServices.getMDIManager().addView(vista);
322
        } else {
323
            com.iver.cit.gvsig.gui.View vista = new com.iver.cit.gvsig.gui.View();
324
            int index = lstDocs.getSelectedIndex();
325

    
326
            if (index == -1) {
327
                return;
328
            }
329

    
330
            vista.setModel((ProjectView) p.getViews().get(index));
331
            PluginServices.getMDIManager().addView(vista);
332
            vista.repaintMap();
333
            vista.getTOC().refresh();
334
        }
335
    }
336

    
337
    /**
338
     * Cambia el nombre de un project element
339
     */
340
    private void renombrar() {
341
        ProjectElement elem = null;
342
        int index = lstDocs.getSelectedIndex();
343

    
344
        if (index == -1) {
345
            return;
346
        }
347

    
348
        if (btnMapas.isSelected()) {
349
            elem = (ProjectElement) p.getMaps().get(index);
350
        } else if (btnTablas.isSelected()) {
351
            elem = (ProjectElement) p.getTables().get(index);
352
        } else {
353
            elem = (ProjectElement) p.getViews().get(index);
354
        }
355

    
356
        JOptionPane pane = new JOptionPane();
357
        pane.setMessage(PluginServices.getText(this, "introduce_nombre"));
358
        pane.setMessageType(JOptionPane.QUESTION_MESSAGE);
359
        pane.setWantsInput(true);
360
        pane.setInitialSelectionValue(elem.getName());
361

    
362
        JDialog dlg = pane.createDialog((Component) PluginServices.getMainFrame(),
363
                        PluginServices.getText(this, "renombrar"));
364
        dlg.setModal(true);
365
        dlg.show();
366

    
367
        String nuevoNombre = pane.getInputValue().toString().trim();
368

    
369
        if (nuevoNombre.length() == 0) {
370
            return;
371
        }
372

    
373
        if (nuevoNombre == null) {
374
            return;
375
        }
376

    
377
        elem.setName(nuevoNombre);
378

    
379
        refreshList();
380
    }
381

    
382
    /**
383
     * Borra un project element
384
     */
385
    private void borrar() {
386
        int res = JOptionPane.showConfirmDialog((Component) PluginServices.getMainFrame(),
387
                        PluginServices.getText(this, "confirmar_borrar"),
388
                        PluginServices.getText(this, "borrar"),
389
                JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
390

    
391
        if (res == JOptionPane.YES_OPTION) {
392
            int index = lstDocs.getSelectedIndex();
393

    
394
            if (btnMapas.isSelected()) {
395
                p.delMap(index);
396
            } else if (btnTablas.isSelected()) {
397
                p.delTable(index);
398
            } else {
399
                p.delView(index);
400
            }
401

    
402
            refreshList();
403
        }
404
    }
405

    
406
    /**
407
     * Muestra el di?logo de propiedades de un project element
408
     */
409
    private void propiedades() {
410
        int index = lstDocs.getSelectedIndex();
411

    
412
        if (index == -1) {
413
            return;
414
        }
415

    
416
        View dlg;
417

    
418
        if (btnMapas.isSelected()) {
419
            dlg = new MapProperties((ProjectMap) p.getMaps().get(index));
420
        } else if (btnTablas.isSelected()) {
421
            dlg = new TableProperties((ProjectTable) p.getTables().get(index));
422
        } else {
423
            dlg = new ViewProperties((ProjectView) p.getViews().get(index));
424
        }
425

    
426
        PluginServices.getMDIManager().addView(dlg);
427

    
428
        refreshControls();
429
        lstDocs.setSelectedIndex(index);
430
    }
431

    
432
    /**
433
     * This method initializes jPanel
434
     *
435
     * @return javax.swing.JPanel
436
     */
437
    private javax.swing.JPanel getJPanel() {
438
        if (jPanel == null) {
439
            jPanel = new javax.swing.JPanel();
440

    
441
            java.awt.FlowLayout layFlowLayout1 = new java.awt.FlowLayout();
442
            layFlowLayout1.setHgap(15);
443
            jPanel.setLayout(layFlowLayout1);
444
            jPanel.add(getBtnVistas(), null);
445
            jPanel.add(getBtnTablas(), null);
446
            jPanel.add(getBtnMapas(), null);
447
            jPanel.setName("tipoDocPanel");
448
            jPanel.setPreferredSize(new java.awt.Dimension(390, 125));
449
            jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(
450
                    null, PluginServices.getText(this, "tipos_de_documentos"),
451
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
452
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
453
        }
454

    
455
        return jPanel;
456
    }
457

    
458
    /**
459
     * This method initializes btnVistas
460
     *
461
     * @return javax.swing.JRadioButton
462
     */
463
    private javax.swing.JRadioButton getBtnVistas() {
464
        if (btnVistas == null) {
465
            btnVistas = new javax.swing.JRadioButton();
466
            btnVistas.setIcon(new javax.swing.ImageIcon(
467
                    this.getClass().getClassLoader().getResource("images/Vista.png")));
468
            btnVistas.setSelectedIcon(new javax.swing.ImageIcon(
469
                    this.getClass().getClassLoader().getResource("images/Vista_sel.png")));
470
            btnVistas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
471
            btnVistas.setText(PluginServices.getText(this, "vistas"));
472
            btnVistas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
473
            btnVistas.setName("vistasBtn");
474
            btnVistas.addChangeListener(new javax.swing.event.ChangeListener() {
475
                    public void stateChanged(javax.swing.event.ChangeEvent e) {
476
                        refreshList();
477
                    }
478
                });
479
        }
480

    
481
        return btnVistas;
482
    }
483

    
484
    /**
485
     * This method initializes btnTablas
486
     *
487
     * @return javax.swing.JRadioButton
488
     */
489
    private javax.swing.JRadioButton getBtnTablas() {
490
        if (btnTablas == null) {
491
            btnTablas = new javax.swing.JRadioButton();
492
            btnTablas.setIcon(new javax.swing.ImageIcon(
493
                    this.getClass().getClassLoader().getResource("images/tablas.png")));
494
            btnTablas.setSelectedIcon(new javax.swing.ImageIcon(
495
                    this.getClass().getClassLoader().getResource("images/tablas_sel.png")));
496
            btnTablas.setText(PluginServices.getText(this, "tablas"));
497
            btnTablas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
498
            btnTablas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
499
            btnTablas.setName("tablasBtn");
500
            btnTablas.addChangeListener(new javax.swing.event.ChangeListener() {
501
                    public void stateChanged(javax.swing.event.ChangeEvent e) {
502
                        refreshList();
503
                    }
504
                });
505
        }
506

    
507
        return btnTablas;
508
    }
509

    
510
    /**
511
     * This method initializes btnMapas
512
     *
513
     * @return javax.swing.JRadioButton
514
     */
515
    private javax.swing.JRadioButton getBtnMapas() {
516
        if (btnMapas == null) {
517
            btnMapas = new javax.swing.JRadioButton();
518
            btnMapas.setIcon(new javax.swing.ImageIcon(
519
                    this.getClass().getClassLoader().getResource("images/mapas.png")));
520
            btnMapas.setSelectedIcon(new javax.swing.ImageIcon(
521
                    this.getClass().getClassLoader().getResource("images/mapas_sel.png")));
522
            btnMapas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
523
            btnMapas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
524
            btnMapas.setText(PluginServices.getText(this, "mapas"));
525
            btnMapas.addChangeListener(new javax.swing.event.ChangeListener() {
526
                    public void stateChanged(javax.swing.event.ChangeEvent e) {
527
                        refreshList();
528
                    }
529
                });
530
        }
531

    
532
        return btnMapas;
533
    }
534

    
535
    /**
536
     * This method initializes jPanel1
537
     *
538
     * @return javax.swing.JPanel
539
     */
540
    private javax.swing.JPanel getJPanel1() {
541
        if (jPanel1 == null) {
542
            jPanel1 = new javax.swing.JPanel();
543

    
544
            java.awt.BorderLayout layBorderLayout2 = new java.awt.BorderLayout();
545
            layBorderLayout2.setVgap(30);
546
            jPanel1.setLayout(layBorderLayout2);
547
            jPanel1.add(getJPanel2(), java.awt.BorderLayout.EAST);
548
            jPanel1.add(getJScrollPane(), java.awt.BorderLayout.CENTER);
549
            jPanel1.setPreferredSize(new java.awt.Dimension(390, 170));
550
            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
551
                    null, PluginServices.getText(this, "documentos_existentes"),
552
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
553
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
554
        }
555

    
556
        return jPanel1;
557
    }
558

    
559
    /**
560
     * This method initializes lstDocs
561
     *
562
     * @return javax.swing.JList
563
     */
564
    private javax.swing.JList getLstDocs() {
565
        if (lstDocs == null) {
566
            lstDocs = new javax.swing.JList();
567
            lstDocs.addMouseListener(new java.awt.event.MouseAdapter() {
568
                    public void mouseClicked(java.awt.event.MouseEvent e) {
569
                        if (e.getClickCount() == 2) {
570
                            abrir();
571
                        }
572
                    }
573
                });
574
            lstDocs.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
575
                    public void valueChanged(
576
                        javax.swing.event.ListSelectionEvent e) {
577
                        activarBotones();
578
                    }
579
                });
580
        }
581

    
582
        return lstDocs;
583
    }
584

    
585
    /**
586
     * This method initializes jPanel2
587
     *
588
     * @return javax.swing.JPanel
589
     */
590
    private javax.swing.JPanel getJPanel2() {
591
        if (jPanel2 == null) {
592
            jPanel2 = new javax.swing.JPanel();
593

    
594
            java.awt.FlowLayout layFlowLayout11 = new java.awt.FlowLayout();
595
            layFlowLayout11.setVgap(5);
596
            jPanel2.setLayout(layFlowLayout11);
597
            jPanel2.add(getBtnNuevo(), null);
598
            jPanel2.add(getBtnAbrir(), null);
599
            jPanel2.add(getBtnRenombrar(), null);
600
            jPanel2.add(getBtnBorrar(), null);
601
            jPanel2.add(getBtnPropiedades(), null);
602
            jPanel2.setPreferredSize(new java.awt.Dimension(100, 50));
603
        }
604

    
605
        return jPanel2;
606
    }
607

    
608
    /**
609
     * This method initializes btnNuevo
610
     *
611
     * @return javax.swing.JButton
612
     */
613
    private javax.swing.JButton getBtnNuevo() {
614
        if (btnNuevo == null) {
615
            btnNuevo = new javax.swing.JButton();
616
            btnNuevo.setPreferredSize(new java.awt.Dimension(80, 23));
617
            btnNuevo.setName("btnNuevo");
618
            btnNuevo.setText(PluginServices.getText(this, "nuevo"));
619
            btnNuevo.setMargin(new java.awt.Insets(2, 2, 2, 2));
620
            btnNuevo.addActionListener(new java.awt.event.ActionListener() {
621
                    public void actionPerformed(java.awt.event.ActionEvent e) {
622
                        try {
623
                            nuevo();
624
                        } catch (Exception e1) {
625
                            NotificationManager.addError(e1.getLocalizedMessage(),
626
                                e1);
627
                        }
628
                    }
629
                });
630
        }
631

    
632
        return btnNuevo;
633
    }
634

    
635
    /**
636
     * This method initializes btnPropiedades
637
     *
638
     * @return javax.swing.JButton
639
     */
640
    private javax.swing.JButton getBtnPropiedades() {
641
        if (btnPropiedades == null) {
642
            btnPropiedades = new javax.swing.JButton();
643
            btnPropiedades.setPreferredSize(new java.awt.Dimension(80, 23));
644
            btnPropiedades.setText(PluginServices.getText(this, "propiedades"));
645
            btnPropiedades.setName("btnPropiedades");
646
            btnPropiedades.setEnabled(false);
647
            btnPropiedades.setMargin(new java.awt.Insets(2, 2, 2, 2));
648
            btnPropiedades.addActionListener(new java.awt.event.ActionListener() {
649
                    public void actionPerformed(java.awt.event.ActionEvent e) {
650
                        propiedades();
651
                    }
652
                });
653
        }
654

    
655
        return btnPropiedades;
656
    }
657

    
658
    /**
659
     * This method initializes btnAbrir
660
     *
661
     * @return javax.swing.JButton
662
     */
663
    private javax.swing.JButton getBtnAbrir() {
664
        if (btnAbrir == null) {
665
            btnAbrir = new javax.swing.JButton();
666
            btnAbrir.setPreferredSize(new java.awt.Dimension(80, 23));
667
            btnAbrir.setName("btnAbrir");
668
            btnAbrir.setText(PluginServices.getText(this, "abrir"));
669
            btnAbrir.setEnabled(false);
670
            btnAbrir.setMargin(new java.awt.Insets(2, 2, 2, 2));
671
            btnAbrir.addActionListener(new java.awt.event.ActionListener() {
672
                    public void actionPerformed(java.awt.event.ActionEvent e) {
673
                        abrir();
674
                    }
675
                });
676
        }
677

    
678
        return btnAbrir;
679
    }
680

    
681
    /**
682
     * This method initializes btnBorrar
683
     *
684
     * @return javax.swing.JButton
685
     */
686
    private javax.swing.JButton getBtnBorrar() {
687
        if (btnBorrar == null) {
688
            btnBorrar = new javax.swing.JButton();
689
            btnBorrar.setPreferredSize(new java.awt.Dimension(80, 23));
690
            btnBorrar.setText(PluginServices.getText(this, "borrar"));
691
            btnBorrar.setName("btnBorrar");
692
            btnBorrar.setEnabled(false);
693
            btnBorrar.setMargin(new java.awt.Insets(2, 2, 2, 2));
694
            btnBorrar.addActionListener(new java.awt.event.ActionListener() {
695
                    public void actionPerformed(java.awt.event.ActionEvent e) {
696
                        borrar();
697
                    }
698
                });
699
        }
700

    
701
        return btnBorrar;
702
    }
703

    
704
    /**
705
     * This method initializes btnRenombrar
706
     *
707
     * @return javax.swing.JButton
708
     */
709
    private javax.swing.JButton getBtnRenombrar() {
710
        if (btnRenombrar == null) {
711
            btnRenombrar = new javax.swing.JButton();
712
            btnRenombrar.setPreferredSize(new java.awt.Dimension(80, 23));
713
            btnRenombrar.setName("btnRenombrar");
714
            btnRenombrar.setText(PluginServices.getText(this, "renombrar"));
715
            btnRenombrar.setEnabled(false);
716
            btnRenombrar.setMargin(new java.awt.Insets(2, 2, 2, 2));
717
            btnRenombrar.addActionListener(new java.awt.event.ActionListener() {
718
                    public void actionPerformed(java.awt.event.ActionEvent e) {
719
                        renombrar();
720
                    }
721
                });
722
        }
723

    
724
        return btnRenombrar;
725
    }
726

    
727
    /**
728
     * This method initializes jPanel3
729
     *
730
     * @return javax.swing.JPanel
731
     */
732
    private javax.swing.JPanel getJPanel3() {
733
        if (jPanel3 == null) {
734
            jPanel3 = new javax.swing.JPanel();
735

    
736
            java.awt.FlowLayout layFlowLayout3 = new java.awt.FlowLayout();
737
            layFlowLayout3.setHgap(5);
738
            layFlowLayout3.setAlignment(java.awt.FlowLayout.LEFT);
739
            jPanel3.setLayout(layFlowLayout3);
740
            jPanel3.add(getJLabel(), null);
741
            jPanel3.add(getLblNombreSesion(), null);
742
            jPanel3.add(getJLabel1(), null);
743
            jPanel3.add(getLblGuardado(), null);
744
            jPanel3.add(getJLabel2(), null);
745
            jPanel3.add(getLblFecha(), null);
746
            jPanel3.add(getJPanel4(), null);
747
            jPanel3.setPreferredSize(new java.awt.Dimension(390, 125));
748
            jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(
749
                    null, PluginServices.getText(this, "propiedades_sesion"),
750
                    javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
751
                    javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
752
        }
753

    
754
        return jPanel3;
755
    }
756

    
757
    /**
758
     * This method initializes jLabel
759
     *
760
     * @return javax.swing.JLabel
761
     */
762
    private javax.swing.JLabel getJLabel() {
763
        if (jLabel == null) {
764
            jLabel = new javax.swing.JLabel();
765
            jLabel.setText(PluginServices.getText(this, "nombre_sesion") + ":");
766
            jLabel.setPreferredSize(new java.awt.Dimension(150, 16));
767
        }
768

    
769
        return jLabel;
770
    }
771

    
772
    /**
773
     * This method initializes lblNombreSesion
774
     *
775
     * @return javax.swing.JLabel
776
     */
777
    private javax.swing.JLabel getLblNombreSesion() {
778
        if (lblNombreSesion == null) {
779
            lblNombreSesion = new javax.swing.JLabel();
780
            lblNombreSesion.setText("");
781
            lblNombreSesion.setName("lblNombreSesion");
782
            lblNombreSesion.setPreferredSize(new java.awt.Dimension(200, 16));
783
            lblNombreSesion.setAutoscrolls(true);
784
        }
785

    
786
        return lblNombreSesion;
787
    }
788

    
789
    /**
790
     * This method initializes jLabel1
791
     *
792
     * @return javax.swing.JLabel
793
     */
794
    private javax.swing.JLabel getJLabel1() {
795
        if (jLabel1 == null) {
796
            jLabel1 = new javax.swing.JLabel();
797
            jLabel1.setText(PluginServices.getText(this, "guardado") + ":");
798
            jLabel1.setPreferredSize(new java.awt.Dimension(150, 16));
799
        }
800

    
801
        return jLabel1;
802
    }
803

    
804
    /**
805
     * This method initializes lblGuardado
806
     *
807
     * @return javax.swing.JLabel
808
     */
809
    private javax.swing.JLabel getLblGuardado() {
810
        if (lblGuardado == null) {
811
            lblGuardado = new javax.swing.JLabel();
812
            lblGuardado.setText("");
813
            lblGuardado.setPreferredSize(new java.awt.Dimension(200, 16));
814
            lblGuardado.setAutoscrolls(true);
815
        }
816

    
817
        return lblGuardado;
818
    }
819

    
820
    /**
821
     * This method initializes jLabel2
822
     *
823
     * @return javax.swing.JLabel
824
     */
825
    private javax.swing.JLabel getJLabel2() {
826
        if (jLabel2 == null) {
827
            jLabel2 = new javax.swing.JLabel();
828
            jLabel2.setText(PluginServices.getText(this, "creation_date") + ":");
829
            jLabel2.setPreferredSize(new java.awt.Dimension(150, 16));
830
        }
831

    
832
        return jLabel2;
833
    }
834

    
835
    /**
836
     * This method initializes lblFecha
837
     *
838
     * @return javax.swing.JLabel
839
     */
840
    private javax.swing.JLabel getLblFecha() {
841
        if (lblFecha == null) {
842
            lblFecha = new javax.swing.JLabel();
843
            lblFecha.setText("");
844
            lblFecha.setPreferredSize(new java.awt.Dimension(200, 16));
845
            lblFecha.setAutoscrolls(true);
846
        }
847

    
848
        return lblFecha;
849
    }
850

    
851
    /**
852
     * This method initializes btnImportar
853
     *
854
     * @return javax.swing.JButton
855
     */
856
    private javax.swing.JButton getBtnImportar() {
857
        if (btnImportar == null) {
858
            btnImportar = new javax.swing.JButton();
859
            btnImportar.setPreferredSize(new java.awt.Dimension(80, 23));
860
            btnImportar.setText(PluginServices.getText(this, "importar"));
861
            btnImportar.setMargin(new java.awt.Insets(2, 2, 2, 2));
862
        }
863

    
864
        return btnImportar;
865
    }
866

    
867
    /**
868
     * This method initializes btnExportar
869
     *
870
     * @return javax.swing.JButton
871
     */
872
    private javax.swing.JButton getBtnExportar() {
873
        if (btnExportar == null) {
874
            btnExportar = new javax.swing.JButton();
875
            btnExportar.setPreferredSize(new java.awt.Dimension(80, 23));
876
            btnExportar.setText(PluginServices.getText(this, "exportar"));
877
            btnExportar.setMargin(new java.awt.Insets(2, 2, 2, 2));
878
        }
879

    
880
        return btnExportar;
881
    }
882

    
883
    /**
884
     * This method initializes btnEditar
885
     *
886
     * @return javax.swing.JButton
887
     */
888
    private javax.swing.JButton getBtnEditar() {
889
        if (btnEditar == null) {
890
            btnEditar = new javax.swing.JButton();
891
            btnEditar.setPreferredSize(new java.awt.Dimension(80, 23));
892
            btnEditar.setText(PluginServices.getText(this, "propiedades"));
893

    
894
            btnEditar.setMargin(new java.awt.Insets(2, 2, 2, 2));
895

    
896
            final JPanel f = this;
897
            btnEditar.addActionListener(new java.awt.event.ActionListener() {
898
                    public void actionPerformed(java.awt.event.ActionEvent e) {
899
                        ProjectProperties dlg = new ProjectProperties(p);
900
                        PluginServices.getMDIManager().addView(dlg);
901
                        refreshProperties();
902
                    }
903
                });
904
        }
905

    
906
        return btnEditar;
907
    }
908

    
909
    /**
910
     * This method initializes jScrollPane
911
     *
912
     * @return javax.swing.JScrollPane
913
     */
914
    private javax.swing.JScrollPane getJScrollPane() {
915
        if (jScrollPane == null) {
916
            jScrollPane = new javax.swing.JScrollPane();
917
            jScrollPane.setViewportView(getLstDocs());
918
            jScrollPane.setPreferredSize(new java.awt.Dimension(200, 100));
919
            jScrollPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
920
        }
921

    
922
        return jScrollPane;
923
    }
924

    
925
    /**
926
     * @see com.iver.mdiApp.ui.MDIManager.SingletonView#getViewModel()
927
     */
928
    public Object getViewModel() {
929
        return p;
930
    }
931

    
932
    /**
933
     * @see com.iver.mdiApp.ui.MDIManager.View#getViewInfo()
934
     */
935
    public ViewInfo getViewInfo() {
936
        ViewInfo m_viewinfo = new ViewInfo(ViewInfo.ALWAYSLIVE);
937
        m_viewinfo.setWidth(400);
938
        m_viewinfo.setHeight(430);
939
        m_viewinfo.setTitle(PluginServices.getText(this, "titulo"));
940
        
941
        return m_viewinfo;
942
    }
943

    
944
    /**
945
     * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
946
     */
947
    public void propertyChange(PropertyChangeEvent evt) {
948
        refreshControls();
949
    }
950

    
951
    /**
952
     * @see com.iver.mdiApp.ui.MDIManager.View#viewActivated()
953
     */
954
    public void viewActivated() {
955
    }
956

    
957
    /**
958
     * This method initializes jPanel4
959
     *
960
     * @return javax.swing.JPanel
961
     */
962
    private javax.swing.JPanel getJPanel4() {
963
        if (jPanel4 == null) {
964
            jPanel4 = new javax.swing.JPanel();
965

    
966
            java.awt.FlowLayout layFlowLayout2 = new java.awt.FlowLayout();
967
            layFlowLayout2.setHgap(30);
968
            jPanel4.setLayout(layFlowLayout2);
969
            jPanel4.add(getBtnImportar(), null);
970
            jPanel4.add(getBtnExportar(), null);
971
            jPanel4.add(getBtnEditar(), null);
972
            jPanel4.setPreferredSize(new java.awt.Dimension(360, 30));
973
        }
974

    
975
        return jPanel4;
976
    }
977
}