Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / Tabla.java @ 1219

History | View | Annotate | Download (4.28 KB)

1
/*
2
 * Created on 02-mar-2004
3
 *
4
 * To change the template for this generated file go to
5
 * Window>Preferences>Java>Code Generation>Code and Comments
6
 */
7
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
8
 *
9
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
10
 *
11
 * This program is free software; you can redistribute it and/or
12
 * modify it under the terms of the GNU General Public License
13
 * as published by the Free Software Foundation; either version 2
14
 * of the License, or (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
24
 *
25
 * For more information, contact:
26
 *
27
 *  Generalitat Valenciana
28
 *   Conselleria d'Infraestructures i Transport
29
 *   Av. Blasco Ib??ez, 50
30
 *   46010 VALENCIA
31
 *   SPAIN
32
 *
33
 *      +34 963862235
34
 *   gvsig@gva.es
35
 *      www.gvsig.gva.es
36
 *
37
 *    or
38
 *
39
 *   IVER T.I. S.A
40
 *   Salamanca 50
41
 *   46005 Valencia
42
 *   Spain
43
 *
44
 *   +34 963163400
45
 *   dac@iver.es
46
 */
47
package com.iver.cit.gvsig;
48

    
49
import com.iver.andami.PluginServices;
50
import com.iver.andami.messages.NotificationManager;
51
import com.iver.andami.plugins.Extension;
52
import com.iver.cit.gvsig.fmap.DriverException;
53
import com.iver.cit.gvsig.fmap.layers.FLayer;
54
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
55
import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData;
56
import com.iver.cit.gvsig.gui.Table;
57
import com.iver.cit.gvsig.gui.View;
58
import com.iver.cit.gvsig.project.ProjectFactory;
59
import com.iver.cit.gvsig.project.castor.ProjectTable;
60

    
61

    
62
/**
63
 * Extensi?n que abre las tablas asociadas a las vistas.
64
 *
65
 * @author Vicente Caballero Navarro
66
 * 
67
 */
68
public class Tabla implements Extension {
69
        /**
70
         * @see com.iver.andami.plugins.Extension#isEnabled()
71
         */
72
        public boolean isEnabled() {
73
                View f = (View) PluginServices.getMDIManager().getActiveView();
74

    
75
                if (f == null) {
76
                        return false;
77
                }
78

    
79
                FLayer[] selected = f.getModel().getMapContext().getLayers().getActives();
80
        
81
        boolean algunaTabla = false;
82
        for (int i = 0; i < selected.length; i++) {
83
                        if (selected[i] instanceof AlphanumericData){
84
                                AlphanumericData co = (AlphanumericData) selected[i];
85
                                try {
86
                                        if (co.getRecordset() != null) {
87
                                                algunaTabla = true;
88
                                        }
89
                                } catch (DriverException e) {
90
                                }
91
                        }
92
                }
93

    
94
                return algunaTabla;
95
        }
96

    
97
        /**
98
         * @see com.iver.andami.plugins.Extension#isVisible()
99
         */
100
        public boolean isVisible() {
101
                com.iver.andami.ui.mdiManager.View f = PluginServices.getMDIManager()
102
                                                                                                                   .getActiveView();
103

    
104
                if (f == null) {
105
                        return false;
106
                }
107

    
108
                return (f.getClass() == View.class);
109
        }
110

    
111
        /**
112
         * @see com.iver.mdiApp.plugins.Extension#updateUI(java.lang.String)
113
         */
114
        public void execute(String s) {
115
                View vista = (View) PluginServices.getMDIManager().getActiveView();
116
                FLayer[] actives = ((View) vista).getModel().getMapContext().getLayers()
117
                                                        .getActives();
118

    
119
                 for (int i = 0; i < actives.length; i++) {
120
                if (actives[i] instanceof AlphanumericData){
121
                        AlphanumericData co = (AlphanumericData)actives[i];
122
                        
123
                                try {
124
                                        SelectableDataSource dataSource = co.getRecordset();
125
                                        ProjectExtension ext = (ProjectExtension) PluginServices
126
                                                                                                                                                  .getExtension(ProjectExtension.class);
127

    
128
                                        ProjectTable projectTable = ext.getProject().getTable(co);
129

    
130
                                        if (projectTable == null) {
131
                                                String strAux = PluginServices.getText(this, "Tabla de atributos de ");
132
                                                projectTable = ProjectFactory.createTable(strAux + actives[i].getName(), dataSource);
133
                                                projectTable.setAssociatedTable(co);
134
                                                ext.getProject().addTable(projectTable);
135
                                        }
136
                                        
137
                                        Table t = new Table();
138
                                        t.setModel(projectTable);
139
                                        PluginServices.getMDIManager().addView(t);
140
                                } catch (DriverException e) {
141
                                        NotificationManager.addError("Error al cargar los drivers",
142
                                                e);
143
                                }
144
                        }
145
                        
146
                }
147
        }
148

    
149
        /**
150
         * @see com.iver.andami.plugins.Extension#inicializar()
151
         */
152
        public void inicializar() {
153
        }
154
}