Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extCAD / src / com / iver / cit / gvsig / CreateNewLayer.java @ 22932

History | View | Annotate | Download (5.38 KB)

1 5400 fjp
package com.iver.cit.gvsig;
2
3 21666 vcaballero
import java.sql.Driver;
4
import java.sql.DriverManager;
5 5400 fjp
import java.util.ArrayList;
6
7
import javax.swing.ImageIcon;
8
9 21666 vcaballero
import org.gvsig.fmap.mapcontext.layers.LayerFactory;
10
import org.gvsig.fmap.mapcontrol.MapControl;
11
12 5400 fjp
import com.iver.andami.PluginServices;
13 12739 caballero
import com.iver.andami.messages.NotificationManager;
14 5400 fjp
import com.iver.andami.plugins.Extension;
15 9053 jmvivo
import com.iver.andami.ui.wizard.WizardAndami;
16 7521 caballero
import com.iver.cit.gvsig.gui.cad.CADToolAdapter;
17 5400 fjp
import com.iver.cit.gvsig.gui.cad.MyFinishAction;
18
import com.iver.cit.gvsig.gui.cad.panels.ChooseGeometryType;
19
import com.iver.cit.gvsig.gui.cad.panels.FileBasedPanel;
20
import com.iver.cit.gvsig.gui.cad.panels.JPanelFieldDefinition;
21
import com.iver.cit.gvsig.gui.cad.panels.PostGISpanel;
22 7304 caballero
import com.iver.cit.gvsig.project.documents.view.gui.View;
23 5400 fjp
24
/**
25
 * DOCUMENT ME!
26 6604 caballero
 *
27 5400 fjp
 * @author Vicente Caballero Navarro
28
 */
