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 @ 43920
History | View | Annotate | Download (5.21 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 | import org.gvsig.exportto.ExporttoService; |
||
27 | 41638 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.GeometryIndexPanel; |
28 | 41598 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.IdentifiersOptionsPanel; |
29 | 40435 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.JDBCConnectionPanel; |
30 | 41638 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.UpdateTableStatisticsPanel; |
31 | import org.gvsig.exportto.swing.prov.jdbc.panel.PermissionsPanel; |
||
32 | import org.gvsig.exportto.swing.prov.jdbc.panel.PostCreatingStatementPanel; |
||
33 | 40435 | jjdelcerro | import org.gvsig.exportto.swing.prov.jdbc.panel.SelectPkPanel; |
34 | import org.gvsig.exportto.swing.prov.jdbc.panel.SelectTableNamePanel; |
||
35 | 43920 | jjdelcerro | import org.gvsig.exportto.swing.spi.AbstractExporttoSwingProvider; |
36 | 41598 | jjdelcerro | import org.gvsig.exportto.swing.spi.ExporttoSwingProvider; |
37 | 43920 | jjdelcerro | import org.gvsig.exportto.swing.spi.panels.CheckGeometriesPanel; |
38 | 41492 | jjdelcerro | import org.gvsig.fmap.dal.DALLocator; |
39 | import org.gvsig.fmap.dal.DataManager; |
||
40 | 40435 | jjdelcerro | import org.gvsig.fmap.dal.feature.FeatureStore; |
41 | 41127 | jldominguez | import org.gvsig.fmap.dal.feature.FeatureType; |
42 | 41492 | jjdelcerro | import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorer; |
43 | 41486 | jjdelcerro | import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters; |
44 | 40435 | jjdelcerro | import org.gvsig.tools.service.spi.ProviderServices; |
45 | 41486 | jjdelcerro | import org.slf4j.Logger; |
46 | import org.slf4j.LoggerFactory; |
||
47 | 40435 | jjdelcerro | |
48 | /**
|
||
49 | * Exporto provider which gets Exporto from a file.
|
||
50 | 41492 | jjdelcerro | *
|
51 | 40435 | jjdelcerro | * @author gvSIG Team
|
52 | * @version $Id$
|
||
53 | */
|
||
54 | 43920 | jjdelcerro | public class BaseExporttoJDBCProvider |
55 | extends AbstractExporttoSwingProvider
|
||
56 | implements ExporttoSwingProvider {
|
||
57 | 41492 | jjdelcerro | |
58 | 43920 | jjdelcerro | private static final Logger logger = LoggerFactory.getLogger( |
59 | 41492 | jjdelcerro | BaseExporttoJDBCProvider.class); |
60 | 40435 | jjdelcerro | |
61 | 41492 | jjdelcerro | private String storeName = null; |
62 | 42676 | dmartinezizquierdo | |
63 | 43920 | jjdelcerro | @SuppressWarnings("OverridableMethodCallInConstructor") |
64 | public BaseExporttoJDBCProvider(
|
||
65 | ProviderServices providerServices, |
||
66 | FeatureStore sourceStore |
||
67 | ) { |
||
68 | super(providerServices, sourceStore);
|
||
69 | 40435 | jjdelcerro | |
70 | 41127 | jldominguez | FeatureType ftype = null;
|
71 | try {
|
||
72 | 41486 | jjdelcerro | ftype = sourceStore.getDefaultFeatureType(); |
73 | 41127 | jldominguez | } catch (Exception exc) { |
74 | 41486 | jjdelcerro | logger.warn("Can't retrieve the feature type to use in the export to JDBC panel.", exc);
|
75 | 41492 | jjdelcerro | |
76 | 41127 | jldominguez | } |
77 | 43920 | jjdelcerro | this.panelAdd(new IdentifiersOptionsPanel(this.getOptions())); |
78 | this.panelAdd(new JDBCConnectionPanel(this.getOptions())); |
||
79 | this.panelAdd(new SelectTableNamePanel(this.getOptions())); |
||
80 | this.panelAdd(new SelectPkPanel(this.getOptions())); |
||
81 | this.panelAdd(new GeometryIndexPanel(this.getOptions())); |
||
82 | this.panelAdd(new CheckGeometriesPanel(this.getOptions())); |
||
83 | this.panelAdd(new PermissionsPanel(this.getOptions())); |
||
84 | this.panelAdd(new UpdateTableStatisticsPanel(this.getOptions())); |
||
85 | this.panelAdd(new PostCreatingStatementPanel(this.getOptions())); |
||
86 | 42676 | dmartinezizquierdo | |
87 | 40435 | jjdelcerro | } |
88 | |||
89 | 43920 | jjdelcerro | |
90 | @Override
|
||
91 | public ExporttoJDBCOptions getOptions() {
|
||
92 | if( this.options == null ) { |
||
93 | this.options = new BaseExporttoJDBCOptions(); |
||
94 | } |
||
95 | return (ExporttoJDBCOptions) this.options; |
||
96 | 40435 | jjdelcerro | } |
97 | |||
98 | 43920 | jjdelcerro | @Override
|
99 | 40435 | jjdelcerro | public ExporttoService createExporttoService() {
|
100 | 43920 | jjdelcerro | ExporttoJDBCOptions theOptions = this.getOptions();
|
101 | JDBCServerExplorerParameters explorerParameters = theOptions.getExplorerParameters(); |
||
102 | explorerParameters.setSchema(theOptions.getSchema()); |
||
103 | return new ExporrtoJDBCService(theOptions); |
||
104 | 41486 | jjdelcerro | } |
105 | 40435 | jjdelcerro | |
106 | 41598 | jjdelcerro | |
107 | 41492 | jjdelcerro | public String getStoreName() { |
108 | if ( this.storeName == null ) { |
||
109 | try {
|
||
110 | 43920 | jjdelcerro | JDBCServerExplorerParameters explorerParameters = this.getOptions().getExplorerParameters();
|
111 | 41492 | jjdelcerro | if ( explorerParameters == null ) { |
112 | return null; |
||
113 | } |
||
114 | DataManager dataManager = DALLocator.getDataManager(); |
||
115 | |||
116 | JDBCServerExplorer explorer = (JDBCServerExplorer) dataManager.openServerExplorer( |
||
117 | explorerParameters.getExplorerName(), |
||
118 | explorerParameters |
||
119 | ); |
||
120 | this.storeName = explorer.getStoreName();
|
||
121 | } catch (Exception ex) { |
||
122 | return null; |
||
123 | } |
||
124 | } |
||
125 | return this.storeName; |
||
126 | } |
||
127 | |||
128 | 42676 | dmartinezizquierdo | /**
|
129 | * Informs if it needs to ask for a target projection,
|
||
130 | * or if it is not needed or provided through its own wizard panel.
|
||
131 | * @return
|
||
132 | */
|
||
133 | 43920 | jjdelcerro | @Override
|
134 | 42676 | dmartinezizquierdo | public boolean needsPanelTargetProjection(){ |
135 | return true; |
||
136 | } |
||
137 | |||
138 | 40435 | jjdelcerro | } |