Revision 25068 branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/TableOperations.java
TableOperations.java | ||
---|---|---|
46 | 46 |
|
47 | 47 |
import javax.swing.JOptionPane; |
48 | 48 |
|
49 |
import org.gvsig.fmap.dal.DALLocator; |
|
49 | 50 |
import org.gvsig.fmap.dal.DataManager; |
50 | 51 |
import org.gvsig.fmap.dal.exception.DataException; |
51 | 52 |
import org.gvsig.fmap.dal.exception.ReadException; |
52 | 53 |
import org.gvsig.fmap.dal.feature.Feature; |
54 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
53 | 55 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
54 | 56 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
57 |
import org.gvsig.project.document.table.FeatureTableDocument; |
|
58 |
import org.gvsig.project.document.table.FeatureTableDocumentFactory; |
|
59 |
import org.gvsig.project.document.table.gui.FeatureTableDocumentPanel; |
|
55 | 60 |
import org.opengis.feature.FeatureCollection; |
56 | 61 |
|
57 | 62 |
import com.iver.andami.PluginServices; |
... | ... | |
62 | 67 |
import com.iver.cit.gvsig.project.Project; |
63 | 68 |
import com.iver.cit.gvsig.project.documents.table.FieldSelectionModel; |
64 | 69 |
import com.iver.cit.gvsig.project.documents.table.ObjectSelectionStep; |
65 |
import com.iver.cit.gvsig.project.documents.table.ProjectTable; |
|
66 |
import com.iver.cit.gvsig.project.documents.table.ProjectTableFactory; |
|
67 | 70 |
import com.iver.cit.gvsig.project.documents.table.TableSelectionModel; |
68 | 71 |
import com.iver.cit.gvsig.project.documents.table.gui.AndamiWizard; |
69 |
import com.iver.cit.gvsig.project.documents.table.gui.Table; |
|
70 | 72 |
import com.iver.utiles.swing.objectSelection.SelectionException; |
71 | 73 |
import com.iver.utiles.swing.wizard.WizardControl; |
72 | 74 |
import com.iver.utiles.swing.wizard.WizardEvent; |
... | ... | |
88 | 90 |
public void execute(String actionCommand) { |
89 | 91 |
ProjectExtension pe = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class); |
90 | 92 |
Project project=pe.getProject(); |
91 |
ProjectTable[] pts = project.getDocumentsByType(ProjectTableFactory.registerName)
|
|
92 |
.toArray(new ProjectTable[0]);
|
|
93 |
FeatureTableDocument[] pts = project.getDocumentsByType(FeatureTableDocumentFactory.registerName)
|
|
94 |
.toArray(new FeatureTableDocument[0]);
|
|
93 | 95 |
if ("JOIN".equals(actionCommand)) { |
94 | 96 |
try { |
95 | 97 |
final ObjectSelectionStep sourceTable = new ObjectSelectionStep(); |
... | ... | |
117 | 119 |
public void finished(WizardEvent w) { |
118 | 120 |
PluginServices.getMDIManager().closeWindow(wiz); |
119 | 121 |
|
120 |
ProjectTable sourceProjectTable = (ProjectTable) sourceTable.getSelected();
|
|
121 |
FeatureStore fs1 = sourceProjectTable.getModel();
|
|
122 |
FeatureTableDocument sourceProjectTable = (FeatureTableDocument) sourceTable.getSelected();
|
|
123 |
FeatureStore fs1 = sourceProjectTable.getStore();
|
|
122 | 124 |
String tableName1 = fs1.getName(); |
123 | 125 |
|
124 |
ProjectTable targetProjectTable = (ProjectTable) targetTable.getSelected();
|
|
125 |
FeatureStore fs2 = targetProjectTable.getModel();
|
|
126 |
FeatureTableDocument targetProjectTable = (FeatureTableDocument) targetTable.getSelected();
|
|
127 |
FeatureStore fs2 = targetProjectTable.getStore();
|
|
126 | 128 |
|
127 | 129 |
String tableName2 = fs2.getName(); |
128 | 130 |
|
... | ... | |
136 | 138 |
System.out.println(sql); |
137 | 139 |
|
138 | 140 |
try { |
139 |
DataManager dm=DataManager.getManager();
|
|
141 |
DataManager dm=DALLocator.getDataManager();
|
|
140 | 142 |
JoinFeatureStoreParameters jfsp=(JoinFeatureStoreParameters)dm.createDataStoreParameters(JoinFeatureStore.DATASTORE_NAME); |
141 | 143 |
jfsp.setStorePrimary(fs1.getParameters()); |
142 | 144 |
jfsp.setStoreSecondary(fs2.getParameters()); |
... | ... | |
147 | 149 |
|
148 | 150 |
JoinFeatureStore jfs=(JoinFeatureStore)dm.createDataStore(jfsp); |
149 | 151 |
featureStore=jfs; |
150 |
ProjectTable projectTable = (ProjectTable) sourceTable.getSelected();
|
|
151 |
FeatureStore original = projectTable.getModel();
|
|
152 |
FeatureTableDocument projectTable = (FeatureTableDocument) sourceTable.getSelected();
|
|
153 |
FeatureStore original = projectTable.getStore();
|
|
152 | 154 |
projectTable.setModel(jfs); |
153 | 155 |
|
154 |
if (projectTable.getAssociatedTable() != null) {
|
|
155 |
projectTable.getAssociatedTable().setDataStore(
|
|
156 |
if (projectTable.getAssociatedLayer() != null) {
|
|
157 |
projectTable.getAssociatedLayer().setDataStore(
|
|
156 | 158 |
jfs); |
157 | 159 |
} |
158 | 160 |
|
159 | 161 |
original.dispose(); |
160 | 162 |
|
161 | 163 |
IWindow[] windows=PluginServices.getMDIManager().getAllWindows(); |
162 |
Table tableWindow;
|
|
164 |
FeatureTableDocumentPanel tableWindow;
|
|
163 | 165 |
for (int i = 0; i < windows.length; i++) { |
164 |
if (windows[i] instanceof Table){
|
|
165 |
tableWindow = (Table) windows[i];
|
|
166 |
if (windows[i] instanceof FeatureTableDocumentPanel){
|
|
167 |
tableWindow = (FeatureTableDocumentPanel) windows[i];
|
|
166 | 168 |
if (tableWindow.getModel().equals( |
167 | 169 |
projectTable)) { |
168 | 170 |
tableWindow.setModel(projectTable); |
... | ... | |
183 | 185 |
wiz.enableNext(((ObjectSelectionStep) wiz.getCurrentStep()).getSelectedItem() != null); |
184 | 186 |
|
185 | 187 |
if (w.currentStep == 1) { |
186 |
ProjectTable pt = (ProjectTable) sourceTable.getSelected();
|
|
188 |
FeatureTableDocument pt = (FeatureTableDocument) sourceTable.getSelected();
|
|
187 | 189 |
|
188 | 190 |
try { |
189 | 191 |
firstTableField.setModel(new FieldSelectionModel( |
190 |
pt.getModel(),
|
|
192 |
pt.getStore(),
|
|
191 | 193 |
PluginServices.getText(this, "seleccione_campo_enlace"), |
192 | 194 |
null)); |
193 | 195 |
} catch (SelectionException e) { |
... | ... | |
197 | 199 |
} else if (w.currentStep == 3) { |
198 | 200 |
try { |
199 | 201 |
//tabla |
200 |
ProjectTable pt = (ProjectTable) sourceTable.getSelected();
|
|
202 |
FeatureTableDocument pt = (FeatureTableDocument) sourceTable.getSelected();
|
|
201 | 203 |
|
202 | 204 |
//?ndice del campo |
203 |
FeatureStore fs = pt.getModel();
|
|
205 |
FeatureStore fs = pt.getStore();
|
|
204 | 206 |
String fieldName = (String) firstTableField.getSelected(); |
205 |
String type = fs.getDefaultFeatureType().get(fieldName).getDataType();
|
|
207 |
int type = ((FeatureAttributeDescriptor)fs.getDefaultFeatureType().get(fieldName)).getDataType();
|
|
206 | 208 |
|
207 | 209 |
|
208 | 210 |
secondTableField.setModel(new FieldSelectionModel( |
209 |
((ProjectTable) targetTable
|
|
211 |
((FeatureTableDocument) targetTable
|
|
210 | 212 |
.getSelected()) |
211 |
.getModel(),
|
|
213 |
.getStore(),
|
|
212 | 214 |
PluginServices.getText(this, "seleccione_campo_enlace"), |
213 | 215 |
type)); |
214 | 216 |
} catch (SelectionException e) { |
... | ... | |
256 | 258 |
public void finished(WizardEvent w) { |
257 | 259 |
PluginServices.getMDIManager().closeWindow(wiz); |
258 | 260 |
|
259 |
ProjectTable sourceProjectTable = (ProjectTable) sourceTable.getSelected();
|
|
260 |
FeatureStore sds1 = sourceProjectTable.getModel();
|
|
261 |
FeatureTableDocument sourceProjectTable = (FeatureTableDocument) sourceTable.getSelected();
|
|
262 |
FeatureStore sds1 = sourceProjectTable.getStore();
|
|
261 | 263 |
|
262 |
ProjectTable targetProjectTable = (ProjectTable) targetTable.getSelected();
|
|
263 |
FeatureStore sds2 = targetProjectTable.getModel();
|
|
264 |
FeatureTableDocument targetProjectTable = (FeatureTableDocument) targetTable.getSelected();
|
|
265 |
FeatureStore sds2 = targetProjectTable.getStore();
|
|
264 | 266 |
|
265 | 267 |
String field1 = (String) firstTableField.getSelected(); |
266 | 268 |
String field2 = (String) secondTableField.getSelected(); |
... | ... | |
275 | 277 |
wiz.enableNext(((ObjectSelectionStep) wiz.getCurrentStep()).getSelectedItem() != null); |
276 | 278 |
|
277 | 279 |
if (w.currentStep == 1) { |
278 |
ProjectTable pt = (ProjectTable) sourceTable.getSelected();
|
|
280 |
FeatureTableDocument pt = (FeatureTableDocument) sourceTable.getSelected();
|
|
279 | 281 |
|
280 | 282 |
try { |
281 | 283 |
firstTableField.setModel(new FieldSelectionModel( |
282 |
pt.getModel(),
|
|
284 |
pt.getStore(),
|
|
283 | 285 |
PluginServices.getText(this, "seleccione_campo_enlace"), |
284 | 286 |
null)); |
285 | 287 |
} catch (SelectionException e) { |
... | ... | |
289 | 291 |
} else if (w.currentStep == 3) { |
290 | 292 |
try { |
291 | 293 |
//tabla |
292 |
ProjectTable pt = (ProjectTable) sourceTable.getSelected();
|
|
294 |
FeatureTableDocument pt = (FeatureTableDocument) sourceTable.getSelected();
|
|
293 | 295 |
|
294 | 296 |
//?ndice del campo |
295 |
FeatureStore fs = pt.getModel();
|
|
297 |
FeatureStore fs = pt.getStore();
|
|
296 | 298 |
String fieldName = (String) firstTableField.getSelected(); |
297 | 299 |
String type = fs.getDefaultFeatureType().get(fieldName).getDataType(); |
298 | 300 |
|
299 | 301 |
secondTableField.setModel(new FieldSelectionModel( |
300 |
((ProjectTable) targetTable
|
|
302 |
((FeatureTableDocument) targetTable
|
|
301 | 303 |
.getSelected()) |
302 |
.getModel(),
|
|
304 |
.getStore(),
|
|
303 | 305 |
PluginServices.getText(this, "seleccione_campo_enlace"), |
304 | 306 |
type)); |
305 | 307 |
} catch (SelectionException e) { |
... | ... | |
359 | 361 |
// By Pablo: if no filter expression -> don't add more elements to set |
360 | 362 |
if (! this.filterExpressionFromWhereIsEmpty(expression)) { |
361 | 363 |
FeatureCollection sel=null; |
362 |
try { |
|
363 |
sel = doSet(expression); |
|
364 |
} catch (ReadException e) { |
|
365 |
throw new DataException("Expression",e); |
|
366 |
} |
|
364 |
sel = doSet(expression); |
|
367 | 365 |
|
368 | 366 |
if (sel == null) { |
369 | 367 |
throw new RuntimeException("Not a 'where' clause?"); |
... | ... | |
444 | 442 |
return false; |
445 | 443 |
} |
446 | 444 |
|
447 |
if (v instanceof Table) {
|
|
445 |
if (v instanceof FeatureTableDocumentPanel) {
|
|
448 | 446 |
return true; |
449 | 447 |
} /*else { |
450 | 448 |
if (v instanceof com.iver.cit.gvsig.gui.View) { |
Also available in: Unified diff