Statistics
| Revision:

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

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