Revision 771

View differences:

org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144/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.144</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.144/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.144</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.144/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.derivedgeometries.swing.impl.DefaultDerivedGeometriesLibrary
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.144/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/DefaultDerivedGeometriesLibrary.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.DerivedGeometriesLibrary;
26
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesLocator;
27
import org.gvsig.fmap.dal.DALLibrary;
28
import org.gvsig.fmap.geom.GeometryLibrary;
29
import org.gvsig.tools.library.AbstractLibrary;
30
import org.gvsig.tools.library.LibraryException;
31

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

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

  
47
    @Override
48
    protected void doInitialize() throws LibraryException {
49
        DerivedGeometriesLocator
50
            .registerManager(DefaultDerivedGeometriesManager.class);
51
    }
52

  
53
    @Override
54
    protected void doPostInitialize() throws LibraryException {
55
        // Do nothing
56
    }
57

  
58
}
org.gvsig.derivedgeometries/tags/org.gvsig.derivedgeometries-1.0.144/org.gvsig.derivedgeometries.swing/org.gvsig.derivedgeometries.swing.impl/src/main/java/org/gvsig/derivedgeometries/swing/impl/panels/DefaultLayerAndProcessSelectionPanel.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.panels;
24

  
25
import java.awt.event.ActionEvent;
26
import java.awt.event.ActionListener;
27
import java.io.File;
28
import java.util.Vector;
29

  
30
import javax.swing.JComponent;
31
import javax.swing.JFileChooser;
32
import javax.swing.JOptionPane;
33

  
34
import org.apache.commons.io.FilenameUtils;
35
import org.slf4j.Logger;
36
import org.slf4j.LoggerFactory;
37

  
38
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesLocator;
39
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesParameters;
40
import org.gvsig.derivedgeometries.swing.api.DerivedGeometriesProcess.TYPE;
41
import org.gvsig.derivedgeometries.swing.api.exceptions.ValidateSourceLayerException;
42
import org.gvsig.derivedgeometries.swing.api.panels.LayerAndProcessSelectionPanel;
43
import org.gvsig.derivedgeometries.swing.impl.views.LayerAndProcessSelectionPanelView;
44
import org.gvsig.fmap.dal.DALLocator;
45
import org.gvsig.fmap.dal.DataManager;
46
import org.gvsig.fmap.dal.DataServerExplorer;
47
import org.gvsig.fmap.dal.DataServerExplorerParameters;
48
import org.gvsig.fmap.dal.DataStoreParameters;
49
import org.gvsig.fmap.dal.exception.DataException;
50
import org.gvsig.fmap.dal.feature.FeatureStore;
51
import org.gvsig.fmap.geom.Geometry;
52
import org.gvsig.fmap.geom.Geometry.TYPES;
53
import org.gvsig.fmap.geom.type.GeometryType;
54
import org.gvsig.fmap.mapcontext.MapContext;
55
import org.gvsig.fmap.mapcontext.layers.CancelationException;
56
import org.gvsig.fmap.mapcontext.layers.FLayer;
57
import org.gvsig.fmap.mapcontext.layers.FLayers;
58
import org.gvsig.fmap.mapcontext.layers.LayerCollectionEvent;
59
import org.gvsig.fmap.mapcontext.layers.LayerCollectionListener;
60
import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent;
61
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
62
import org.gvsig.fmap.mapcontrol.MapControl;
63
import org.gvsig.tools.ToolsLocator;
64
import org.gvsig.tools.i18n.I18nManager;
65
import org.gvsig.tools.swing.api.ToolsSwingLocator;
66
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
67
import org.gvsig.utils.GenericFileFilter;
68

  
69
public class DefaultLayerAndProcessSelectionPanel extends
70
    LayerAndProcessSelectionPanelView implements LayerAndProcessSelectionPanel {
71

  
72
    private static final long serialVersionUID = 1032294236575442328L;
73

  
74
    private static final Logger LOG = LoggerFactory
75
        .getLogger(DefaultLayerAndProcessSelectionPanel.class);
76

  
77
    private final String[] SHAPE_EXTENSIONS = { "shp", "SHP", "Shp", "sHp",
78
        "SHp", "shP", "ShP", "sHP" };
79

  
80
    private MapControl mapControl;
81

  
82
    private DerivedGeometriesParameters parameters;
83

  
84
    public DefaultLayerAndProcessSelectionPanel(MapControl mapControl) {
85
        super();
86

  
87
        this.mapControl = mapControl;
88

  
89
        initSourceLayerCombo();
90
        initProcessCombo();
91
        initSelectPathButton();
92

  
93
        addVectorialLayers();
94

  
95
        initMapControlListeners();
96
    }
97

  
98
    @SuppressWarnings("unchecked")
99
    private void addVectorialLayers() {
100
        getLayersComboBox().removeAllItems();
101
        FLayers flayers = mapControl.getMapContext().getLayers();
102
        for (FLyrVect layer : getVectorialLayers(flayers)) {
103
            getLayersComboBox().addItem(layer);
104
        }
105
    }
106

  
107
    public JComponent asJComponent() {
108
        return this;
109
    }
110

  
111
    public void closePanel() {
112
        setVisible(false);
113
    }
114

  
115
    private void deleteShapeFiles(FLyrVect sourceLayer, String outputLayerPath) {
116
        DataManager dataManager = DALLocator.getDataManager();
117

  
118
        try {
119
            DataServerExplorerParameters eparams =
120
                dataManager
121
                    .createServerExplorerParameters("FilesystemExplorer");
122
            eparams.setDynValue("initialpath", "/data");
123

  
124
            DataServerExplorer serverExplorer =
125
                dataManager.openServerExplorer(eparams.getExplorerName(),
126
                    eparams);
127

  
128
            DataStoreParameters dataStoreParams =
129
                dataManager.createStoreParameters("Shape");
130

  
131
            dataStoreParams.setDynValue("shpfile", outputLayerPath);
132
            dataStoreParams.setDynValue("CRS", sourceLayer.getProjection());
133
            dataStoreParams.setDynValue("useNullGeometry", false);
134
            dataStoreParams.validate();
135

  
136
            serverExplorer.remove(dataStoreParams);
137
        } catch (Exception e) {
138
            e.printStackTrace();
139
        }
140
    }
141

  
142
    public void doAccept() {
143
        FLyrVect sourceLayer = (FLyrVect) getLayersComboBox().getSelectedItem();
144
        String outputLayerName = getOutputLayerName().getText();
145
        String outputLayerPath = getOutputLayerPath().getText();
146
        String type = (String) getOutputShapeTypeCombo().getSelectedItem();
147

  
148
        File outputLayer = new File(outputLayerPath);
149
        // If file exist, it will delete shape files to overwrite shape.
150
        if (exist(outputLayer)) {
151
            deleteShapeFiles(sourceLayer, outputLayerPath);
152
        }
153

  
154
        int outputLayerType = 0;
155
        if (type.equalsIgnoreCase("Multicurve")) {
156
            outputLayerType = TYPES.MULTICURVE;
157
        } else if (type.equalsIgnoreCase("Surface")) {
158
            outputLayerType = TYPES.SURFACE;
159
        }
160

  
161
        TYPE processType = (TYPE) getProcessCombo().getSelectedItem();
162

  
163
        parameters =
164
            DerivedGeometriesLocator.getManager()
165
                .createDerivedGeometriesParameters(mapControl, sourceLayer,
166
                    outputLayerName, outputLayerPath, outputLayerType,
167
                    processType);
168
    }
169

  
170
    public void doCancel() {
171
        closePanel();
172
    }
173

  
174
    public DerivedGeometriesParameters getParameters() {
175
        return parameters;
176
    }
177

  
178
    private boolean exist(File file) {
179

  
180
        String pathWithoutExtension =
181
            FilenameUtils.removeExtension(file.getAbsolutePath());
182

  
183
        for (int i = 0; i < SHAPE_EXTENSIONS.length; i++) {
184
            String path = pathWithoutExtension + "." + SHAPE_EXTENSIONS[i];
185
            File tmpFile = new File(path);
186
            if (tmpFile.exists()) {
187
                return true;
188
            }
189
        }
190

  
191
        return false;
192
    }
193

  
194
    private Vector<FLyrVect> getVectorialLayers(FLayers flayers) {
195
        Vector<FLyrVect> vectorialLayers = new Vector<FLyrVect>();
196
        for (int i = 0; i < flayers.getLayersCount(); i++) {
197
            if (flayers.getLayer(i) instanceof FLyrVect) {
198
                vectorialLayers.add((FLyrVect) flayers.getLayer(i));
199

  
200
            } else if (flayers.getLayer(i) instanceof FLayers) {
201
                FLayers group = ((FLayers) flayers.getLayer(i));
202
                vectorialLayers.addAll(getVectorialLayers(group));
203
            }
204
        }
205

  
206
        return vectorialLayers;
207
    }
208

  
209
    private void initMapControlListeners() {
210

  
211
        MapContext context = mapControl.getMapContext();
212
        FLayers layers = context.getLayers();
213

  
214
        layers.addLayerCollectionListener(new LayerCollectionListener() {
215

  
216
            public void layerAdded(LayerCollectionEvent e) {
217
                FLayer layer = e.getAffectedLayer();
218
                if (layer instanceof FLyrVect) {
219
                    getLayersComboBox().addItem(layer);
220
                }
221
            }
222

  
223
            public void layerAdding(LayerCollectionEvent e)
224
                throws CancelationException {
225
            }
226

  
227
            public void layerMoved(LayerPositionEvent e) {
228
            }
229

  
230
            public void layerMoving(LayerPositionEvent e)
231
                throws CancelationException {
232
            }
233

  
234
            public void layerRemoved(LayerCollectionEvent e) {
235
                FLayer layer = e.getAffectedLayer();
236
                if (layer instanceof FLyrVect) {
237
                    getLayersComboBox().removeItem(layer);
238
                }
239
            }
240

  
241
            public void layerRemoving(LayerCollectionEvent e)
242
                throws CancelationException {
243
            }
244

  
245
            public void visibilityChanged(LayerCollectionEvent e)
246
                throws CancelationException {
247
            }
248
        });
249
    }
250

  
251
    private void initProcessCombo() {
252
        getProcessCombo().addActionListener(new ActionListener() {
253

  
254
            @SuppressWarnings("unchecked")
255
            public void actionPerformed(ActionEvent e) {
256
                // Update the other comboBox
257
                TYPE processType = (TYPE) getProcessCombo().getSelectedItem();
258
                if (processType != null) {
259
                    switch (processType) {
260
                    case POINTS_TO_LINE:
261
                        getOutputShapeTypeCombo().removeAllItems();
262
                        getOutputShapeTypeCombo().addItem("Multicurve");
263
                        break;
264
                    case POINTS_TO_POLYGON:
265
                        getOutputShapeTypeCombo().removeAllItems();
266
                        getOutputShapeTypeCombo().addItem("Surface");
267
                        break;
268
                    default:
269
                        break;
270
                    }
271
                }
272
            }
273
        });
274
    }
275

  
276
    private void initSelectPathButton() {
277
        getJButtonSelectPath().addActionListener(
278
            new java.awt.event.ActionListener() {
279

  
280
                public void actionPerformed(java.awt.event.ActionEvent e) {
281
                    ThreadSafeDialogsManager dlgManager =
282
                        ToolsSwingLocator.getThreadSafeDialogsManager();
283

  
284
                    I18nManager i18nManager = ToolsLocator.getI18nManager();
285

  
286
                    File[] files =
287
                        dlgManager.showChooserDialog(
288
                            i18nManager
289
                                .getTranslation("shape_file"),
290
                            JFileChooser.OPEN_DIALOG,
291
                            JFileChooser.FILES_ONLY,
292
                            false,
293
                            new File(System.getProperty("user.home")),
294
                            new GenericFileFilter(SHAPE_EXTENSIONS, i18nManager
295
                                .getTranslation("shape_file") + " (*.shp)"),
296
                            true);
297

  
298
                    if (files == null) {
299
                        return;
300
                    }
301

  
302
                    if (files.length == 1) {
303
                        File file = files[0];
304

  
305
                        String extension =
306
                            FilenameUtils.getExtension(file.getAbsolutePath());
307

  
308
                        if (extension == "") {
309
                            StringBuilder stb = new StringBuilder();
310
                            stb.append(file.getAbsolutePath());
311
                            stb.append(".");
312
                            stb.append(SHAPE_EXTENSIONS[0]);
313

  
314
                            file = new File(stb.toString());
315
                        }
316

  
317
                        if (exist(file)) {
318

  
319
                            String title =
320
                                i18nManager
321
                                    .getTranslation("_file_already_exist");
322
                            String message =
323
                                i18nManager
324
                                    .getTranslation("_file_already_exist_override_it");
325

  
326
                            int answer =
327
                                dlgManager.confirmDialog(message, title,
328
                                    JOptionPane.YES_NO_OPTION,
329
                                    JOptionPane.INFORMATION_MESSAGE);
330

  
331
                            if (answer == JOptionPane.YES_OPTION) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff