Statistics
| Revision:

svn-gvsig-desktop / tags / v1_0_2_Build_911 / extensions / extCAD / src / com / iver / cit / gvsig / StopEditingToGT2Shp.java @ 11388

History | View | Annotate | Download (4.45 KB)

1 3731 fjp
package com.iver.cit.gvsig;
2
3 3808 fjp
import java.awt.Component;
4 3731 fjp
import java.io.File;
5 3786 fjp
import java.net.URL;
6 3731 fjp
7 3808 fjp
import javax.swing.JFileChooser;
8
9 3786 fjp
import org.geotools.data.FeatureStore;
10
import org.geotools.data.FeatureWriter;
11
import org.geotools.data.shapefile.ShapefileDataStore;
12
import org.geotools.feature.FeatureType;
13 3731 fjp
14
import com.iver.andami.PluginServices;
15
import com.iver.andami.plugins.Extension;
16 6878 cesar
import com.iver.cit.gvsig.fmap.MapContext;
17 8765 jjdelcerro
import com.iver.cit.gvsig.fmap.crs.CRSFactory;
18 5184 caballero
import com.iver.cit.gvsig.fmap.edition.EditionEvent;
19 3731 fjp
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
20 9378 jmvivo
import com.iver.cit.gvsig.fmap.layers.FLayer;
21 3731 fjp
import com.iver.cit.gvsig.fmap.layers.FLayers;
22
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
23 9378 jmvivo
import com.iver.cit.gvsig.fmap.layers.LayersIterator;
24 8765 jjdelcerro
import com.iver.cit.gvsig.project.documents.view.IProjectView;
25
import com.iver.cit.gvsig.project.documents.view.gui.View;
26 3786 fjp
import com.iver.cit.gvsig.writers.WriterGT2;
27 3808 fjp
import com.iver.utiles.SimpleFileFilter;
28 3731 fjp
29
30
/**
31
 * DOCUMENT ME!
32 5184 caballero
 *
33 3731 fjp
 * @author Vicente Caballero Navarro
34
 */
35 5005 jorpiell
public class StopEditingToGT2Shp extends Extension {
36 3731 fjp
    /**
37 5005 jorpiell
         * @see com.iver.andami.plugins.IExtension#initialize()
38 3808 fjp
         */
39 5005 jorpiell
    public void initialize() {
40 3731 fjp
    }
41
42
    /**
43 5005 jorpiell
         * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
44 3808 fjp
         */
45 3731 fjp
    public void execute(String s) {
46 6877 cesar
        com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
47 6880 cesar
                                                             .getActiveWindow();
48 3731 fjp
49
        View vista = (View) f;
50 8765 jjdelcerro
        IProjectView model = vista.getModel();
51 6878 cesar
        MapContext mapa = model.getMapContext();
52 3731 fjp
            FLayers layers = mapa.getLayers();
53
            if (s.equals("STOPEDITING")){
54 9378 jmvivo
                LayersIterator iter = new LayersIterator(layers);
55
                FLayer layer;
56
                while (iter.hasNext()) {
57
                        layer = iter.nextLayer();
58
                    if (layer instanceof FLyrVect &&
59
                            layer.isEditing()) {
60
                        stopEditing((FLyrVect)layer);
61 3731 fjp
62 9378 jmvivo
                        return;
63
                    }
64
                }
65 3731 fjp
            }
66
            PluginServices.getMainFrame().enableControls();
67
    }
68
69
    /**
70 5005 jorpiell
         * @see com.iver.andami.plugins.IExtension#isEnabled()
71 3808 fjp
         */
72 3731 fjp
    public boolean isEnabled() {
73
        return true;
74
    }
75
76 5184 caballero
77
78
79 3731 fjp
    /**
80 3808 fjp
         * DOCUMENT ME!
81
         */
82 3731 fjp
    public void stopEditing(FLyrVect layer) {
83
        try {
84 3786 fjp
            // WriterGT2Shp writer = new WriterGT2Shp(layer);
85 5184 caballero
86
87 3808 fjp
            JFileChooser jfc = new JFileChooser();
88
            // if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
89
             /*
90
                                 * FLyrVect layer = (FLyrVect) test.createLayer("prueba",
91
                                 * (VectorialFileDriver) driverManager.getDriver( "gvSIG shp
92 8765 jjdelcerro
                                 * driver"), original, CRSFactory.getCRS("EPSG:23030"));
93 3808 fjp
                                 */
94
            SimpleFileFilter filterShp = new SimpleFileFilter(".shp", "Ficheros .shp");
95
            jfc.setFileFilter(filterShp);
96
             if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION)
97
             {
98
                             File newFile = jfc.getSelectedFile();
99
                             FeatureType featType = WriterGT2.getFeatureType(layer, "the_geom",
100
                                             newFile.getName());
101
                                        URL theUrl = newFile.toURL();
102
                                        ShapefileDataStore dataStore = new ShapefileDataStore(theUrl);
103
                                        dataStore.createSchema(featType);
104 5184 caballero
105 3808 fjp
                                        String featureName = dataStore.getTypeNames()[0];
106
                                        FeatureStore featStore = (FeatureStore) dataStore.getFeatureSource(featureName);
107 5184 caballero
108 3808 fjp
                                        // Necesitamos crear de verdad los ficheros antes de usarlos
109
                                        // para meter las features
110
                                        FeatureWriter featWriter = dataStore.getFeatureWriterAppend(featureName, featStore.getTransaction());
111
                                        featWriter.close();
112
                                        // Aqu? ya tenemos un fichero vac?o, listo para usar.
113 5184 caballero
114
115 3808 fjp
                                        WriterGT2 writer = new WriterGT2(featStore, true);
116 5184 caballero
117 3808 fjp
                            VectorialEditableAdapter vea = (VectorialEditableAdapter) layer.getSource();
118 5184 caballero
                            vea.stopEdition(writer,EditionEvent.GRAPHIC);
119 3808 fjp
                            layer.setSource(vea.getOriginalAdapter());
120
                            layer.setEditing(false);
121
             }
122 3731 fjp
        } catch (Exception e) {
123
            e.printStackTrace();
124
        }
125
    }
126
127 3802 fjp
128 3731 fjp
    /**
129 5005 jorpiell
         * @see com.iver.andami.plugins.IExtension#isVisible()
130 3808 fjp
         */
131 3731 fjp
    public boolean isVisible() {
132 3808 fjp
        if (EditionUtilities.getEditionStatus() == EditionUtilities.EDITION_STATUS_ONE_VECTORIAL_LAYER_ACTIVE_AND_EDITABLE)
133
                return true;
134 6604 caballero
              return false;
135 3731 fjp
136
    }
137
}