Revision 1282

View differences:

org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.derivedgeometries.swing.api.DerivedGeometriesLibrary
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/DerivedGeometriesLocator.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api;
24

  
25
import org.gvsig.tools.locator.BaseLocator;
26
import org.gvsig.tools.locator.Locator;
27
import org.gvsig.tools.locator.LocatorException;
28

  
29
/**
30
 * This locator is the entry point for the DerivedGeometries library, providing
31
 * access to all DerivedGeometries services through the
32
 * {@link DerivedGeometriesManager} .
33
 *
34
 * @author gvSIG team
35
 * @version $Id$
36
 */
37
public class DerivedGeometriesLocator extends BaseLocator {
38

  
39
    private static final String LOCATOR_NAME = "DerivedGeometriesLocator";
40

  
41
    public static final String MANAGER_NAME = "DerivedGeometriesSwing.manager";
42

  
43
    private static final String MANAGER_DESCRIPTION =
44
        "Derived Geometries Swing Manager";
45

  
46
    private static final DerivedGeometriesLocator instance =
47
        new DerivedGeometriesLocator();
48

  
49
    /**
50
     * Return the singleton instance.
51
     * 
52
     * @return the singleton instance
53
     */
54
    public static DerivedGeometriesLocator getInstance() {
55
        return instance;
56
    }
57

  
58
    public String getLocatorName() {
59
        return LOCATOR_NAME;
60
    }
61

  
62
    /**
63
     * Return a reference to DerivedGeometriesManager.
64
     * 
65
     * @return a reference to DerivedGeometriesManager
66
     * @throws LocatorException
67
     *             if there is no access to the class or the class
68
     *             cannot be instantiated
69
     * @see Locator#get(String)
70
     */
71
    public static DerivedGeometriesManager getManager() throws LocatorException {
72
        return (DerivedGeometriesManager) getInstance().get(MANAGER_NAME);
73
    }
74

  
75
    /**
76
     * Registers the Class implementing the DerivedGeometriesLocator interface.
77
     * 
78
     * @param clazz
79
     *            implementing the DerivedGeometriesgManager interface
80
     */
81
    public static void registerManager(Class clazz) {
82
        getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
83
    }
84

  
85
    public static void registerDefaultManager(Class clazz) {
86
        getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
87
    }
88

  
89
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/DerivedGeometriesParameters.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api;
24

  
25
import java.util.List;
26

  
27
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess.TYPE;
28
import org.gvsig.fmap.dal.feature.FeatureReference;
29
import org.gvsig.fmap.dal.feature.FeatureStore;
30
import org.gvsig.fmap.geom.Geometry;
31
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
32
import org.gvsig.fmap.mapcontrol.MapControl;
33

  
34
/**
35
 * 
36
 * Definition of derived geometries parameters.
37
 * 
38
 * @author gvSIG team
39
 * @version $Id$
40
 *
41
 */
42
public interface DerivedGeometriesParameters {
43

  
44
    /**
45
     * @return Gets if process has to add layer to map context.
46
     */
47
    public boolean getAddLayer();
48

  
49
    /**
50
     * @return Gets if process has to create new feature store
51
     */
52
    public boolean getCreateNewFeatureStore();
53

  
54
    /**
55
     * @return Gets feature store to edit
56
     */
57
    public FeatureStore getFeatureStore();
58

  
59
    /**
60
     * @return mapControl of source layer and output layer
61
     */
62
    public MapControl getMapControl();
63

  
64
    /**
65
     * @return name of output layer.
66
     */
67
    public String getOutPutLayerName();
68

  
69
    /**
70
     * @return path of output layer.
71
     */
72
    public String getOutPutLayerPath();
73

  
74
    /**
75
     * @return type of output layer. See {@link Geometry.TYPES}
76
     */
77
    public int getOutPutLayerType();
78

  
79
    /**
80
     * @return process type. See {@link DerivedGeometriesProcess.TYPE}
81
     */
82
    public TYPE getProcessType();
83

  
84
    /**
85
     * @return an ordered list of selected features.
86
     */
87
    public List<FeatureReference> getSelectedFeatures();
88

  
89
    /**
90
     * @return source layer.
91
     */
92
    public FLyrVect getSourceLayer();
93

  
94
    /**
95
     * @param b
96
     *            Sets if process has to add output layer to mapContext or not.
97
     */
98
    public void setAddLayer(boolean b);
99

  
100
    /**
101
     * @param createNewFeatureStore
102
     *            Sets if process has to create new feature store o not.
103
     */
104
    public void setCreateNewFeatureStore(boolean createNewFeatureStore);
105

  
106
    /**
107
     * @param featureStore
108
     *            Sets feature store to edit
109
     */
110
    public void setFeatureStore(FeatureStore featureStore);
111

  
112
    /**
113
     * Sets name of output layer
114
     * 
115
     * @param name
116
     */
117
    public void setOutPutLayerName(String name);
118

  
119
    /**
120
     * Sets path of output layer
121
     * 
122
     * @param path
123
     */
124
    public void setOutPutLayerPath(String path);
125

  
126
    /**
127
     * Sets type of output layer. See {@link Geometry.TYPES}
128
     * 
129
     * @param type
130
     */
131
    public void setOutPutLayerType(int type);
132

  
133
    /**
134
     * Sets type of {@link DerivedGeometriesProcess} process.
135
     * 
136
     * @param type
137
     */
138
    public void setProcessType(TYPE type);
139

  
140
    /**
141
     * Sets selected features to create derived geometries.
142
     * 
143
     * @param theFeatures
144
     *            ordered list.
145
     */
146
    public void setSelectedFeatures(List<FeatureReference> theFeatures);
147

  
148
    /**
149
     * Sets source layer.
150
     * 
151
     * @param sourceLayer
152
     */
153
    public void setSourceLayer(FLyrVect sourceLayer);
154

  
155
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/DerivedGeometriesLibrary.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api;
24

  
25
import org.gvsig.fmap.dal.DALLibrary;
26
import org.gvsig.fmap.geom.GeometryLibrary;
27
import org.gvsig.tools.library.AbstractLibrary;
28
import org.gvsig.tools.library.LibraryException;
29
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
30

  
31
/**
32
 * 
33
 * Library for API initialization and configuration.
34
 *
35
 * @author gvSIG team
36
 * @version $Id$
37
 */
38
public class DerivedGeometriesLibrary extends AbstractLibrary {
39

  
40
    @Override
41
    public void doRegistration() {
42
        registerAsAPI(DerivedGeometriesLibrary.class);
43
        require(DALLibrary.class);
44
        require(GeometryLibrary.class);
45
    }
46

  
47
    @Override
48
    protected void doInitialize() throws LibraryException {
49
        // Do nothing
50
    }
51

  
52
    @Override
53
    protected void doPostInitialize() throws LibraryException {
54
        // Validate there is any implementation registered.
55
        DerivedGeometriesManager manager =
56
            DerivedGeometriesLocator.getManager();
57
        if (manager == null) {
58
            throw new ReferenceNotRegisteredException(
59
                DerivedGeometriesLocator.MANAGER_NAME,
60
                DerivedGeometriesLocator.getInstance());
61
        }
62

  
63
    }
64

  
65
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/tablemodels/DerivedGeometriesSelectionModel.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.tablemodels;
24

  
25
import java.util.List;
26

  
27
import javax.swing.ListSelectionModel;
28

  
29
import org.gvsig.fmap.dal.feature.FeatureReference;
30

  
31
public interface DerivedGeometriesSelectionModel extends ListSelectionModel {
32

  
33
    /**
34
     * 
35
     * @return
36
     */
37
    public List<FeatureReference> getSelectedFeatures();
38

  
39
    /**
40
     * 
41
     * @param list
42
     */
43
    public void setSelectedFeatures(List<FeatureReference> list);
44

  
45
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/DerivedGeometriesManager.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api;
24

  
25
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess.TYPE;
26
import org.gvsig.derivedgeometries.swing.api.panels.DerivedGeometriesPanel;
27
import org.gvsig.derivedgeometries.swing.api.panels.FeaturesControlPanel;
28
import org.gvsig.derivedgeometries.swing.api.panels.LayerAndProcessSelectionPanel;
29
import org.gvsig.fmap.geom.Geometry;
30
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
31
import org.gvsig.fmap.mapcontrol.MapControl;
32

  
33
/**
34
 * Main class to manage DerivedGeometries functionalities
35
 *
36
 * @author gvSIG team
37
 * @version $Id$
38
 */
39
public interface DerivedGeometriesManager {
40

  
41
    /**
42
     * Creates an empty {@link DerivedGeometriesParameters}
43
     * 
44
     * @return
45
     */
46
    public DerivedGeometriesParameters createDerivedGeometriesParameters();
47

  
48
    /**
49
     * Creates a {@link DerivedGeometriesParameters}.
50
     * 
51
     * @param mapControl
52
     * @param sourceLayer
53
     * @param outputLayerName
54
     *            Name of output layer.
55
     * @param outputLayerPath
56
     *            Path of output layer.
57
     * @param outputLayerType
58
     *            Type of output layer. See {@link Geometry.TYPES}
59
     * @param processType
60
     *            Type of process. See {@link DerivedGeometriesProcess.TYPE}
61
     * @return
62
     */
63
    public DerivedGeometriesParameters createDerivedGeometriesParameters(
64
        MapControl mapControl, FLyrVect sourceLayer, String outputLayerName,
65
        String outputLayerPath, int outputLayerType, TYPE processType);
66

  
67
    /**
68
     * @return a new {@link FeaturesControlPanel}.
69
     */
70
    public FeaturesControlPanel getFeaturesControlPanel();
71

  
72
    /**
73
     * @param mapControl
74
     *            to get vectorial layers, adds listeners...
75
     * @return a new {@link DerivedGeometriesPanel}.
76
     */
77
    public DerivedGeometriesPanel getDerivedGeometriesPanel(
78
        MapControl mapControl);
79

  
80
    /**
81
     * @param mapControl
82
     *            mapControl to get vectorial layers, adds listeners...
83
     * @return a new {@link LayerAndProcessSelectionPanel}
84
     */
85
    public LayerAndProcessSelectionPanel getLayerAndProcessSelectionPanel(
86
        MapControl mapControl);
87

  
88
    /**
89
     * Given {@link DerivedGeometriesParameters}, starts a new
90
     * {@link DerivedGeometriesProcess}.
91
     * 
92
     * @param parameters
93
     */
94
    public void startDerivedGeometriesProcess(
95
        DerivedGeometriesParameters parameters);
96

  
97
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/exceptions/FetaureTableModelException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.exceptions;
24

  
25
public class FetaureTableModelException extends DerivedGeometriesException {
26

  
27
    /**
28
     * 
29
     */
30
    private static final long serialVersionUID = -5003333029683139078L;
31

  
32
    private static final String MESSAGE =
33
        "An error has been produced creating feature table model.";
34

  
35
    private static final String KEY = "_FeatureTableModelException";
36

  
37
    public FetaureTableModelException(Throwable ex) {
38
        super(MESSAGE, ex, KEY, serialVersionUID);
39
    }
40

  
41
    public FetaureTableModelException(String message, Throwable ex) {
42
        super(message, ex, KEY, serialVersionUID);
43
    }
44

  
45
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/exceptions/DerivedGeometriesException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.exceptions;
24

  
25
import org.gvsig.tools.exception.BaseException;
26

  
27
public class DerivedGeometriesException extends BaseException {
28

  
29
    /**
30
     * 
31
     */
32
    private static final long serialVersionUID = -5881366280361882646L;
33

  
34
    private static final String MESSAGE =
35
        "An error has been produced in the Derived Geometries library";
36

  
37
    private static final String KEY = "_DerivedGeometriesException";
38

  
39
    /**
40
     * Constructor to be used in rare cases, usually you must create a new child
41
     * exception class for each case.
42
     * <strong>Don't use this constructor in child classes.</strong>
43
     */
44
    public DerivedGeometriesException() {
45
        super(MESSAGE, KEY, serialVersionUID);
46
    }
47

  
48
    /**
49
     * Constructor to be used in rare cases, usually you must create a new child
50
     * exception class for each case.
51
     * <p>
52
     * <strong>Don't use this constructor in child classes.</strong>
53
     * </p>
54
     * 
55
     * @param cause
56
     *            the original cause of the exception
57
     */
58
    public DerivedGeometriesException(Exception cause) {
59
        super(MESSAGE, cause, KEY, serialVersionUID);
60
    }
61

  
62
    /**
63
     * @see BaseException#BaseException(String, String, long).
64
     * @param message
65
     *            the default messageFormat to describe the exception
66
     * @param key
67
     *            the key to use to search a localized messageFormnata
68
     * @param code
69
     *            the unique code to identify the exception
70
     */
71
    protected DerivedGeometriesException(String message, String key, long code) {
72
        super(message, key, code);
73
    }
74

  
75
    /**
76
     * @see BaseException#BaseException(String, Throwable, String, long).
77
     * @param message
78
     *            the default messageFormat to describe the exception
79
     * @param cause
80
     *            the original cause of the exception
81
     * @param key
82
     *            the key to use to search a localized messageFormnata
83
     * @param code
84
     *            the unique code to identify the exception
85
     */
86
    protected DerivedGeometriesException(String message, Throwable cause,
87
        String key, long code) {
88
        super(message, cause, key, code);
89
    }
90

  
91
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/exceptions/ValidateSourceLayerException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.exceptions;
24

  
25
public class ValidateSourceLayerException extends DerivedGeometriesException {
26

  
27
    /**
28
     * 
29
     */
30
    private static final long serialVersionUID = 6671117008934615055L;
31

  
32
    private static final String MESSAGE =
33
        "An error has been produced validating source layer.";
34

  
35
    private static final String KEY = "_ValidateSourceLayerException";
36

  
37
    public ValidateSourceLayerException(Throwable ex) {
38
        super(MESSAGE, ex, KEY, serialVersionUID);
39
    }
40

  
41
    public ValidateSourceLayerException(String message, Throwable ex) {
42
        super(message, ex, KEY, serialVersionUID);
43
    }
44

  
45
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/exceptions/LoadSelectedFeatureDataException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.exceptions;
24

  
25
public class LoadSelectedFeatureDataException extends
26
    DerivedGeometriesException {
27

  
28
    /**
29
     * 
30
     */
31
    private static final long serialVersionUID = -1477432246895858868L;
32

  
33
    private static final String MESSAGE =
34
        "An error has been produced loading selected features.";
35

  
36
    private static final String KEY = "_LoadSelectedFeatureDataException";
37

  
38
    public LoadSelectedFeatureDataException(Throwable ex) {
39
        super(MESSAGE, ex, KEY, serialVersionUID);
40
    }
41

  
42
    public LoadSelectedFeatureDataException(String message, Throwable ex) {
43
        super(message, ex, KEY, serialVersionUID);
44
    }
45

  
46
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/exceptions/FormatRowException.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.exceptions;
24

  
25

  
26
public class FormatRowException extends DerivedGeometriesException {
27

  
28
    /**
29
     * 
30
     */
31
    private static final long serialVersionUID = 6292433772869829638L;
32
    
33
    private static final String MESSAGE =
34
        "An error has been produced formating row.";
35

  
36
    private static final String KEY = "_FormatRowException";
37

  
38
    public FormatRowException(Throwable ex) {
39
        super(MESSAGE, ex, KEY, serialVersionUID);
40
    }
41

  
42
    public FormatRowException(String message, Throwable ex) {
43
        super(message, ex, KEY, serialVersionUID);
44
    }
45

  
46
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/panels/FeaturesControlPanel.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.panels;
24

  
25
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
26
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess;
27
import org.gvsig.tools.swing.api.Component;
28

  
29
/**
30
 * Features control panel contains three panels. First panel shows information
31
 * about source layer and output layer. Second panel shows information of source
32
 * layer features and the last panel permits users to add, remove and order
33
 * selected features to create derived geometries.
34
 * 
35
 * @author gvSIG team
36
 * @version $Id$
37
 *
38
 */
39
public interface FeaturesControlPanel extends Component {
40

  
41
    /**
42
     * Sets parameters to show information and initialize actions.
43
     * 
44
     * @param parameters
45
     */
46
    public void setParameters(DerivedGeometriesParameters parameters);
47

  
48
    /**
49
     * @return parameters of panel.
50
     */
51
    public DerivedGeometriesParameters getParameters();
52

  
53
    /**
54
     * Does action panel. Gets selected features, closes panel and starts
55
     * {@link DerivedGeometriesProcess}
56
     * 
57
     */
58
    public void doAction();
59

  
60
    /**
61
     * Validate if data of third panel is correct.
62
     * 
63
     * @return True if it is valid otherwise false.
64
     */
65
    public boolean validateFields();
66
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/panels/LayerAndProcessSelectionPanel.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.panels;
24

  
25
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
26
import org.gvsig.derivedgeometries.swing.api.exceptions.ValidateSourceLayerException;
27
import org.gvsig.fmap.mapcontrol.MapControl;
28
import org.gvsig.tools.swing.api.Component;
29

  
30
/**
31
 * 
32
 * @author gvSIG team
33
 * @version $Id$
34
 *
35
 */
36
public interface LayerAndProcessSelectionPanel extends Component {
37

  
38
    /**
39
     * 
40
     * @return
41
     */
42
    public DerivedGeometriesParameters getParameters();
43

  
44
    /**
45
     * 
46
     * @param mapControl
47
     */
48
    public void setMapControl(MapControl mapControl);
49

  
50
    /**
51
     * 
52
     */
53
    public void doAccept();
54

  
55
    /**
56
     * 
57
     */
58
    public void doCancel();
59

  
60
    /**
61
     * 
62
     * @return
63
     */
64
    public boolean validateFields();
65

  
66
    /**
67
     * 
68
     * @return
69
     * @throws ValidateSourceLayerException
70
     */
71
    public boolean validateSourceLayer() throws ValidateSourceLayerException;
72

  
73
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/panels/DerivedGeometriesPanel.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api.panels;
24

  
25
import org.gvsig.tools.swing.api.Component;
26

  
27
/**
28
 * Panel that contains {@link LayerAndProcessSelectionPanel} and
29
 * {@link FeaturesControlPanel}
30
 * 
31
 * @author gvSIG team
32
 * @version $Id$
33
 * 
34
 */
35
public interface DerivedGeometriesPanel extends Component {
36

  
37
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/src/main/java/org/gvsig/derivedgeometries/swing/api/DerivedGeometriesProcess.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.api;
24

  
25
import org.gvsig.tools.ToolsLocator;
26
import org.gvsig.tools.i18n.I18nManager;
27
import org.gvsig.tools.task.MonitorableTask;
28

  
29
/**
30
 * Process definition to create derived geometries.
31
 * 
32
 * @author gvSIG team
33
 * @version $Id$
34
 */
35
public interface DerivedGeometriesProcess extends MonitorableTask {
36

  
37
    /**
38
     * Type of process.
39
     */
40
    public enum TYPE {
41
        POINTS_TO_LINE("_points_to_line"), 
42
        POINTS_TO_POLYGON("_points_to_polygon"), 
43
        LINES_TO_CLOSED_POLYLINE("_lines_to_closed_polyline");
44

  
45
        private String value;
46

  
47
        TYPE(String value) {
48
            this.value = value;
49
        }
50

  
51
        public String toString() {
52
            I18nManager i18n = ToolsLocator.getI18nManager();
53
            return i18n.getTranslation(value);
54
        }
55
    }
56

  
57
    /**
58
     * @return parameters of process.
59
     */
60
    public DerivedGeometriesParameters getParameters();
61

  
62
    /**
63
     * Starts process.
64
     */
65
    public void start();
66

  
67
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.api/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.derivedgeometries.swing</artifactId>
6
    <version>1.0.246</version>
7
  </parent>
8
  <artifactId>org.gvsig.derivedgeometries.swing.api</artifactId>
9
  <name>org.gvsig.derivedgeometries.swing.api</name>
10
  <dependencies>
11
  	<dependency>
12
  		<groupId>org.gvsig</groupId>
13
  		<artifactId>org.gvsig.tools.lib</artifactId>
14
  	</dependency>
15
  	<dependency>
16
      <groupId>org.gvsig</groupId>
17
      <artifactId>org.gvsig.fmap.dal.api</artifactId>
18
    </dependency>
19
  	<dependency>
20
  		<groupId>org.gvsig</groupId>
21
  		<artifactId>org.gvsig.fmap.control</artifactId>
22
  	</dependency>
23
  </dependencies>
24
</project>
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.derivedgeometries</artifactId>
6
    <version>1.0.246</version>
7
  </parent>
8
  <artifactId>org.gvsig.derivedgeometries.swing</artifactId>
9
  <packaging>pom</packaging>
10
  <name>org.gvsig.derivedgeometries.swing</name>
11
  <modules>
12
  	<module>org.gvsig.derivedgeometries.swing.api</module>
13
  	<module>org.gvsig.derivedgeometries.swing.impl</module>
14
  </modules>
15
</project>
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/DefaultDerivedGeometriesManager.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.impl;
24

  
25
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesManager;
26
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
27
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess;
28
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess.TYPE;
29
import org.gvsig.derivedgeometries.swing.api.panels.DerivedGeometriesPanel;
30
import org.gvsig.derivedgeometries.swing.api.panels.FeaturesControlPanel;
31
import org.gvsig.derivedgeometries.swing.api.panels.LayerAndProcessSelectionPanel;
32
import org.gvsig.derivedgeometries.swing.impl.panels.DefaultDerivedGeometriesPanel;
33
import org.gvsig.derivedgeometries.swing.impl.panels.DefaultFeaturesControlPanel;
34
import org.gvsig.derivedgeometries.swing.impl.panels.DefaultLayerAndProcessSelectionPanel;
35
import org.gvsig.derivedgeometries.swing.impl.processes.LineToClosedPolylineDerivedGeometriesProcess;
36
import org.gvsig.derivedgeometries.swing.impl.processes.PointToLineDerivedGeometriesProcess;
37
import org.gvsig.derivedgeometries.swing.impl.processes.PointToPolygonDerivedGeometriesProcess;
38
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
39
import org.gvsig.fmap.mapcontrol.MapControl;
40

  
41
public class DefaultDerivedGeometriesManager implements
42
    DerivedGeometriesManager {
43

  
44
    public DerivedGeometriesParameters createDerivedGeometriesParameters(
45
        MapControl mapControl, FLyrVect sourceLayer, String outputLayerName,
46
        String outputLayerPath, int outputLayerType, TYPE processType) {
47

  
48
        return new DefaultDerivedGeometriesParameters(mapControl, sourceLayer,
49
            outputLayerName, outputLayerPath, outputLayerType, processType);
50
    }
51

  
52
    public DerivedGeometriesParameters createDerivedGeometriesParameters() {
53
        return new DefaultDerivedGeometriesParameters();
54
    }
55

  
56
    public LayerAndProcessSelectionPanel getLayerAndProcessSelectionPanel(
57
        MapControl mapControl) {
58
        return new DefaultLayerAndProcessSelectionPanel(mapControl);
59
    }
60

  
61
    public FeaturesControlPanel getFeaturesControlPanel() {
62
        return new DefaultFeaturesControlPanel();
63
    }
64

  
65
    public DerivedGeometriesPanel getDerivedGeometriesPanel(
66
        MapControl mapControl) {
67
        return new DefaultDerivedGeometriesPanel(mapControl);
68
    }
69

  
70
    public void startDerivedGeometriesProcess(
71
        DerivedGeometriesParameters parameters) {
72
        TYPE processType = parameters.getProcessType();
73
        DerivedGeometriesProcess newProcess = null;
74

  
75
        switch (processType) {
76
        case POINTS_TO_LINE:
77
            newProcess = new PointToLineDerivedGeometriesProcess(parameters);
78
            break;
79
        case POINTS_TO_POLYGON:
80
            newProcess = new PointToPolygonDerivedGeometriesProcess(parameters);
81
            break;
82
        case LINES_TO_CLOSED_POLYLINE:
83
            newProcess =
84
                new LineToClosedPolylineDerivedGeometriesProcess(parameters);
85
            break;
86
        default:
87
            break;
88
        }
89

  
90
        newProcess.start();
91

  
92
    }
93
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/processes/LineToClosedPolylineDerivedGeometriesProcess.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.impl.processes;
24

  
25
import java.util.List;
26

  
27
import javax.swing.JOptionPane;
28

  
29
import org.cresques.cts.IProjection;
30
import org.slf4j.Logger;
31
import org.slf4j.LoggerFactory;
32

  
33
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
34
import org.gvsig.derivedgeometries.swing.impl.AbstractDerivedGeometriesProcess;
35
import org.gvsig.fmap.dal.feature.FeatureReference;
36
import org.gvsig.fmap.dal.feature.FeatureStore;
37
import org.gvsig.fmap.dal.feature.FeatureType;
38
import org.gvsig.fmap.geom.Geometry;
39
import org.gvsig.fmap.geom.GeometryLocator;
40
import org.gvsig.fmap.geom.GeometryManager;
41
import org.gvsig.fmap.geom.primitive.Curve;
42
import org.gvsig.fmap.geom.primitive.Point;
43
import org.gvsig.fmap.geom.primitive.Polygon;
44
import org.gvsig.fmap.geom.type.GeometryType;
45
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
46
import org.gvsig.tools.swing.api.ToolsSwingLocator;
47
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
48
import org.gvsig.tools.task.SimpleTaskStatus;
49

  
50
public class LineToClosedPolylineDerivedGeometriesProcess extends
51
    AbstractDerivedGeometriesProcess {
52

  
53
    private static final Logger logger = LoggerFactory
54
        .getLogger(LineToClosedPolylineDerivedGeometriesProcess.class);
55

  
56
    public LineToClosedPolylineDerivedGeometriesProcess(
57
        DerivedGeometriesParameters parameters) {
58
        super("Line to polyline process", parameters);
59
    }
60

  
61
    public void run() {
62
        SimpleTaskStatus status = null;
63

  
64
        try {
65
            status = (SimpleTaskStatus) this.getTaskStatus();
66

  
67
            if (status.isCancellationRequested()) {
68

  
69
                status.cancel();
70
                return;
71
            }
72

  
73
            // Get data process
74
            DerivedGeometriesParameters parameters = super.getParameters();
75
            String outputLayerName = parameters.getOutPutLayerName();
76
            String outputLayerPath = parameters.getOutPutLayerPath();
77
            int outputLayerType = parameters.getOutPutLayerType();
78
            boolean addLayer = parameters.getAddLayer();
79
            boolean createNewFeatureStore =
80
                parameters.getCreateNewFeatureStore();
81
            FLyrVect sourceLayer = parameters.getSourceLayer();
82
            IProjection projection = sourceLayer.getProjection();
83
            FeatureType sourceFeatureType =
84
                sourceLayer.getFeatureStore().getDefaultFeatureType();
85
            List<FeatureReference> selectedFeatures =
86
                parameters.getSelectedFeatures();
87

  
88
            GeometryManager geomManager = GeometryLocator.getGeometryManager();
89
            GeometryType sourceGeomType =
90
                sourceLayer.getFeatureStore().getDefaultFeatureType()
91
                    .getDefaultGeometryAttribute().getGeomType();
92
            Polygon polygon =
93
                geomManager.createPolygon(sourceGeomType.getSubType());
94
            Point vertexAnt = null;
95

  
96
            status.setRangeOfValues(1, selectedFeatures.size());
97

  
98
            // Iterate over features getting geometries to create polygon
99
            for (int i = 0; i < selectedFeatures.size(); i++) {
100

  
101
                // Si ha sido solicitada la cancelacion de la tarea
102
                // la marcamos como cancelada y salimos del proceso.
103
                if (status.isCancellationRequested()) {
104

  
105
                    status.cancel();
106
                    return;
107
                }
108

  
109
                // Informamos del progreso de la tarea
110
                status.setCurValue(i);
111

  
112
                FeatureReference featureReference = selectedFeatures.get(i);
113
                Geometry geom =
114
                    featureReference.getFeature().getDefaultGeometry();
115
                for (int j = 0; j < ((Curve) geom).getNumVertices(); j++) {
116
                    Point point = ((Curve) geom).getVertex(j);
117

  
118
                    if (vertexAnt == null || !vertexAnt.equals(point)) {
119
                        polygon.addVertex(point);
120
                        vertexAnt = point;
121
                    }
122

  
123
                }
124

  
125
            }
126

  
127
            // Close polygon if it is necessary
128
            closeSurfaceIfNecessary(polygon);
129

  
130
            if (status.isCancellationRequested()) {
131
                status.cancel();
132

  
133
                return;
134
            }
135

  
136
            if (createNewFeatureStore) {
137
                // Creating new feature store
138
                createNewFeatureStore(sourceFeatureType, outputLayerType,
139
                    outputLayerPath, projection);
140

  
141
                // Set createNewFeatureStore false to avoid create new feature
142
                // if process is started again
143
                parameters.setCreateNewFeatureStore(false);
144
            }
145

  
146
            // Open the new feature store
147
            FeatureStore featureStore = parameters.getFeatureStore();
148
            if (featureStore == null) {
149
                featureStore = getFeatureStore(outputLayerPath, projection);
150
            }
151

  
152
            // Set feature store in edit mode
153
            setEditingMode(featureStore);
154

  
155
            // Add line
156
            insertGeometryIntoFeauteStore(featureStore, polygon);
157

  
158
            // Save changes and finish editing
159
            endEditingMode(featureStore);
160

  
161
            if (status.isCancellationRequested()) {
162
                status.cancel();
163

  
164
                return;
165
            }
166

  
167
            if (addLayer) {
168
                // Dispose feature store to liberate resources
169
                featureStore.dispose();
170

  
171
                // Add layer to MapControl
172
                featureStore =
173
                    addLayerToMapContex(outputLayerName, outputLayerPath,
174
                        projection);
175
                parameters.setAddLayer(false);
176
                parameters.setFeatureStore(featureStore);
177
            }
178

  
179
            this.postProcess();
180

  
181
        } catch (Exception e) {
182
            ThreadSafeDialogsManager dlgManager =
183
                ToolsSwingLocator.getThreadSafeDialogsManager();
184

  
185
            dlgManager.messageDialog("_process_error", "_error",
186
                JOptionPane.ERROR_MESSAGE);
187

  
188
            logger.info("Error in line to closed process", e);
189
            if (status != null) {
190
                status.abort();
191
            }
192

  
193
        } finally {
194
            if (status != null) {
195
                // Mark process as terminate if it is running.
196
                if (status.isRunning()) {
197
                    status.terminate();
198
                }
199
            }
200
        }
201
    }
202

  
203
    private void postProcess() {
204

  
205
        ThreadSafeDialogsManager dlgManager =
206
            ToolsSwingLocator.getThreadSafeDialogsManager();
207

  
208
        String message = "_process_finished_successfully";
209
        String title = "_information";
210
        dlgManager.messageDialog(message, title,
211
            JOptionPane.INFORMATION_MESSAGE);
212

  
213
        // Repaint mapContext to view new derived geometries added.
214
        getParameters().getMapControl().getMapContext().invalidate();
215
    }
216

  
217
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.246/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/processes/PointToLineDerivedGeometriesProcess.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2014 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.derivedgeometries.swing.impl.processes;
24

  
25
import java.util.List;
26

  
27
import javax.swing.JOptionPane;
28

  
29
import org.cresques.cts.IProjection;
30
import org.slf4j.Logger;
31
import org.slf4j.LoggerFactory;
32

  
33
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
34
import org.gvsig.derivedgeometries.swing.impl.AbstractDerivedGeometriesProcess;
35
import org.gvsig.fmap.dal.feature.FeatureReference;
36
import org.gvsig.fmap.dal.feature.FeatureStore;
37
import org.gvsig.fmap.dal.feature.FeatureType;
38
import org.gvsig.fmap.geom.Geometry;
39
import org.gvsig.fmap.geom.GeometryLocator;
40
import org.gvsig.fmap.geom.GeometryManager;
41
import org.gvsig.fmap.geom.primitive.Line;
42
import org.gvsig.fmap.geom.primitive.Point;
43
import org.gvsig.fmap.geom.type.GeometryType;
44
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
45
import org.gvsig.tools.swing.api.ToolsSwingLocator;
46
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
47
import org.gvsig.tools.task.SimpleTaskStatus;
48

  
49
public class PointToLineDerivedGeometriesProcess extends
50
    AbstractDerivedGeometriesProcess {
51

  
52
    private static final Logger logger = LoggerFactory
53
        .getLogger(PointToLineDerivedGeometriesProcess.class);
54

  
55
    public PointToLineDerivedGeometriesProcess(
56
        DerivedGeometriesParameters parameters) {
57
        super("Point to line process", parameters);
58
    }
59

  
60
    public void run() {
61
        SimpleTaskStatus status = null;
62

  
63
        try {
64
            status = (SimpleTaskStatus) this.getTaskStatus();
65

  
66
            if (status.isCancellationRequested()) {
67

  
68
                status.cancel();
69
                return;
70
            }
71

  
72
            // Get data process
73
            DerivedGeometriesParameters parameters = super.getParameters();
74
            String outputLayerName = parameters.getOutPutLayerName();
75
            String outputLayerPath = parameters.getOutPutLayerPath();
76
            int outputLayerType = parameters.getOutPutLayerType();
77
            boolean addLayer = parameters.getAddLayer();
78
            boolean createNewFeatureStore =
79
                parameters.getCreateNewFeatureStore();
80
            FLyrVect sourceLayer = parameters.getSourceLayer();
81
            IProjection projection = sourceLayer.getProjection();
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff