Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extCAD / src / com / iver / cit / gvsig / StopEditingToGT2Shp.java @ 10626

History | View | Annotate | Download (4.41 KB)

1
package com.iver.cit.gvsig;
2

    
3
import java.awt.Component;
4
import java.io.File;
5
import java.net.URL;
6

    
7
import javax.swing.JFileChooser;
8

    
9
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

    
14
import com.iver.andami.PluginServices;
15
import com.iver.andami.plugins.Extension;
16
import com.iver.cit.gvsig.fmap.MapContext;
17
import com.iver.cit.gvsig.fmap.edition.EditionEvent;
18
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
19
import com.iver.cit.gvsig.fmap.layers.FLayer;
20
import com.iver.cit.gvsig.fmap.layers.FLayers;
21
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
22
import com.iver.cit.gvsig.fmap.layers.LayersIterator;
23
import com.iver.cit.gvsig.project.documents.view.IProjectView;
24
import com.iver.cit.gvsig.project.documents.view.gui.View;
25
import com.iver.cit.gvsig.writers.WriterGT2;
26
import com.iver.utiles.SimpleFileFilter;
27

    
28

    
29
/**
30
 * DOCUMENT ME!
31
 *
32
 * @author Vicente Caballero Navarro
33
 */
34
public class StopEditingToGT2Shp extends Extension {
35
    /**
36
         * @see com.iver.andami.plugins.IExtension#initialize()
37
         */
38
    public void initialize() {
39
    }
40

    
41
    /**
42
         * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
43
         */
44
    public void execute(String s) {
45
        com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
46
                                                             .getActiveWindow();
47

    
48
        View vista = (View) f;
49
        IProjectView model = vista.getModel();
50
        MapContext mapa = model.getMapContext();
51
            FLayers layers = mapa.getLayers();
52
            if (s.equals("STOPEDITING")){
53
                LayersIterator iter = new LayersIterator(layers);
54
                FLayer layer;
55
                while (iter.hasNext()) {
56
                        layer = iter.nextLayer();
57
                    if (layer instanceof FLyrVect &&
58
                            layer.isEditing()) {                    
59
                        stopEditing((FLyrVect)layer);
60

    
61
                        return;
62
                    }
63
                }            
64
            }
65
            PluginServices.getMainFrame().enableControls();
66
    }
67

    
68
    /**
69
         * @see com.iver.andami.plugins.IExtension#isEnabled()
70
         */
71
    public boolean isEnabled() {
72
        return true;
73
    }
74

    
75

    
76

    
77

    
78
    /**
79
         * DOCUMENT ME!
80
         */
81
    public void stopEditing(FLyrVect layer) {
82
        try {
83
            // WriterGT2Shp writer = new WriterGT2Shp(layer);
84

    
85

    
86
            JFileChooser jfc = new JFileChooser();
87
            // if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
88
             /*
89
                                 * FLyrVect layer = (FLyrVect) test.createLayer("prueba",
90
                                 * (VectorialFileDriver) driverManager.getDriver( "gvSIG shp
91
                                 * driver"), original, CRSFactory.getCRS("EPSG:23030"));
92
                                 */
93
            SimpleFileFilter filterShp = new SimpleFileFilter(".shp", "Ficheros .shp");
94
            jfc.setFileFilter(filterShp);
95
             if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION)
96
             {
97
                             File newFile = jfc.getSelectedFile();
98
                             FeatureType featType = WriterGT2.getFeatureType(layer, "the_geom",
99
                                             newFile.getName());
100
                                        URL theUrl = newFile.toURL();
101
                                        ShapefileDataStore dataStore = new ShapefileDataStore(theUrl);
102
                                        dataStore.createSchema(featType);
103

    
104
                                        String featureName = dataStore.getTypeNames()[0];
105
                                        FeatureStore featStore = (FeatureStore) dataStore.getFeatureSource(featureName);
106

    
107
                                        // Necesitamos crear de verdad los ficheros antes de usarlos
108
                                        // para meter las features
109
                                        FeatureWriter featWriter = dataStore.getFeatureWriterAppend(featureName, featStore.getTransaction());
110
                                        featWriter.close();
111
                                        // Aqu? ya tenemos un fichero vac?o, listo para usar.
112

    
113

    
114
                                        WriterGT2 writer = new WriterGT2(featStore, true);
115

    
116
                            VectorialEditableAdapter vea = (VectorialEditableAdapter) layer.getSource();
117
                            vea.stopEdition(writer,EditionEvent.GRAPHIC);
118
                            layer.setSource(vea.getOriginalAdapter());
119
                            layer.setEditing(false);
120
             }
121
        } catch (Exception e) {
122
            e.printStackTrace();
123
        }
124
    }
125

    
126

    
127
    /**
128
         * @see com.iver.andami.plugins.IExtension#isVisible()
129
         */
130
    public boolean isVisible() {
131
        if (EditionUtilities.getEditionStatus() == EditionUtilities.EDITION_STATUS_ONE_VECTORIAL_LAYER_ACTIVE_AND_EDITABLE)
132
                return true;
133
              return false;
134

    
135
    }
136
}
137