29
public class CreateNewLayer extends Extension {
30
        static ImageIcon LOGO;
31
32
        /**
33
         * @see com.iver.andami.plugins.IExtension#initialize()
34
         */
35
        public void initialize() {
36
        }
37
38
        /**
39
         * @see com.iver.andami.plugins.IExtension#execute(java.lang.String)
40
         */
41
public void execute(String actionCommand) {
42 6877 cesar
                com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
43 6882 cesar
                                .getActiveWindow();
44 5400 fjp
45
                if (f instanceof View) {
46 10661 caballero
                        try {
47
                                View vista = (View) f;
48 5400 fjp
49 10661 caballero
                                LOGO = new javax.swing.ImageIcon(this.getClass()
50
                                                .getClassLoader().getResource(
51
                                                                "images/package_graphics.png"));
52
                                CADToolAdapter cta = CADExtension.getCADToolAdapter();
53
                                MapControl mapControl = vista.getMapControl();
54
                                cta.setMapControl(mapControl);
55
                                /*
56
                                 * SimpleLogoJWizardFrame wizardFrame = new
57
                                 * SimpleLogoJWizardFrame( LOGO);
58
                                 * wizardFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
59
                                 *
60
                                 * SwingUtilities.updateComponentTreeUI(wizardFrame);
61
                                 *
62
                                 * wizardFrame.setTitle("Creaci?n de un nuevo Tema");
63
                                 */
64
                                WizardAndami wizard = new WizardAndami(LOGO);
65 5400 fjp
66 10661 caballero
                                DriverManager writerManager = LayerFactory.getDM();
67
                                ArrayList spatialDrivers = new ArrayList();
68
                                String[] writerNames = writerManager.getDriverNames();
69
                                for (int i = 0; i < writerNames.length; i++) {
70
                                        Driver drv = writerManager.getDriver(writerNames[i]);
71
                                        if (drv instanceof ISpatialWriter)
72
                                                spatialDrivers.add(drv.getName());
73
                                }
74 5400 fjp
75 10661 caballero
                                ChooseGeometryType panelChoose = new ChooseGeometryType(wizard
76
                                                .getWizardComponents());
77
                                JPanelFieldDefinition panelFields = new JPanelFieldDefinition(
78
                                                wizard.getWizardComponents());
79 5400 fjp
80 10661 caballero
                                if (actionCommand.equals("SHP")) {
81
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
82
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
83 5400 fjp
84 10661 caballero
                                        Driver driver = writerManager.getDriver("gvSIG shp driver");
85
                                        panelFields.setWriter(((IWriteable) driver).getWriter());
86 21666 vcaballero
                                        panelChoose.setFeatureStore(driver);
87 10661 caballero
                                        FileBasedPanel filePanel = new FileBasedPanel(wizard
88
                                                        .getWizardComponents());
89
                                        filePanel.setFileExtension("shp");
90
                                        wizard.getWizardComponents().addWizardPanel(filePanel);
91 5400 fjp
92 10661 caballero
                                        wizard.getWizardComponents().setFinishAction(
93
                                                        new MyFinishAction(wizard.getWizardComponents(),
94
                                                                        vista, actionCommand));
95
                                }
96
                                if (actionCommand.equals("DXF")) {
97 21666 vcaballero
                                        panelChoose.setFeatureStore(writerManager
98 10661 caballero
                                                        .getDriver("gvSIG DXF Memory Driver"));
99
                                        FileBasedPanel filePanel = new FileBasedPanel(wizard
100
                                                        .getWizardComponents());
101
                                        filePanel.setFileExtension("dxf");
102
                                        wizard.getWizardComponents().addWizardPanel(filePanel);
103
                                        wizard.getWizardComponents().getBackButton().setEnabled(
104
                                                        false);
105
                                        wizard.getWizardComponents().getNextButton().setEnabled(
106
                                                        false);
107 5400 fjp
108 10661 caballero
                                        wizard.getWizardComponents().setFinishAction(
109
                                                        new MyFinishAction(wizard.getWizardComponents(),
110
                                                                        vista, actionCommand));
111
                                }
112
                                if (actionCommand.equals("POSTGIS")) {
113
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
114
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
115
                                        Driver driver = writerManager
116
                                                        .getDriver("PostGIS JDBC Driver");
117 21666 vcaballero
                                        panelChoose.setFeatureStore(driver);
118 10661 caballero
                                        panelFields.setWriter(((IWriteable) driver).getWriter());
119
                                        wizard.getWizardComponents().addWizardPanel(
120
                                                        new PostGISpanel(wizard.getWizardComponents()));
121 6604 caballero
122 10661 caballero
                                        wizard.getWizardComponents().setFinishAction(
123
                                                        new MyFinishAction(wizard.getWizardComponents(),
124
                                                                        vista, actionCommand));
125
                                }
126 6604 caballero
127 10661 caballero
                                wizard.getWizardComponents().getFinishButton()
128
                                                .setEnabled(false);
129
                                wizard.getWindowInfo().setWidth(640);
130
                                wizard.getWindowInfo().setHeight(350);
131
                                wizard.getWindowInfo().setTitle(
132
                                                PluginServices.getText(this, "new_layer"));
133
                                // Utilities.centerComponentOnScreen(wizard);
134
                                // wizardFrame.show();
135
                                PluginServices.getMDIManager().addWindow(wizard);
136
                                // System.out.println("Salgo con " + panelChoose.getLayerName());
137
                        } catch (DriverLoadException e) {
138 12739 caballero
                                NotificationManager.addError(e.getMessage(),e);
139 5400 fjp
                        }
140
                }
141
        }
142
        /**
143
         * @see com.iver.andami.plugins.IExtension#isEnabled()
144
         */
145
        public boolean isEnabled() {
146 6882 cesar
                View f = (View) PluginServices.getMDIManager().getActiveWindow();
147 5400 fjp
148 6604 caballero
                if (f == null)
149 5400 fjp
                        return false;
150 6604 caballero
                return true;
151 5400 fjp
        }
152
153
        /**
154
         * @see com.iver.andami.plugins.IExtension#isVisible()
155
         */
156
        public boolean isVisible() {
157 6877 cesar
                com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
158 6882 cesar
                                .getActiveWindow();
159 5400 fjp
160
                if (f == null) {
161
                        return false;
162
                }
163
164 6604 caballero
                if (f instanceof View)
165 5400 fjp
                        return true;
166 6604 caballero
                return false;
167 5400 fjp
        }
168
}