svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.prov / org.gvsig.exportto.swing.prov.jdbc / src / main / java / org / gvsig / exportto / swing / prov / jdbc / BaseExporttoJDBCProvider.java @ 43020
History | View | Annotate | Download (9.08 KB)
1 | 40559 | jjdelcerro | /**
|
---|---|---|---|
2 | * gvSIG. Desktop Geographic Information System.
|
||
3 | 40435 | jjdelcerro | *
|
4 | 40559 | jjdelcerro | * Copyright (C) 2007-2013 gvSIG Association.
|
5 | *
|
||
6 | 40435 | jjdelcerro | * This program is free software; you can redistribute it and/or
|
7 | * modify it under the terms of the GNU General Public License
|
||
8 | 40559 | jjdelcerro | * as published by the Free Software Foundation; either version 3
|
9 | 40435 | jjdelcerro | * of the License, or (at your option) any later version.
|
10 | 40559 | jjdelcerro | *
|
11 | 40435 | jjdelcerro | * This program is distributed in the hope that it will be useful,
|
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | 41492 | jjdelcerro | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 | 40435 | jjdelcerro | * GNU General Public License for more details.
|
15 | 40559 | jjdelcerro | *
|
16 | 40435 | jjdelcerro | * 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 | 40559 | jjdelcerro | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 | 41492 | jjdelcerro | * MA 02110-1301, USA.
|
20 | 40559 | jjdelcerro | *
|
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 | 40435 | jjdelcerro | */
|
24 | package org.gvsig.exportto.swing.prov.jdbc; |
||
25 | |||
26 | 41486 | jjdelcerro | import java.util.ArrayList; |
27 | import java.util.List; |
||
28 | 40435 | jjdelcerro | import org.cresques.cts.IProjection; |
29 | import org.gvsig.exportto.ExporttoService; |
||
30 | 41486 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.CheckGeometriesPanel; |
31 | 41638 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.GeometryIndexPanel; |
32 | 41598 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.IdentifiersOptionsPanel; |
33 | 40435 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.JDBCConnectionPanel; |
34 | 41638 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.UpdateTableStatisticsPanel; |
35 | import org.gvsig.exportto.swing.prov.jdbc.panel.PermissionsPanel; |
||
36 | import org.gvsig.exportto.swing.prov.jdbc.panel.PostCreatingStatementPanel; |
||
37 | 40435 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.SelectPkPanel; |
38 | import org.gvsig.exportto.swing.prov.jdbc.panel.SelectTableNamePanel; |
||
39 | 41598 | jjdelcerro | import org.gvsig.exportto.swing.spi.ExporttoSwingProvider; |
40 | 40435 | jjdelcerro | import org.gvsig.exportto.swing.spi.ExporttoSwingProviderPanel; |
41 | 41492 | jjdelcerro | import org.gvsig.fmap.dal.DALLocator; |
42 | import org.gvsig.fmap.dal.DataManager; |
||
43 | 40435 | jjdelcerro | import org.gvsig.fmap.dal.feature.FeatureStore; |
44 | 41127 | jldominguez | import org.gvsig.fmap.dal.feature.FeatureType; |
45 | 41492 | jjdelcerro | import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorer; |
46 | 41486 | jjdelcerro | import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters; |
47 | 40435 | jjdelcerro | import org.gvsig.tools.service.spi.AbstractProvider; |
48 | import org.gvsig.tools.service.spi.ProviderServices; |
||
49 | 41486 | jjdelcerro | import org.slf4j.Logger; |
50 | import org.slf4j.LoggerFactory; |
||
51 | 40435 | jjdelcerro | |
52 | /**
|
||
53 | * Exporto provider which gets Exporto from a file.
|
||
54 | 41492 | jjdelcerro | *
|
55 | 40435 | jjdelcerro | * @author gvSIG Team
|
56 | * @version $Id$
|
||
57 | */
|
||
58 | 41492 | jjdelcerro | public class BaseExporttoJDBCProvider extends AbstractProvider |
59 | 41598 | jjdelcerro | implements ExporttoJDBCOptions, ExporttoSwingProvider {
|
60 | 41492 | jjdelcerro | |
61 | 41127 | jldominguez | private static Logger logger = LoggerFactory.getLogger( |
62 | 41492 | jjdelcerro | BaseExporttoJDBCProvider.class); |
63 | 40435 | jjdelcerro | |
64 | 41486 | jjdelcerro | protected List<ExporttoSwingProviderPanel> panels = new ArrayList<ExporttoSwingProviderPanel>(); |
65 | 40435 | jjdelcerro | |
66 | 41486 | jjdelcerro | protected FeatureStore sourceStore;
|
67 | 40435 | jjdelcerro | protected IProjection projection;
|
68 | 41486 | jjdelcerro | private final JDBCConnectionPanel connectionPanel; |
69 | private final SelectPkPanel selectPkPanel; |
||
70 | private final SelectTableNamePanel selectTableNamePanel; |
||
71 | private final CheckGeometriesPanel checkGeometriesPanel; |
||
72 | 41598 | jjdelcerro | private final IdentifiersOptionsPanel identifiersOptionsPanel; |
73 | 42676 | dmartinezizquierdo | |
74 | 41638 | jjdelcerro | private final GeometryIndexPanel geometryIndexPanel; |
75 | private final UpdateTableStatisticsPanel updateTableStatistics; |
||
76 | private final PermissionsPanel permissionsPanel; |
||
77 | private final PostCreatingStatementPanel postCreatingStatementPanel; |
||
78 | 40435 | jjdelcerro | |
79 | 41492 | jjdelcerro | private String storeName = null; |
80 | 42676 | dmartinezizquierdo | |
81 | 41492 | jjdelcerro | public BaseExporttoJDBCProvider(ProviderServices providerServices,
|
82 | FeatureStore sourceStore, IProjection projection) { |
||
83 | 40435 | jjdelcerro | super(providerServices);
|
84 | 41486 | jjdelcerro | this.sourceStore = sourceStore;
|
85 | 40435 | jjdelcerro | this.projection = projection;
|
86 | |||
87 | 41127 | jldominguez | FeatureType ftype = null;
|
88 | try {
|
||
89 | 41486 | jjdelcerro | ftype = sourceStore.getDefaultFeatureType(); |
90 | 41127 | jldominguez | } catch (Exception exc) { |
91 | 41486 | jjdelcerro | logger.warn("Can't retrieve the feature type to use in the export to JDBC panel.", exc);
|
92 | 41492 | jjdelcerro | |
93 | 41127 | jldominguez | } |
94 | 41486 | jjdelcerro | this.connectionPanel = new JDBCConnectionPanel(this); |
95 | this.selectTableNamePanel = new SelectTableNamePanel(this); |
||
96 | 41488 | jjdelcerro | this.selectPkPanel = new SelectPkPanel(this); |
97 | 41486 | jjdelcerro | this.checkGeometriesPanel = new CheckGeometriesPanel(this); |
98 | 41598 | jjdelcerro | this.identifiersOptionsPanel = new IdentifiersOptionsPanel(this); |
99 | 42676 | dmartinezizquierdo | |
100 | 41638 | jjdelcerro | this.geometryIndexPanel = new GeometryIndexPanel(this); |
101 | this.updateTableStatistics = new UpdateTableStatisticsPanel(this); |
||
102 | this.permissionsPanel = new PermissionsPanel(this); |
||
103 | 42676 | dmartinezizquierdo | this.postCreatingStatementPanel = new PostCreatingStatementPanel(this); |
104 | 41486 | jjdelcerro | |
105 | 41598 | jjdelcerro | this.panels.add(this.identifiersOptionsPanel); |
106 | 41486 | jjdelcerro | this.panels.add(this.connectionPanel); |
107 | this.panels.add(this.selectTableNamePanel); |
||
108 | this.panels.add(this.selectPkPanel); |
||
109 | 42676 | dmartinezizquierdo | this.panels.add(this.geometryIndexPanel); |
110 | 41486 | jjdelcerro | this.panels.add(this.checkGeometriesPanel); |
111 | 42676 | dmartinezizquierdo | |
112 | 41638 | jjdelcerro | this.panels.add(this.permissionsPanel); |
113 | this.panels.add(this.updateTableStatistics); |
||
114 | this.panels.add(this.postCreatingStatementPanel); |
||
115 | 42676 | dmartinezizquierdo | |
116 | 40435 | jjdelcerro | } |
117 | |||
118 | 42676 | dmartinezizquierdo | |
119 | |||
120 | 40435 | jjdelcerro | public int getPanelCount() { |
121 | 41486 | jjdelcerro | return this.panels.size(); |
122 | 40435 | jjdelcerro | } |
123 | |||
124 | public ExporttoSwingProviderPanel getPanelAt(int index) { |
||
125 | 41486 | jjdelcerro | return this.panels.get(index); |
126 | 40435 | jjdelcerro | } |
127 | |||
128 | 41488 | jjdelcerro | public FeatureStore getSource() {
|
129 | return this.sourceStore; |
||
130 | } |
||
131 | 41492 | jjdelcerro | |
132 | 40435 | jjdelcerro | public ExporttoService createExporttoService() {
|
133 | 41486 | jjdelcerro | JDBCServerExplorerParameters explorerParameters = this.getExplorerParameters();
|
134 | explorerParameters.setSchema(this.getSchema());
|
||
135 | 41598 | jjdelcerro | return new ExporrtoJDBCService(this); |
136 | 41486 | jjdelcerro | } |
137 | 40435 | jjdelcerro | |
138 | 41598 | jjdelcerro | public boolean getTranslateIdentifiersToLowerCase() { |
139 | return this.identifiersOptionsPanel.getTranslateToLowerCase(); |
||
140 | } |
||
141 | |||
142 | public boolean getRemoveSpacesInIdentifiers() { |
||
143 | return this.identifiersOptionsPanel.getRemoveSpacesInTableName(); |
||
144 | } |
||
145 | 42676 | dmartinezizquierdo | |
146 | 41486 | jjdelcerro | public JDBCServerExplorerParameters getExplorerParameters() {
|
147 | return this.connectionPanel.getServerExplorerParameters(); |
||
148 | } |
||
149 | 41492 | jjdelcerro | |
150 | 41486 | jjdelcerro | public String getSchema() { |
151 | return this.selectTableNamePanel.getSchema(); |
||
152 | } |
||
153 | 40435 | jjdelcerro | |
154 | 41486 | jjdelcerro | public String getTableName() { |
155 | return this.selectTableNamePanel.getTableName(); |
||
156 | } |
||
157 | 40435 | jjdelcerro | |
158 | 41486 | jjdelcerro | public boolean canCreatetable() { |
159 | return this.selectTableNamePanel.canCreateTable(); |
||
160 | 40435 | jjdelcerro | } |
161 | |||
162 | 41486 | jjdelcerro | public String getPrimaryKey() { |
163 | return this.selectPkPanel.getPrimaryKeyName(); |
||
164 | } |
||
165 | 40435 | jjdelcerro | |
166 | 41486 | jjdelcerro | public int getGeometryChecks() { |
167 | return this.checkGeometriesPanel.getGeometryChecks(); |
||
168 | } |
||
169 | |||
170 | public int getGeometryChecksAction() { |
||
171 | return this.checkGeometriesPanel.getGeometryChecksAction(); |
||
172 | } |
||
173 | 41492 | jjdelcerro | |
174 | 41488 | jjdelcerro | public boolean getTryToFixGeometry() { |
175 | return this.checkGeometriesPanel.getTryToFixGeometry(); |
||
176 | } |
||
177 | 41492 | jjdelcerro | |
178 | 41486 | jjdelcerro | public String getExplorerName() { |
179 | return this.connectionPanel.getServerExplorerParameters().getExplorerName(); |
||
180 | } |
||
181 | 41492 | jjdelcerro | |
182 | public String getStoreName() { |
||
183 | if ( this.storeName == null ) { |
||
184 | try {
|
||
185 | JDBCServerExplorerParameters explorerParameters = this.getExplorerParameters();
|
||
186 | if ( explorerParameters == null ) { |
||
187 | return null; |
||
188 | } |
||
189 | DataManager dataManager = DALLocator.getDataManager(); |
||
190 | |||
191 | JDBCServerExplorer explorer = (JDBCServerExplorer) dataManager.openServerExplorer( |
||
192 | explorerParameters.getExplorerName(), |
||
193 | explorerParameters |
||
194 | ); |
||
195 | this.storeName = explorer.getStoreName();
|
||
196 | } catch (Exception ex) { |
||
197 | return null; |
||
198 | } |
||
199 | } |
||
200 | return this.storeName; |
||
201 | } |
||
202 | |||
203 | 41598 | jjdelcerro | public IProjection getTargetProjection() {
|
204 | return this.projection; |
||
205 | } |
||
206 | |||
207 | 41638 | jjdelcerro | public String getSelectRole() { |
208 | return this.permissionsPanel.getSelectRole(); |
||
209 | } |
||
210 | |||
211 | public String getInsertRole() { |
||
212 | return this.permissionsPanel.getInsertRole(); |
||
213 | } |
||
214 | |||
215 | public String getUpdateRole() { |
||
216 | return this.permissionsPanel.getUpdateRole(); |
||
217 | } |
||
218 | |||
219 | public String getDeleteRole() { |
||
220 | return this.permissionsPanel.getDeleteRole(); |
||
221 | } |
||
222 | |||
223 | public String getTruncateRole() { |
||
224 | return this.permissionsPanel.getTruncateRole(); |
||
225 | } |
||
226 | |||
227 | public String getReferenceRole() { |
||
228 | return this.permissionsPanel.getReferenceRole(); |
||
229 | } |
||
230 | |||
231 | public String getTriggerRole() { |
||
232 | return this.permissionsPanel.getTriggerRole(); |
||
233 | } |
||
234 | |||
235 | public String getAllRole() { |
||
236 | return this.permissionsPanel.getAllRole(); |
||
237 | } |
||
238 | |||
239 | public String getPostCreatingStatement() { |
||
240 | return this.postCreatingStatementPanel.getPostCreatingStatement(); |
||
241 | } |
||
242 | |||
243 | public boolean getCreateIndexInGeometryRow() { |
||
244 | return this.geometryIndexPanel.getCreateIndexInGeometryRow(); |
||
245 | } |
||
246 | |||
247 | public boolean getUpdateTableStatistics() { |
||
248 | return this.updateTableStatistics.getUpdateTableStatistics(); |
||
249 | } |
||
250 | 42676 | dmartinezizquierdo | |
251 | /**
|
||
252 | * Sets the target projection to which should be exported
|
||
253 | * @param targetProjection
|
||
254 | */
|
||
255 | public void setTargetProjection(IProjection targetProjection){ |
||
256 | this.projection=targetProjection;
|
||
257 | } |
||
258 | |||
259 | /**
|
||
260 | * Informs if it needs to ask for a target projection,
|
||
261 | * or if it is not needed or provided through its own wizard panel.
|
||
262 | * @return
|
||
263 | */
|
||
264 | public boolean needsPanelTargetProjection(){ |
||
265 | return true; |
||
266 | } |
||
267 | |||
268 | 40435 | jjdelcerro | } |