Revision 393

View differences:

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