Revision 393
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/swing/ExportDXFPanels.java | ||
---|---|---|
1 |
/* |
|
2 |
* To change this license header, choose License Headers in Project Properties. |
|
3 |
* To change this template file, choose Tools | Templates |
|
4 |
* and open the template in the editor. |
|
5 |
*/ |
|
6 |
package org.gvsig.export.dxf.swing; |
|
7 |
|
|
8 |
import org.gvsig.export.ExportParameters; |
|
9 |
import org.gvsig.export.swing.ExportSwingLocator; |
|
10 |
import org.gvsig.export.swing.JExportProcessPanel; |
|
11 |
import org.gvsig.export.swing.spi.AbstractExportPanels; |
|
12 |
import org.gvsig.export.swing.spi.ExportPanels; |
|
13 |
import org.gvsig.export.swing.spi.ExportPanelsFactory; |
|
14 |
import org.gvsig.export.swing.spi.ExportPanelsManager; |
|
15 |
import org.gvsig.fmap.geom.Geometry; |
|
16 |
|
|
17 |
/** |
|
18 |
* |
|
19 |
* @author jjdelcerro |
|
20 |
*/ |
|
21 |
public class ExportDXFPanels |
|
22 |
extends AbstractExportPanels |
|
23 |
implements ExportPanels |
|
24 |
{ |
|
25 |
|
|
26 |
ExportDXFPanels( |
|
27 |
ExportPanelsFactory factory, |
|
28 |
JExportProcessPanel processPanel, |
|
29 |
ExportParameters parameters |
|
30 |
) { |
|
31 |
super(factory, processPanel, parameters); |
|
32 |
this.initPanels(); |
|
33 |
} |
|
34 |
|
|
35 |
private void initPanels() { |
|
36 |
ExportPanelsManager manager = ExportSwingLocator.getExportPanelsManager(); |
|
37 |
|
|
38 |
this.add( manager.createStandardPanel( |
|
39 |
ExportPanelsManager.PANEL_SELECT_GEOMETRY_FIELD, |
|
40 |
this.getProcessPanel(), |
|
41 |
this.getParameters() |
|
42 |
) |
|
43 |
); |
|
44 |
// this.add( manager.createStandardPanel( |
|
45 |
// ExportPanelsManager.PANEL_SELECT_GEOMETRY_TYPE, |
|
46 |
// this.getProcessPanel(), |
|
47 |
// this.getParameters(), |
|
48 |
// new int[] { |
|
49 |
// Geometry.TYPES.GEOMETRY, |
|
50 |
// Geometry.TYPES.POINT, |
|
51 |
// Geometry.TYPES.LINE, |
|
52 |
// Geometry.TYPES.POLYGON, |
|
53 |
// Geometry.TYPES.MULTIPOINT, |
|
54 |
// Geometry.TYPES.MULTILINE, |
|
55 |
// Geometry.TYPES.MULTIPOLYGON |
|
56 |
// }, |
|
57 |
// new int[] { |
|
58 |
// Geometry.SUBTYPES.GEOM2D, |
|
59 |
// Geometry.SUBTYPES.GEOM3D, |
|
60 |
// Geometry.SUBTYPES.GEOM3DM |
|
61 |
// } |
|
62 |
// ) |
|
63 |
// ); |
|
64 |
this.add( manager.createStandardPanel( |
|
65 |
ExportPanelsManager.PANEL_CHECK_GEOMETRIES, |
|
66 |
this.getProcessPanel(), |
|
67 |
this.getParameters() |
|
68 |
) |
|
69 |
); |
|
70 |
this.add( manager.createStandardPanel( |
|
71 |
ExportPanelsManager.PANEL_SELECT_OUTPUT_FILE, |
|
72 |
this.getProcessPanel(), |
|
73 |
this.getParameters() |
|
74 |
) |
|
75 |
); |
|
76 |
} |
|
77 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/swing/ExportDXFPanelsFactory.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf.swing; |
|
2 |
|
|
3 |
import org.gvsig.export.ExportParameters; |
|
4 |
import org.gvsig.export.dxf.service.ExportDXFServiceFactory; |
|
5 |
import org.gvsig.export.swing.JExportProcessPanel; |
|
6 |
import org.gvsig.export.swing.spi.AbstractExportPanelsFactory; |
|
7 |
import org.gvsig.export.swing.spi.ExportPanels; |
|
8 |
import org.gvsig.export.swing.spi.ExportPanelsFactory; |
|
9 |
|
|
10 |
/** |
|
11 |
* |
|
12 |
* @author jjdelcerro |
|
13 |
*/ |
|
14 |
public class ExportDXFPanelsFactory |
|
15 |
extends AbstractExportPanelsFactory |
|
16 |
implements ExportPanelsFactory { |
|
17 |
|
|
18 |
public ExportDXFPanelsFactory() { |
|
19 |
super(ExportDXFServiceFactory.SERVICE_NAME); |
|
20 |
} |
|
21 |
|
|
22 |
@Override |
|
23 |
public ExportPanels createPanels(JExportProcessPanel processPanel, ExportParameters parameters) { |
|
24 |
return new ExportDXFPanels(this, processPanel, parameters); |
|
25 |
} |
|
26 |
|
|
27 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/ExportDXFLibrary.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf; |
|
2 |
|
|
3 |
|
|
4 |
import org.gvsig.export.ExportLibrary; |
|
5 |
import org.gvsig.export.ExportLocator; |
|
6 |
import org.gvsig.export.dxf.service.ExportDXFServiceFactory; |
|
7 |
import org.gvsig.export.dxf.swing.ExportDXFPanelsFactory; |
|
8 |
import org.gvsig.export.spi.ExportServiceManager; |
|
9 |
import org.gvsig.export.swing.ExportSwingLibrary; |
|
10 |
import org.gvsig.export.swing.ExportSwingLocator; |
|
11 |
import org.gvsig.export.swing.spi.ExportPanelsManager; |
|
12 |
import org.gvsig.tools.library.AbstractLibrary; |
|
13 |
import org.gvsig.tools.library.LibraryException; |
|
14 |
|
|
15 |
|
|
16 |
/** |
|
17 |
* |
|
18 |
* @author jjdelcerro |
|
19 |
*/ |
|
20 |
public class ExportDXFLibrary extends AbstractLibrary { |
|
21 |
|
|
22 |
@Override |
|
23 |
public void doRegistration() { |
|
24 |
registerAsServiceOf(ExportSwingLibrary.class); |
|
25 |
registerAsServiceOf(ExportLibrary.class); |
|
26 |
} |
|
27 |
|
|
28 |
@Override |
|
29 |
protected void doInitialize() throws LibraryException { |
|
30 |
// Nothing to do |
|
31 |
} |
|
32 |
|
|
33 |
@Override |
|
34 |
protected void doPostInitialize() throws LibraryException { |
|
35 |
ExportServiceManager manager = ExportLocator.getServiceManager(); |
|
36 |
ExportPanelsManager swingManager = ExportSwingLocator.getExportPanelsManager(); |
|
37 |
|
|
38 |
manager.register(new ExportDXFServiceFactory()); |
|
39 |
swingManager.register(new ExportDXFPanelsFactory()); |
|
40 |
} |
|
41 |
|
|
42 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/service/ExportDXFService.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf.service; |
|
2 |
|
|
3 |
import org.gvsig.export.ExportException; |
|
4 |
import org.gvsig.export.ExportLocator; |
|
5 |
import org.gvsig.export.spi.AbstractExportService; |
|
6 |
import org.gvsig.export.spi.AttributeNamesTranslator; |
|
7 |
import org.gvsig.export.spi.ExportService; |
|
8 |
import org.gvsig.export.spi.ExportServiceFactory; |
|
9 |
import org.gvsig.fmap.dal.DALLocator; |
|
10 |
import org.gvsig.fmap.dal.DataManager; |
|
11 |
import org.gvsig.fmap.dal.DataServerExplorer; |
|
12 |
import org.gvsig.fmap.dal.NewDataStoreParameters; |
|
13 |
import org.gvsig.fmap.dal.OpenDataStoreParameters; |
|
14 |
import org.gvsig.fmap.dal.exception.DataException; |
|
15 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
|
16 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
|
17 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
18 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
|
19 |
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters; |
|
20 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
|
21 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters; |
|
22 |
import org.gvsig.tools.util.HasAFile; |
|
23 |
|
|
24 |
/** |
|
25 |
* |
|
26 |
* @author jjdelcerro |
|
27 |
*/ |
|
28 |
public class ExportDXFService |
|
29 |
extends AbstractExportService |
|
30 |
implements ExportService |
|
31 |
{ |
|
32 |
|
|
33 |
public static final int MAX_FIELD_NAME_LENGTH = 10; |
|
34 |
|
|
35 |
protected ExportDXFService(ExportServiceFactory factory, ExportDXFParameters parameters) { |
|
36 |
super(factory, parameters); |
|
37 |
} |
|
38 |
|
|
39 |
@Override |
|
40 |
public ExportDXFParameters getParameters() { |
|
41 |
return (ExportDXFParameters) super.getParameters(); |
|
42 |
} |
|
43 |
|
|
44 |
@Override |
|
45 |
protected DataServerExplorer createServerExplorer() throws ExportException{ |
|
46 |
|
|
47 |
DataManager dataManager = DALLocator.getDataManager(); |
|
48 |
|
|
49 |
FilesystemServerExplorerParameters explorerParams; |
|
50 |
try { |
|
51 |
explorerParams = |
|
52 |
(FilesystemServerExplorerParameters) dataManager |
|
53 |
.createServerExplorerParameters(FilesystemServerExplorer.NAME); |
|
54 |
} catch (Exception e) { |
|
55 |
throw new ExportException(e); |
|
56 |
} |
|
57 |
explorerParams.setRoot(this.getParameters().getFile().getParent()); |
|
58 |
|
|
59 |
FilesystemServerExplorer explorer; |
|
60 |
try { |
|
61 |
explorer = (FilesystemServerExplorer) dataManager.openServerExplorer( |
|
62 |
"FilesystemExplorer", explorerParams |
|
63 |
); |
|
64 |
return explorer; |
|
65 |
} catch (Exception e) { |
|
66 |
throw new ExportException(e); |
|
67 |
} |
|
68 |
} |
|
69 |
|
|
70 |
@Override |
|
71 |
protected NewDataStoreParameters createTargetNewStoreParameters() throws ExportException { |
|
72 |
try { |
|
73 |
FilesystemServerExplorer explorer = (FilesystemServerExplorer) this.createServerExplorer(); |
|
74 |
NewFeatureStoreParameters newStoreParameters = (NewFeatureStoreParameters) explorer.getAddParameters( |
|
75 |
this.getParameters().getFile() |
|
76 |
); |
|
77 |
newStoreParameters.setDynValue("CRS", this.getParameters().getTargetProjection()); |
|
78 |
// Usamos el featureType por defecto del DXF. |
|
79 |
return newStoreParameters; |
|
80 |
} catch (DataException ex) { |
|
81 |
throw new ExportException(ex); |
|
82 |
} |
|
83 |
} |
|
84 |
|
|
85 |
@Override |
|
86 |
public OpenDataStoreParameters createTargetOpenStoreParameters() throws ExportException { |
|
87 |
try { |
|
88 |
DataManager dataManager = DALLocator.getDataManager(); |
|
89 |
OpenFeatureStoreParameters openStoreParameters = (OpenFeatureStoreParameters) dataManager.createStoreParameters("DXF"); |
|
90 |
((HasAFile)openStoreParameters).setFile(getParameters().getFile()); |
|
91 |
openStoreParameters.setDynValue("CRS", this.getParameters().getTargetProjection()); |
|
92 |
return openStoreParameters; |
|
93 |
} catch (DataException ex) { |
|
94 |
throw new ExportException(ex); |
|
95 |
} |
|
96 |
} |
|
97 |
|
|
98 |
|
|
99 |
|
|
100 |
|
|
101 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/service/ExportDXFParameters.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf.service; |
|
2 |
|
|
3 |
import org.gvsig.export.ExportParametersGeometry; |
|
4 |
import org.gvsig.tools.util.HasAFile; |
|
5 |
|
|
6 |
/** |
|
7 |
* |
|
8 |
* @author jjdelcerro |
|
9 |
*/ |
|
10 |
public interface ExportDXFParameters extends ExportParametersGeometry, HasAFile { |
|
11 |
|
|
12 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/service/ExportDXFParametersImpl.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf.service; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import org.apache.commons.io.FilenameUtils; |
|
5 |
import org.gvsig.export.spi.AbstractExportParametersGeometry; |
|
6 |
|
|
7 |
/** |
|
8 |
* |
|
9 |
* @author jjdelcerro |
|
10 |
*/ |
|
11 |
public class ExportDXFParametersImpl |
|
12 |
extends AbstractExportParametersGeometry |
|
13 |
implements ExportDXFParameters |
|
14 |
{ |
|
15 |
private File file; |
|
16 |
|
|
17 |
@Override |
|
18 |
public String getServiceName() { |
|
19 |
return ExportDXFServiceFactory.SERVICE_NAME; |
|
20 |
} |
|
21 |
|
|
22 |
@Override |
|
23 |
public File getFile() { |
|
24 |
return this.file; |
|
25 |
} |
|
26 |
|
|
27 |
@Override |
|
28 |
public void setFile(File file) { |
|
29 |
this.file = new File(FilenameUtils.removeExtension(file.getAbsolutePath()) + ".dxf"); |
|
30 |
} |
|
31 |
|
|
32 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/src/main/java/org/gvsig/export/dxf/service/ExportDXFServiceFactory.java | ||
---|---|---|
1 |
package org.gvsig.export.dxf.service; |
|
2 |
|
|
3 |
import org.gvsig.export.ExportParameters; |
|
4 |
import org.gvsig.export.spi.AbstractExportServiceFactory; |
|
5 |
|
|
6 |
/** |
|
7 |
* |
|
8 |
* @author jjdelcerro |
|
9 |
*/ |
|
10 |
public class ExportDXFServiceFactory |
|
11 |
extends AbstractExportServiceFactory |
|
12 |
{ |
|
13 |
|
|
14 |
public static final String SERVICE_NAME = "DXF"; |
|
15 |
|
|
16 |
public ExportDXFServiceFactory() { |
|
17 |
super( |
|
18 |
SERVICE_NAME, |
|
19 |
"DXF file", |
|
20 |
"DXF file" |
|
21 |
); |
|
22 |
} |
|
23 |
|
|
24 |
@Override |
|
25 |
public ExportDXFService createService(ExportParameters parameters) { |
|
26 |
ExportDXFService service = new ExportDXFService(this, (ExportDXFParameters) parameters); |
|
27 |
return service; |
|
28 |
} |
|
29 |
|
|
30 |
@Override |
|
31 |
public ExportDXFParameters createParameters() { |
|
32 |
ExportDXFParameters parameters = new ExportDXFParametersImpl(); |
|
33 |
return parameters; |
|
34 |
} |
|
35 |
|
|
36 |
@Override |
|
37 |
public boolean hasTabularSupport() { |
|
38 |
return true; |
|
39 |
} |
|
40 |
|
|
41 |
@Override |
|
42 |
public boolean hasVectorialSupport() { |
|
43 |
return true; |
|
44 |
} |
|
45 |
|
|
46 |
} |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.exportto/pom.xml | ||
---|---|---|
15 | 15 |
<groupId>org.gvsig</groupId> |
16 | 16 |
<artifactId>org.gvsig.exportto.swing.api</artifactId> |
17 | 17 |
</dependency> |
18 |
<dependency> |
|
19 |
<groupId>org.gvsig</groupId> |
|
20 |
<artifactId>org.gvsig.exportto.swing.spi</artifactId> |
|
21 |
</dependency> |
|
22 |
<dependency> |
|
23 |
<groupId>org.gvsig</groupId> |
|
24 |
<artifactId>org.gvsig.exportto.swing.prov.file</artifactId> |
|
25 |
</dependency> |
|
26 | 18 |
<dependency> |
27 | 19 |
<groupId>org.gvsig</groupId> |
28 | 20 |
<artifactId>org.gvsig.tools.swing.api</artifactId> |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.lib/src/main/java/org/gvsig/dxf/px/gml/Polygon3D.java | ||
---|---|---|
34 | 34 |
super(); |
35 | 35 |
} |
36 | 36 |
|
37 |
public boolean is3D() { |
|
38 |
return true; |
|
39 |
} |
|
40 |
|
|
37 | 41 |
public void add(Point3D pt) { |
38 | 42 |
pointNr++; |
39 | 43 |
|
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.lib/src/main/java/org/gvsig/dxf/px/gml/Polygon.java | ||
---|---|---|
53 | 53 |
outPol = new Polygon2D(); |
54 | 54 |
inPol = new Polygon2D(); |
55 | 55 |
} |
56 |
|
|
57 |
public boolean is3D() { |
|
58 |
if( this.isEmpty() ) { |
|
59 |
return false; |
|
60 |
} |
|
61 |
Object x = this.get(0); |
|
62 |
return x instanceof Point3D; |
|
63 |
} |
|
56 | 64 |
|
57 | 65 |
public void add(Point2D pt) { |
58 | 66 |
pointNr++; |
... | ... | |
66 | 74 |
extent.add(pt); |
67 | 75 |
} |
68 | 76 |
|
77 |
public boolean isEmpty() { |
|
78 |
if (outer) { |
|
79 |
if( !outPol.isEmpty() ) { |
|
80 |
return false; |
|
81 |
} |
|
82 |
} |
|
83 |
return inPol.isEmpty(); |
|
84 |
} |
|
85 |
|
|
69 | 86 |
public Point2D get(int i) { |
70 | 87 |
if (outer) { |
71 | 88 |
return (Point2D) outPol.get(i); |
org.gvsig.dxf/trunk/org.gvsig.dxf/pom.xml | ||
---|---|---|
11 | 11 |
<parent> |
12 | 12 |
<groupId>org.gvsig</groupId> |
13 | 13 |
<artifactId>org.gvsig.desktop</artifactId> |
14 |
<version>2.0.225</version>
|
|
14 |
<version>2.0.229</version>
|
|
15 | 15 |
</parent> |
16 | 16 |
|
17 | 17 |
<url>https://devel.gvsig.org/redmine/projects/gvsig-dxf</url> |
org.gvsig.dxf/trunk/org.gvsig.dxf/org.gvsig.dxf.provider/src/main/java/org/gvsig/fmap/dal/store/dxf/DXFStoreProvider.java | ||
---|---|---|
677 | 677 |
} |
678 | 678 |
|
679 | 679 |
private Geometry processPolygons(GeometryManager gManager, Feature dxffeature) throws CreateGeometryException { |
680 |
if (dxffeature.getGeometry() instanceof Polygon3D) { |
|
681 |
org.gvsig.fmap.geom.primitive.Polygon polygon = gManager.createPolygon(SUBTYPES.GEOM3D); |
|
682 |
for (int j = 0; j < dxffeature.getGeometry().pointNr(); j++) { |
|
683 |
Point3D point = ((Polygon3D) dxffeature.getGeometry()).getPoint3D(j); |
|
680 |
org.gvsig.dxf.px.gml.Geometry geom = dxffeature.getGeometry(); |
|
681 |
if( geom instanceof Polygon ) { |
|
682 |
if ( ((Polygon) geom).is3D() ) { |
|
683 |
org.gvsig.fmap.geom.primitive.Polygon polygon = gManager.createPolygon(SUBTYPES.GEOM3D); |
|
684 |
for (int j = 0; j < dxffeature.getGeometry().pointNr(); j++) { |
|
685 |
Point3D point = (Point3D) dxffeature.getGeometry().get(j); |
|
686 |
polygon.addVertex(point.getX(), point.getY(), point.getZ()); |
|
687 |
} |
|
688 |
Point3D point = (Point3D) dxffeature.getGeometry().get(0); |
|
684 | 689 |
polygon.addVertex(point.getX(), point.getY(), point.getZ()); |
685 |
} |
|
686 |
Point3D point = ((Polygon3D) dxffeature.getGeometry()).getPoint3D(0); |
|
687 |
polygon.addVertex(point.getX(), point.getY(), point.getZ()); |
|
688 |
return polygon; |
|
690 |
return polygon; |
|
689 | 691 |
|
690 |
} |
|
691 |
if (dxffeature.getGeometry() instanceof Polygon) { |
|
692 |
org.gvsig.fmap.geom.primitive.Polygon polygon = gManager.createPolygon(SUBTYPES.GEOM2D); |
|
693 |
for (int j = 0; j < dxffeature.getGeometry().pointNr(); j++) { |
|
694 |
Point2D point = dxffeature.getGeometry().get(j); |
|
692 |
} else { |
|
693 |
org.gvsig.fmap.geom.primitive.Polygon polygon = gManager.createPolygon(SUBTYPES.GEOM2D); |
|
694 |
for (int j = 0; j < dxffeature.getGeometry().pointNr(); j++) { |
|
695 |
Point2D point = dxffeature.getGeometry().get(j); |
|
696 |
polygon.addVertex(point.getX(), point.getY()); |
|
697 |
} |
|
698 |
Point2D point = dxffeature.getGeometry().get(0); |
|
695 | 699 |
polygon.addVertex(point.getX(), point.getY()); |
700 |
return polygon; |
|
696 | 701 |
} |
697 |
Point2D point = dxffeature.getGeometry().get(0); |
|
698 |
polygon.addVertex(point.getX(), point.getY()); |
|
699 |
return polygon; |
|
700 | 702 |
} |
701 | 703 |
return null; |
702 | 704 |
} |
Also available in: Unified diff