Statistics
| Revision:

svn-gvsig-desktop / tags / v1_0_2_Build_905 / extensions / extCAD / src / com / iver / cit / gvsig / StopEditingToShp.java @ 10767

History | View | Annotate | Download (3.86 KB)

1 3698 caballero
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.plugins.Extension;
10 6878 cesar
import com.iver.cit.gvsig.fmap.MapContext;
11 4118 caballero
import com.iver.cit.gvsig.fmap.MapControl;
12 5184 caballero
import com.iver.cit.gvsig.fmap.edition.EditionEvent;
13 3698 caballero
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
14
import com.iver.cit.gvsig.fmap.edition.writers.shp.ShpWriter;
15 3808 fjp
import com.iver.cit.gvsig.fmap.layers.FLayer;
16 3698 caballero
import com.iver.cit.gvsig.fmap.layers.FLayers;
17
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
18 4137 caballero
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
19 8765 jjdelcerro
import com.iver.cit.gvsig.project.documents.view.IProjectView;
20
import com.iver.cit.gvsig.project.documents.view.gui.View;
21 3934 fjp
import com.iver.utiles.SimpleFileFilter;
22 3698 caballero
23
24 3712 caballero
25
26 3698 caballero
/**
27
 * DOCUMENT ME!
28
 *
29
 * @author Vicente Caballero Navarro
30
 */
31 5005 jorpiell
public class StopEditingToShp extends Extension {
32 3712 caballero
    private  View vista;
33
        /**
34 5005 jorpiell
     * @see com.iver.andami.plugins.IExtension#initialize()
35 3698 caballero
     */
36 5005 jorpiell
    public void initialize() {
37 3698 caballero
    }
38
39
    /**
40 5005 jorpiell
     * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
41 3698 caballero
     */
42
    public void execute(String s) {
43 6877 cesar
        com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
44 6880 cesar
                                                             .getActiveWindow();
45 3698 caballero
46 3712 caballero
        vista = (View) f;
47
48 8765 jjdelcerro
        IProjectView model = vista.getModel();
49 6878 cesar
        MapContext mapa = model.getMapContext();
50 3698 caballero
            FLayers layers = mapa.getLayers();
51 3808 fjp
            if (s.equals("STOPEDITING"))
52
            {
53
                    FLayer[] actives = layers.getActives();
54
                    // TODO: Comprobar que solo hay una activa, o al menos
55
                    // que solo hay una en edici?n que est? activa, etc, etc
56
                    for (int i = 0; i < actives.length; i++)
57
                    {
58
                            if (actives[i] instanceof FLyrVect &&
59 4118 caballero
                        actives[i].isEditing())
60 3808 fjp
                            {
61
                                    FLyrVect lv = (FLyrVect) actives[i];
62 6604 caballero
                                    MapControl mapControl = vista.getMapControl();
63 5184 caballero
                                    stopEditing(lv,mapControl);
64 4850 fjp
                            }
65
                    }
66 3698 caballero
            }
67
            PluginServices.getMainFrame().enableControls();
68
    }
69
70
    /**
71 5005 jorpiell
     * @see com.iver.andami.plugins.IExtension#isEnabled()
72 3698 caballero
     */
73
    public boolean isEnabled() {
74
        return true;
75
    }
76
77
    /**
78
     * DOCUMENT ME!
79
     */
80 4118 caballero
    public void stopEditing(FLyrVect layer,MapControl mapControl) {
81 3698 caballero
        try {
82
            JFileChooser jfc = new JFileChooser();
83 4584 caballero
            SimpleFileFilter filterShp = new SimpleFileFilter("shp", PluginServices.getText(this,"shp_files"));
84 3934 fjp
            jfc.setFileFilter(filterShp);
85 3698 caballero
            if (jfc.showSaveDialog((Component) PluginServices.getMainFrame()) == JFileChooser.APPROVE_OPTION) {
86 4118 caballero
                            File newFile = jfc.getSelectedFile();
87 4210 fjp
                            String path = newFile.getAbsolutePath();
88
                            if (!(path.toLowerCase().endsWith(".shp")))
89
                            {
90
                                    path = path + ".shp";
91
                            }
92
                            newFile = new File(path);
93 3952 fjp
                                VectorialEditableAdapter vea = (VectorialEditableAdapter) layer.getSource();
94 4118 caballero
                                // File newFile = vea.getDriver().
95 3698 caballero
96 4137 caballero
                                ShpWriter writer= (ShpWriter)LayerFactory.getWM().getWriter("Shape Writer");
97 4438 fjp
                                writer.initialize(layer);
98 3698 caballero
99 5184 caballero
                    vea.stopEdition(writer,EditionEvent.GRAPHIC);
100 4142 caballero
                    vea.getCommandRecord().removeCommandListener(mapControl);
101 4584 caballero
102 3698 caballero
                    layer.setEditing(false);
103 3712 caballero
                    vista.hideConsole();
104 3698 caballero
                }
105
        } catch (Exception e) {
106
            e.printStackTrace();
107
        }
108
    }
109
110
    /**
111 5005 jorpiell
     * @see com.iver.andami.plugins.IExtension#isVisible()
112 3698 caballero
     */
113
    public boolean isVisible() {
114 3808 fjp
        if (EditionUtilities.getEditionStatus() == EditionUtilities.EDITION_STATUS_ONE_VECTORIAL_LAYER_ACTIVE_AND_EDITABLE)
115
                return true;
116 6604 caballero
              return false;
117 3698 caballero
118
    }
119
}