Statistics
| Revision:

root / trunk / extensions / extCAD / src / com / iver / cit / gvsig / StopEditingToShp.java @ 31488

History | View | Annotate | Download (3.93 KB)

1
package com.iver.cit.gvsig;
2

    
3
import java.awt.Component;
4
import java.io.File;
5

    
6
import javax.swing.JFileChooser;
7

    
8
import com.iver.andami.PluginServices;
9
import com.iver.andami.messages.NotificationManager;
10
import com.iver.andami.plugins.Extension;
11
import com.iver.cit.gvsig.fmap.MapContext;
12
import com.iver.cit.gvsig.fmap.MapControl;
13
import com.iver.cit.gvsig.fmap.edition.EditionEvent;
14
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
15
import com.iver.cit.gvsig.fmap.edition.writers.shp.ShpWriter;
16
import com.iver.cit.gvsig.fmap.layers.FLayer;
17
import com.iver.cit.gvsig.fmap.layers.FLayers;
18
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
19
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
20
import com.iver.cit.gvsig.project.documents.view.IProjectView;
21
import com.iver.cit.gvsig.project.documents.view.gui.View;
22
import com.iver.utiles.SimpleFileFilter;
23

    
24

    
25

    
26

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

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

    
47
        vista = (View) f;
48

    
49
        IProjectView model = vista.getModel();
50
        MapContext mapa = model.getMapContext();
51
            FLayers layers = mapa.getLayers();
52
            if (s.equals("STOPEDITING"))
53
            {
54
                    FLayer[] actives = layers.getActives();
55
                    // TODO: Comprobar que solo hay una activa, o al menos
56
                    // que solo hay una en edici?n que est? activa, etc, etc
57
                    for (int i = 0; i < actives.length; i++)
58
                    {
59
                            if (actives[i] instanceof FLyrVect &&
60
                        actives[i].isEditing())
61
                            {
62
                                    FLyrVect lv = (FLyrVect) actives[i];
63
                                    MapControl mapControl = vista.getMapControl();
64
                                    stopEditing(lv,mapControl);
65
                            }
66
                    }
67
            }
68
            PluginServices.getMainFrame().enableControls();
69
    }
70

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

    
78
    /**
79
     * DOCUMENT ME!
80
     */
81
    public void stopEditing(FLyrVect layer,MapControl mapControl) {
82
        try {
83
            JFileChooser jfc = new JFileChooser();
84
            SimpleFileFilter filterShp = new SimpleFileFilter("shp", PluginServices.getText(this,"shp_files"));
85
            jfc.setFileFilter(filterShp);
86
            if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
87
                            File newFile = jfc.getSelectedFile();
88
                            String path = newFile.getAbsolutePath();
89
                            if (!(path.toLowerCase().endsWith(".shp")))
90
                            {
91
                                    path = path + ".shp";
92
                            }
93
                            newFile = new File(path);
94
                                VectorialEditableAdapter vea = (VectorialEditableAdapter) layer.getSource();
95
                                // File newFile = vea.getDriver().
96

    
97
                                ShpWriter writer= (ShpWriter)LayerFactory.getWM().getWriter("Shape Writer");
98
                                writer.initialize(layer);
99

    
100
                    vea.stopEdition(writer,EditionEvent.GRAPHIC);
101
                    vea.getCommandRecord().removeCommandListener(mapControl);
102

    
103
                    layer.setEditing(false);
104
                    vista.hideConsole();
105
                }
106
        } catch (Exception e) {
107
                NotificationManager.addError(e.getMessage(),e);
108
        }
109
    }
110

    
111
    /**
112
     * @see com.iver.andami.plugins.IExtension#isVisible()
113
     */
114
    public boolean isVisible() {
115
        if (EditionUtilities.getEditionStatus() == EditionUtilities.EDITION_STATUS_ONE_VECTORIAL_LAYER_ACTIVE_AND_EDITABLE)
116
                return true;
117
              return false;
118

    
119
    }
120
}