Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / org.gvsig.oracle / src / org / gvsig / oracle / extension / NewOracleTableExtension.java @ 30231

History | View | Annotate | Download (3.62 KB)

1
package org.gvsig.oracle.extension;
2

    
3
import javax.swing.ImageIcon;
4

    
5
import org.apache.log4j.Logger;
6
import org.gvsig.andami.PluginServices;
7
import org.gvsig.andami.plugins.Extension;
8
import org.gvsig.andami.ui.mdiManager.IWindow;
9
import org.gvsig.andami.ui.wizard.WizardAndami;
10
import org.gvsig.app.project.documents.view.gui.View;
11
import org.gvsig.fmap.mapcontext.MapContext;
12
import org.gvsig.oracle.gui.NewOracleTableWizard;
13
import org.gvsig.oracle.gui.RepeatedChooseGeometryTypePanel;
14
import org.gvsig.oracle.gui.RepeatedFieldDefinitionPanel;
15

    
16
/**
17
 * Extension to build a new oracle table
18
 * 
19
 * @author vsanjaime
20
 * 
21
 */
22
public class NewOracleTableExtension extends Extension {
23

    
24
        private static Logger logger = Logger
25
                        .getLogger(NewOracleTableExtension.class.getName());
26
        public static boolean ORACLE_JAR_PRESENT = false;
27

    
28
        /**
29
         * Initialize extension
30
         */
31
        public void initialize() {
32
                // Validate if Oracle Jar is present
33
                ORACLE_JAR_PRESENT = isOracleJarPresent();
34
        }
35

    
36
        /**
37
         * execute extension process
38
         * 
39
         * @param event
40
         *            name
41
         */
42
        public void execute(String actionCommand) {
43

    
44
                // NEW ORACLE TABLE
45
                if (actionCommand.compareToIgnoreCase("NEW_ORACLE_TABLE") == 0) {
46

    
47
                        IWindow w = PluginServices.getMDIManager().getActiveWindow();
48
                        if (w instanceof View) {
49
                                try {
50
                                        String _file = createResourceUrl(
51
                                                        "images/new_geodb_table.png").getFile();
52
                                        ImageIcon iicon = new ImageIcon(_file);
53

    
54
                                        WizardAndami wizard = new WizardAndami(iicon);
55
                                        RepeatedChooseGeometryTypePanel panelChoose = new RepeatedChooseGeometryTypePanel(
56
                                                        wizard.getWizardComponents());
57
                                        RepeatedFieldDefinitionPanel panelFields = new RepeatedFieldDefinitionPanel(
58
                                                        wizard.getWizardComponents());
59
                                        NewOracleTableWizard connPanel = new NewOracleTableWizard(
60
                                                        wizard.getWizardComponents());
61

    
62
                                        wizard.getWizardComponents().addWizardPanel(panelChoose);
63
                                        wizard.getWizardComponents().addWizardPanel(panelFields);
64
                                        wizard.getWizardComponents().addWizardPanel(connPanel);
65

    
66
                                        View theView = (View) w;
67
                                        MapContext mc = theView.getMapControl().getMapContext();
68

    
69
                                        NewOracleTableFinishAction action = new NewOracleTableFinishAction(
70
                                                        wizard.getWizardComponents(), wizard, connPanel, mc);
71

    
72
                                        wizard.getWizardComponents().setFinishAction(action);
73
                                        wizard.getWizardComponents().getFinishButton().setEnabled(
74
                                                        false);
75
                                        wizard.getWindowInfo().setWidth(640);
76
                                        wizard.getWindowInfo().setHeight(350);
77
                                        wizard.getWindowInfo().setTitle(
78
                                                        PluginServices.getText(this, "new_layer"));
79
                                        PluginServices.getMDIManager().addWindow(wizard);
80

    
81
                                } catch (Exception ex) {
82
                                        logger
83
                                                        .error("While showing new oracle spatial table wizard: "
84
                                                                        + ex.getMessage());
85
                                }
86
                        }
87
                }
88
        }
89

    
90
        /**
91
         * extension enable
92
         * 
93
         * @return
94
         */
95
        public boolean isEnabled() {
96

    
97
                if (!ORACLE_JAR_PRESENT)
98
                        return false;
99

    
100
                IWindow w = PluginServices.getMDIManager().getActiveWindow();
101
                return (w instanceof View);
102
        }
103

    
104
        /**
105
         * extension functionalities visible
106
         * 
107
         * @return
108
         */
109
        public boolean isVisible() {
110
                return isEnabled();
111
        }
112

    
113
        /**
114
         * Check presence of ojdbc14.jar.
115
         * 
116
         * @return
117
         */
118
        private boolean isOracleJarPresent() {
119

    
120
                try {
121
                        Class rowid_class = Class.forName("oracle.sql.ROWID");
122
                } catch (Exception ex) {
123
                        logger.error("Unable to instantiate ROWID (oracle jar missing?) : "
124
                                        + ex.getMessage());
125
                        return false;
126
                }
127
                return true;
128
        }
129

    
130
        private java.net.URL createResourceUrl(String path) {
131
                return getClass().getClassLoader().getResource(path);
132
        }
133

    
134
}