Revision 6313 trunk/extensions/extCAD/src/com/iver/cit/gvsig/ExportTo.java
ExportTo.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.awt.Component; |
4 | 4 |
import java.io.File; |
5 |
import java.io.IOException; |
|
5 | 6 |
import java.sql.Connection; |
6 | 7 |
import java.sql.DriverManager; |
7 | 8 |
import java.sql.SQLException; |
... | ... | |
11 | 12 |
import javax.swing.JOptionPane; |
12 | 13 |
import javax.swing.ProgressMonitor; |
13 | 14 |
|
15 |
import com.hardcode.driverManager.Driver; |
|
14 | 16 |
import com.hardcode.driverManager.DriverLoadException; |
15 | 17 |
import com.hardcode.gdbms.engine.values.Value; |
16 | 18 |
import com.iver.andami.PluginServices; |
... | ... | |
26 | 28 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
27 | 29 |
import com.iver.cit.gvsig.fmap.drivers.FieldDescription; |
28 | 30 |
import com.iver.cit.gvsig.fmap.drivers.SHPLayerDefinition; |
31 |
import com.iver.cit.gvsig.fmap.drivers.VectorialDriver; |
|
29 | 32 |
import com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGISWriter; |
33 |
import com.iver.cit.gvsig.fmap.drivers.shp.IndexedShpDriver; |
|
30 | 34 |
import com.iver.cit.gvsig.fmap.edition.DefaultRowEdited; |
31 | 35 |
import com.iver.cit.gvsig.fmap.edition.EditionException; |
32 | 36 |
import com.iver.cit.gvsig.fmap.edition.IWriter; |
... | ... | |
57 | 61 |
ReadableVectorial va; |
58 | 62 |
SelectableDataSource sds; |
59 | 63 |
FBitSet bitSet; |
60 |
public WriterTask(FLyrVect lyr, IWriter writer) throws DriverException, DriverIOException |
|
64 |
FMap mapContext; |
|
65 |
VectorialDriver reader; |
|
66 |
|
|
67 |
public WriterTask(FMap mapContext, FLyrVect lyr, IWriter writer, Driver reader) throws DriverException, DriverIOException |
|
61 | 68 |
{ |
69 |
this.mapContext = mapContext; |
|
62 | 70 |
this.lyrVect = lyr; |
63 | 71 |
this.writer = writer; |
72 |
this.reader = (VectorialDriver) reader; |
|
64 | 73 |
|
65 | 74 |
setInitialStep(0); |
66 | 75 |
setDeterminatedProcess(true); |
... | ... | |
127 | 136 |
|
128 | 137 |
writer.postProcess(); |
129 | 138 |
|
130 |
JOptionPane.showMessageDialog(
|
|
139 |
int res = JOptionPane.showConfirmDialog(
|
|
131 | 140 |
(JComponent) PluginServices.getMDIManager().getActiveView() |
132 | 141 |
, PluginServices.getText(this, "capa_exportada"), PluginServices.getText(this,"export_to"), |
133 |
JOptionPane.INFORMATION_MESSAGE); |
|
142 |
JOptionPane.YES_NO_OPTION); |
|
143 |
if (reader != null) |
|
144 |
{ |
|
145 |
if (res == JOptionPane.YES_OPTION) |
|
146 |
{ |
|
147 |
FLayer newLayer = LayerFactory.createLayer( |
|
148 |
writer.getTableDefinition().getName(), reader, mapContext.getProjection()); |
|
149 |
mapContext.getLayers().addLayer(newLayer); |
|
150 |
} |
|
151 |
} |
|
134 | 152 |
|
135 | 153 |
} |
136 | 154 |
|
... | ... | |
173 | 191 |
} |
174 | 192 |
} // if numSelec > 0 |
175 | 193 |
if (actionCommand.equals("SHP")) { |
176 |
saveToShp(lv); |
|
194 |
saveToShp(mapa, lv);
|
|
177 | 195 |
} |
178 | 196 |
if (actionCommand.equals("DXF")) { |
179 |
saveToDxf(lv); |
|
197 |
saveToDxf(mapa, lv);
|
|
180 | 198 |
} |
181 | 199 |
if (actionCommand.equals("POSTGIS")) { |
182 |
saveToPostGIS(lv); |
|
200 |
saveToPostGIS(mapa, lv);
|
|
183 | 201 |
} |
184 | 202 |
} // actives[i] |
185 | 203 |
} // for |
... | ... | |
197 | 215 |
} |
198 | 216 |
} |
199 | 217 |
|
200 |
public void saveToPostGIS(FLyrVect layer) throws EditionException, DriverIOException { |
|
218 |
public void saveToPostGIS(FMap mapContext, FLyrVect layer) throws EditionException, DriverIOException {
|
|
201 | 219 |
try { |
202 | 220 |
String tableName = JOptionPane.showInputDialog(PluginServices |
203 | 221 |
.getText(this, "intro_tablename")); |
... | ... | |
232 | 250 |
writer.setWriteAll(true); |
233 | 251 |
writer.setCreateTable(true); |
234 | 252 |
writer.initialize(dbLayerDef); |
235 |
writeFeatures(layer, writer);
|
|
253 |
writeFeatures(mapContext, layer, writer, null);
|
|
236 | 254 |
|
237 | 255 |
} catch (DriverException e) { |
238 | 256 |
e.printStackTrace(); |
... | ... | |
248 | 266 |
|
249 | 267 |
} |
250 | 268 |
|
251 |
private void writeFeatures(FLyrVect layer, IWriter writer) throws DriverException, DriverIOException
|
|
269 |
private void writeFeatures(FMap mapContext, FLyrVect layer, IWriter writer, Driver reader) throws DriverException, DriverIOException
|
|
252 | 270 |
{ |
253 |
PluginServices.cancelableBackgroundExecution(new WriterTask(layer, writer));
|
|
271 |
PluginServices.cancelableBackgroundExecution(new WriterTask(mapContext, layer, writer, reader));
|
|
254 | 272 |
} |
255 | 273 |
|
256 | 274 |
/** |
... | ... | |
333 | 351 |
progress.close(); |
334 | 352 |
} |
335 | 353 |
|
336 |
public void saveToDxf(FLyrVect layer) throws EditionException, DriverIOException { |
|
354 |
public void saveToDxf(FMap mapContext, FLyrVect layer) throws EditionException, DriverIOException {
|
|
337 | 355 |
try { |
338 | 356 |
JFileChooser jfc = new JFileChooser(); |
339 | 357 |
SimpleFileFilter filterShp = new SimpleFileFilter("dxf", |
... | ... | |
363 | 381 |
// TODO: Recuperar aqu? los campos del cuadro de di?logo. |
364 | 382 |
writer.setFieldMapping(fieldsMapping); |
365 | 383 |
|
366 |
writeFeatures(layer, writer);
|
|
384 |
writeFeatures(mapContext, layer, writer, null);
|
|
367 | 385 |
} |
368 | 386 |
|
369 | 387 |
} catch (DriverException e) { |
... | ... | |
376 | 394 |
|
377 | 395 |
} |
378 | 396 |
|
379 |
public void saveToShp(FLyrVect layer) throws EditionException, DriverIOException { |
|
397 |
public void saveToShp(FMap mapContext, FLyrVect layer) throws EditionException, DriverIOException {
|
|
380 | 398 |
try { |
381 | 399 |
JFileChooser jfc = new JFileChooser(); |
382 | 400 |
SimpleFileFilter filterShp = new SimpleFileFilter("shp", |
... | ... | |
416 | 434 |
writer.setFile(filePoints); |
417 | 435 |
lyrDef.setFile(filePoints); |
418 | 436 |
writer.initialize(lyrDef); |
419 |
writeFeatures(layer, writer);
|
|
437 |
writeFeatures(mapContext, layer, writer, null);
|
|
420 | 438 |
|
421 | 439 |
// Lineas |
422 | 440 |
aux = path.replaceFirst(".shp", "_line.shp"); |
... | ... | |
427 | 445 |
writer.setFile(fileLines); |
428 | 446 |
lyrDef.setFile(fileLines); |
429 | 447 |
writer.initialize(lyrDef); |
430 |
writeFeatures(layer, writer);
|
|
448 |
writeFeatures(mapContext, layer, writer, null);
|
|
431 | 449 |
|
432 | 450 |
// Pol?gonos |
433 | 451 |
aux = path.replaceFirst(".shp", "_polygons.shp"); |
... | ... | |
438 | 456 |
writer.setFile(filePolygons); |
439 | 457 |
lyrDef.setFile(filePolygons); |
440 | 458 |
writer.initialize(lyrDef); |
441 |
writeFeatures(layer, writer);
|
|
459 |
writeFeatures(mapContext, layer, writer, null);
|
|
442 | 460 |
} else { |
461 |
IndexedShpDriver drv = new IndexedShpDriver(); |
|
462 |
drv.open(newFile); |
|
463 |
|
|
443 | 464 |
lyrDef.setFile(newFile); |
444 | 465 |
lyrDef.setName(newFile.getName()); |
445 | 466 |
lyrDef.setShapeType(layer.getShapeType()); |
446 | 467 |
writer.setFile(newFile); |
447 | 468 |
writer.initialize(lyrDef); |
448 | 469 |
|
449 |
writeFeatures(layer, writer);
|
|
470 |
writeFeatures(mapContext, layer, writer, drv);
|
|
450 | 471 |
|
451 | 472 |
} |
452 | 473 |
} |
... | ... | |
456 | 477 |
} catch (com.hardcode.gdbms.engine.data.driver.DriverException e) { |
457 | 478 |
e.printStackTrace(); |
458 | 479 |
throw new EditionException(e); |
480 |
} catch (IOException e) { |
|
481 |
e.printStackTrace(); |
|
482 |
throw new EditionException(e); |
|
459 | 483 |
} |
460 | 484 |
|
461 | 485 |
} |
Also available in: Unified diff