Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extOracleSpatial / src / org / gvsig / oraclespatial / extension / NewOracleSpatialTableExtension.java @ 29579

History | View | Annotate | Download (3.61 KB)

1 29563 vsanjaime
package org.gvsig.oraclespatial.extension;
2
3
import javax.swing.ImageIcon;
4
5
import org.apache.log4j.Logger;
6
import org.gvsig.fmap.mapcontext.MapContext;
7
import org.gvsig.oraclespatial.gui.NewOracleSpatialTableWizard;
8
import org.gvsig.oraclespatial.gui.RepeatedChooseGeometryTypePanel;
9
import org.gvsig.oraclespatial.gui.RepeatedFieldDefinitionPanel;
10
11
import com.iver.andami.PluginServices;
12
import com.iver.andami.plugins.Extension;
13
import com.iver.andami.ui.mdiManager.IWindow;
14
import com.iver.andami.ui.wizard.WizardAndami;
15
import com.iver.cit.gvsig.project.documents.view.gui.View;
16
17
public class NewOracleSpatialTableExtension extends Extension {
18
19 29579 vsanjaime
        private static Logger logger = Logger
20
                        .getLogger(NewOracleSpatialTableExtension.class.getName());
21
        public static boolean ORACLE_JAR_PRESENT = false;
22
23
        /**
24
         * Initialize extension
25
         */
26 29563 vsanjaime
        public void initialize() {
27 29579 vsanjaime
                // Validate if Oracle Jar is present
28 29563 vsanjaime
                ORACLE_JAR_PRESENT = isOracleJarPresent();
29
        }
30
31 29579 vsanjaime
        /**
32
         * execute extension process
33
         *
34
         * @param event
35
         *            name
36
         */
37 29563 vsanjaime
        public void execute(String actionCommand) {
38
39 29579 vsanjaime
                // NEW ORACLE TABLE
40
                if (actionCommand.compareToIgnoreCase("NEW_ORACLE_SPATIAL") == 0) {
41 29563 vsanjaime
42 29579 vsanjaime
                        IWindow w = PluginServices.getMDIManager().getActiveWindow();
43
                        if (w instanceof View) {
44
                                try {
45
                                        String _file = createResourceUrl(
46
                                                        "images/new_geodb_table.png").getFile();
47
                                        ImageIcon iicon = new ImageIcon(_file);
48 29563 vsanjaime
49 29579 vsanjaime
                                        WizardAndami wizard = new WizardAndami(iicon);
50
                                        RepeatedChooseGeometryTypePanel panelChoose = new RepeatedChooseGeometryTypePanel(
51
                                                        wizard.getWizardComponents());
52
                                        RepeatedFieldDefinitionPanel panelFields = new RepeatedFieldDefinitionPanel(
53
                                                        wizard.getWizardComponents());
54
                                        NewOracleSpatialTableWizard connPanel = new NewOracleSpatialTableWizard(
55
                                                        wizard.getWizardComponents());
56
57
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
58
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
59
                                        wizard.getWizardComponents().addWizardPanel(connPanel);
60
61
                                        View theView = (View) w;
62
                                        MapContext mc = theView.getMapControl().getMapContext();
63
64
                                        NewOracleSpatialTableFinishAction action = new NewOracleSpatialTableFinishAction(
65
                                                        wizard.getWizardComponents(), wizard, connPanel, mc);
66
67
                                        wizard.getWizardComponents().setFinishAction(action);
68
                                        wizard.getWizardComponents().getFinishButton().setEnabled(
69
                                                        false);
70
                                        wizard.getWindowInfo().setWidth(640);
71
                                        wizard.getWindowInfo().setHeight(350);
72
                                        wizard.getWindowInfo().setTitle(
73
                                                        PluginServices.getText(this, "new_layer"));
74
                                        PluginServices.getMDIManager().addWindow(wizard);
75
76
                                } catch (Exception ex) {
77
                                        logger
78
                                                        .error("While showing new oracle spatial table wizard: "
79
                                                                        + ex.getMessage());
80
                                }
81
                        }
82
                }
83 29563 vsanjaime
        }
84
85 29579 vsanjaime
        /**
86
         * extension enable
87
         *
88
         * @return
89
         */
90 29563 vsanjaime
        public boolean isEnabled() {
91
92 29579 vsanjaime
                if (!ORACLE_JAR_PRESENT)
93
                        return false;
94
95 29563 vsanjaime
                IWindow w = PluginServices.getMDIManager().getActiveWindow();
96 29579 vsanjaime
                return (w instanceof View);
97 29563 vsanjaime
        }
98
99 29579 vsanjaime
        /**
100
         * extension functionalities visible
101
         *
102
         * @return
103
         */
104 29563 vsanjaime
        public boolean isVisible() {
105
                return isEnabled();
106
        }
107 29579 vsanjaime
108 29563 vsanjaime
        /**
109
         * Check presence of ojdbc14.jar.
110 29579 vsanjaime
         *
111 29563 vsanjaime
         * @return
112
         */
113 29579 vsanjaime
        private boolean isOracleJarPresent() {
114
115
                try {
116
                        Class rowid_class = Class.forName("oracle.sql.ROWID");
117
                } catch (Exception ex) {
118
                        logger.error("Unable to instantiate ROWID (oracle jar missing?) : "
119
                                        + ex.getMessage());
120
                        return false;
121
                }
122 29563 vsanjaime
                return true;
123 29579 vsanjaime
        }
124 29563 vsanjaime
125 29579 vsanjaime
        private java.net.URL createResourceUrl(String path) {
126
                return getClass().getClassLoader().getResource(path);
127
        }
128
129 29563 vsanjaime
}