Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extCAD / src / com / iver / cit / gvsig / CreateNewLayer.java @ 10661

History | View | Annotate | Download (5.47 KB)

1
package com.iver.cit.gvsig;
2

    
3
import java.util.ArrayList;
4

    
5
import javax.swing.ImageIcon;
6

    
7
import com.hardcode.driverManager.Driver;
8
import com.hardcode.driverManager.DriverLoadException;
9
import com.hardcode.driverManager.DriverManager;
10
import com.iver.andami.PluginServices;
11
import com.iver.andami.plugins.Extension;
12
import com.iver.andami.ui.wizard.WizardAndami;
13
import com.iver.cit.gvsig.fmap.MapControl;
14
import com.iver.cit.gvsig.fmap.edition.ISpatialWriter;
15
import com.iver.cit.gvsig.fmap.edition.IWriteable;
16
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
17
import com.iver.cit.gvsig.gui.cad.CADToolAdapter;
18
import com.iver.cit.gvsig.gui.cad.MyFinishAction;
19
import com.iver.cit.gvsig.gui.cad.panels.ChooseGeometryType;
20
import com.iver.cit.gvsig.gui.cad.panels.FileBasedPanel;
21
import com.iver.cit.gvsig.gui.cad.panels.JPanelFieldDefinition;
22
import com.iver.cit.gvsig.gui.cad.panels.PostGISpanel;
23
import com.iver.cit.gvsig.project.documents.view.gui.View;
24

    
25
/**
26
 * DOCUMENT ME!
27
 *
28
 * @author Vicente Caballero Navarro
29
 */
30
public class CreateNewLayer extends Extension {
31
        static ImageIcon LOGO;
32

    
33
        /**
34
         * @see com.iver.andami.plugins.IExtension#initialize()
35
         */
36
        public void initialize() {
37
        }
38

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

    
46
                if (f instanceof View) {
47
                        try {
48
                                View vista = (View) f;
49

    
50
                                LOGO = new javax.swing.ImageIcon(this.getClass()
51
                                                .getClassLoader().getResource(
52
                                                                "images/package_graphics.png"));
53
                                CADToolAdapter cta = CADExtension.getCADToolAdapter();
54
                                MapControl mapControl = vista.getMapControl();
55
                                cta.setMapControl(mapControl);
56
                                /*
57
                                 * SimpleLogoJWizardFrame wizardFrame = new
58
                                 * SimpleLogoJWizardFrame( LOGO);
59
                                 * wizardFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
60
                                 *
61
                                 * SwingUtilities.updateComponentTreeUI(wizardFrame);
62
                                 *
63
                                 * wizardFrame.setTitle("Creaci?n de un nuevo Tema");
64
                                 */
65
                                WizardAndami wizard = new WizardAndami(LOGO);
66

    
67
                                DriverManager writerManager = LayerFactory.getDM();
68
                                ArrayList spatialDrivers = new ArrayList();
69
                                String[] writerNames = writerManager.getDriverNames();
70
                                for (int i = 0; i < writerNames.length; i++) {
71
                                        Driver drv = writerManager.getDriver(writerNames[i]);
72
                                        if (drv instanceof ISpatialWriter)
73
                                                spatialDrivers.add(drv.getName());
74
                                }
75

    
76
                                ChooseGeometryType panelChoose = new ChooseGeometryType(wizard
77
                                                .getWizardComponents());
78
                                JPanelFieldDefinition panelFields = new JPanelFieldDefinition(
79
                                                wizard.getWizardComponents());
80

    
81
                                if (actionCommand.equals("SHP")) {
82
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
83
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
84

    
85
                                        Driver driver = writerManager.getDriver("gvSIG shp driver");
86
                                        panelFields.setWriter(((IWriteable) driver).getWriter());
87
                                        panelChoose.setDriver(driver);
88
                                        FileBasedPanel filePanel = new FileBasedPanel(wizard
89
                                                        .getWizardComponents());
90
                                        filePanel.setFileExtension("shp");
91
                                        wizard.getWizardComponents().addWizardPanel(filePanel);
92

    
93
                                        wizard.getWizardComponents().setFinishAction(
94
                                                        new MyFinishAction(wizard.getWizardComponents(),
95
                                                                        vista, actionCommand));
96
                                }
97
                                if (actionCommand.equals("DXF")) {
98
                                        panelChoose.setDriver(writerManager
99
                                                        .getDriver("gvSIG DXF Memory Driver"));
100
                                        FileBasedPanel filePanel = new FileBasedPanel(wizard
101
                                                        .getWizardComponents());
102
                                        filePanel.setFileExtension("dxf");
103
                                        wizard.getWizardComponents().addWizardPanel(filePanel);
104
                                        wizard.getWizardComponents().getBackButton().setEnabled(
105
                                                        false);
106
                                        wizard.getWizardComponents().getNextButton().setEnabled(
107
                                                        false);
108

    
109
                                        wizard.getWizardComponents().setFinishAction(
110
                                                        new MyFinishAction(wizard.getWizardComponents(),
111
                                                                        vista, actionCommand));
112
                                }
113
                                if (actionCommand.equals("POSTGIS")) {
114
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
115
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
116
                                        Driver driver = writerManager
117
                                                        .getDriver("PostGIS JDBC Driver");
118
                                        panelChoose.setDriver(driver);
119
                                        panelFields.setWriter(((IWriteable) driver).getWriter());
120
                                        wizard.getWizardComponents().addWizardPanel(
121
                                                        new PostGISpanel(wizard.getWizardComponents()));
122

    
123
                                        wizard.getWizardComponents().setFinishAction(
124
                                                        new MyFinishAction(wizard.getWizardComponents(),
125
                                                                        vista, actionCommand));
126
                                }
127

    
128
                                wizard.getWizardComponents().getFinishButton()
129
                                                .setEnabled(false);
130
                                wizard.getWindowInfo().setWidth(640);
131
                                wizard.getWindowInfo().setHeight(350);
132
                                wizard.getWindowInfo().setTitle(
133
                                                PluginServices.getText(this, "new_layer"));
134
                                // Utilities.centerComponentOnScreen(wizard);
135
                                // wizardFrame.show();
136
                                PluginServices.getMDIManager().addWindow(wizard);
137
                                // System.out.println("Salgo con " + panelChoose.getLayerName());
138
                        } catch (DriverLoadException e) {
139
                                e.printStackTrace();
140
                        }
141
                }
142
        }
143
        /**
144
         * @see com.iver.andami.plugins.IExtension#isEnabled()
145
         */
146
        public boolean isEnabled() {
147
                View f = (View) PluginServices.getMDIManager().getActiveWindow();
148

    
149
                if (f == null)
150
                        return false;
151
                return true;
152
        }
153

    
154
        /**
155
         * @see com.iver.andami.plugins.IExtension#isVisible()
156
         */
157
        public boolean isVisible() {
158
                com.iver.andami.ui.mdiManager.IWindow f = PluginServices.getMDIManager()
159
                                .getActiveWindow();
160

    
161
                if (f == null) {
162
                        return false;
163
                }
164

    
165
                if (f instanceof View)
166
                        return true;
167
                return false;
168
        }
169
}