Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.geodb.app / org.gvsig.geodb.app.mainplugin / src / main / java / org / gvsig / geodb / vectorialdb / wizard / TablesListItemVectorial.java @ 40557

History | View | Annotate | Download (4.75 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * 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 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * 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
 *
16
 * 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
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/* gvSIG. Geographic Information System of the Valencian Government
25
*
26
* Copyright (C) 2007-2008 Infrastructures and Transports Department
27
* of the Valencian Government (CIT)
28
*
29
* This program is free software; you can redistribute it and/or
30
* modify it under the terms of the GNU General Public License
31
* as published by the Free Software Foundation; either version 2
32
* of the License, or (at your option) any later version.
33
*
34
* This program is distributed in the hope that it will be useful,
35
* but WITHOUT ANY WARRANTY; without even the implied warranty of
36
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37
* GNU General Public License for more details.
38
*
39
* You should have received a copy of the GNU General Public License
40
* along with this program; if not, write to the Free Software
41
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
42
* MA  02110-1301, USA.
43
*
44
*/
45

    
46
/*
47
* AUTHORS (In addition to CIT):
48
* 2009 IVER T.I   {{Task}}
49
*/
50

    
51
package org.gvsig.geodb.vectorialdb.wizard;
52

    
53
import java.util.ArrayList;
54
import java.util.Iterator;
55

    
56
import org.gvsig.andami.messages.NotificationManager;
57
import org.gvsig.fmap.dal.DataTypes;
58
import org.gvsig.fmap.dal.exception.DataException;
59
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
60
import org.gvsig.fmap.dal.feature.FeatureType;
61
import org.gvsig.fmap.dal.serverexplorer.db.DBServerExplorer;
62
import org.gvsig.fmap.dal.store.db.DBStoreParameters;
63
import org.gvsig.fmap.mapcontrol.MapControl;
64

    
65

    
66
public class TablesListItemVectorial extends TablesListItem {
67
        private MapControl mc;
68

    
69

    
70
        public TablesListItemVectorial(DBServerExplorer explorer,
71
                        DBStoreParameters param,
72
                        MapControl _mc, WizardVectorialDB _parent) {
73
                super(explorer, param, _parent);
74
                mc = _mc;
75
        }
76

    
77
    public UserTableSettingsPanel getUserTableSettingsPanel(String espView) {
78
                if (tableSettingsPanel == null) {
79

    
80
                        String[] ids = new String[0];
81
                        FeatureType ft = null;
82
                        FeatureAttributeDescriptor dbattr = null;
83

    
84
                        try {
85
                                ft = explorer.getFeatureType(parameters);
86
                        } catch (DataException e) {
87
                                NotificationManager.addError(e);
88
                                return null;
89
                        }
90

    
91
                        ArrayList auxAll = new ArrayList();
92

    
93
                        ArrayList geo_atts = new ArrayList();
94
                        ArrayList auxId = new ArrayList();
95
                        Iterator iter = ft.iterator();
96
                        while (iter.hasNext()) {
97
                                dbattr = (FeatureAttributeDescriptor) iter.next();
98
                                if (dbattr.getDataType().getType() == DataTypes.GEOMETRY) {
99
                                    geo_atts.add(dbattr);
100
                                }
101
                                if (dbattr.isPrimaryKey()) {
102
                                        auxId.add(dbattr.getName());
103
                                }
104
                                auxAll.add(dbattr.getName());
105

    
106
                        }
107

    
108
                        if (auxId.size() > 0) {
109
                                StringBuilder strb = new StringBuilder();
110
                                strb.append('{');
111
                                for (int i = 0; i < auxId.size() - 1; i++) {
112
                                        strb.append(auxId.get(i));
113
                                        strb.append(',');
114
                                }
115
                                strb.append(auxId.get(auxId.size() - 1));
116

    
117
                                strb.append('}');
118
                                if (auxId.size() == 1) {
119
                                        auxAll.remove(auxId.get(0));
120
                                }
121
                                auxAll.add(0, strb.toString());
122
                        }
123
                        ids = (String[]) auxAll.toArray(new String[auxAll.size()]);
124
                        int ids_size = ids.length;
125
                        FieldComboItem[] ids_ci = new FieldComboItem[ids_size];
126

    
127
                        for (int i = 0; i < ids_size; i++) {
128
                                ids_ci[i] = new FieldComboItem(ids[i]);
129
                        }
130

    
131

    
132
                        int geos_size = geo_atts.size();
133
                        FieldComboItem[] geos_ci = new FieldComboItem[geos_size];
134

    
135
                        for (int i = 0; i < geos_size; i++) {
136
                            dbattr = (FeatureAttributeDescriptor) geo_atts.get(i);
137
                                geos_ci[i] = new FieldComboItem(dbattr.getName(), dbattr.getSRS());
138
                        }
139

    
140
                        tableSettingsPanel = new UserTableSettingsVectorialPanel(ids_ci,
141
                                        geos_ci,
142
                                        tableName, mc, false, (WizardVectorialDB) parent,
143
                                        getParameters(),
144
                                        currentProjection(espView,
145
                                                        ids_ci, geos_ci));
146
                }
147

    
148
                return tableSettingsPanel;
149
        }
150

    
151
    public void setEnabledPanels(boolean b) {
152
            super.setEnabledPanels(b);
153
                tableSettingsPanel.enableSpatialControls(b);
154
                tableSettingsPanel.enableAlphaControls(b);
155
        }
156

    
157
}