Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.xml2db / org.gvsig.xml2db.app / org.gvsig.xml2db.app.mainplugin / src / main / java / org / gvsig / xml2db / app / mainplugin / Xml2dbExtension.java @ 47507

History | View | Annotate | Download (5.09 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.xml2db.app.mainplugin;
25

    
26
import java.awt.Dimension;
27
import java.awt.event.ActionEvent;
28
import java.util.Collections;
29
import org.apache.batik.ext.swing.GridBagConstants;
30
import org.gvsig.andami.plugins.Extension;
31
import org.gvsig.app.ApplicationLocator;
32
import org.gvsig.tools.ToolsLocator;
33
import org.gvsig.tools.future.FutureUtils;
34
import org.gvsig.tools.i18n.I18nManager;
35
import org.gvsig.tools.swing.api.ToolsSwingLocator;
36
import org.gvsig.tools.swing.api.ToolsSwingUtils;
37
import org.gvsig.tools.swing.api.windowmanager.Dialog;
38
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
39
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
40
import org.gvsig.xml2db.swing.Xml2dbPanel;
41
import org.gvsig.xml2db.swing.Xml2dbSwingLocator;
42
import org.gvsig.xml2db.swing.Xml2dbSwingManager;
43

    
44
/**
45
 *
46
 * @author jjdelcerro
47
 */
48
public class Xml2dbExtension extends Extension {
49

    
50
    @Override
51
    public void initialize() {
52

    
53
    }
54

    
55
    @Override
56
    public void postInitialize() {
57
    }
58

    
59
    @Override
60
    public void execute(String action) {
61
        if( action == null ) {
62
            return;
63
        }
64
        switch(action) {
65
            case "tools-xml2db-createdbfromxml":
66
                createdbFromXml();
67
                return;
68
            case "tools-xml2db-importxml2db":
69
                importXml2db();
70
                return;
71
            case "tools-xml2db-copyxml2db":
72
                copyXml2db();
73
        }
74
    }
75

    
76
    @Override
77
    public boolean isEnabled() {
78
        return true;
79
    }
80

    
81
    @Override
82
    public boolean isVisible() {
83
        return true;
84
    }
85

    
86
    private void createdbFromXml() {
87
        Xml2dbSwingManager xml2dbSwingManager = Xml2dbSwingLocator.getXml2dbSwingManager();
88
        Xml2dbPanel panel = xml2dbSwingManager.createCreatedbPanel();
89
        Dimension screensize = ApplicationLocator.getApplicationManager().getUIManager().getInternalSize();
90
        ToolsSwingUtils.ensureHeightWitdh(
91
                panel.asJComponent(), 
92
                Math.max(3*(screensize.height/4), ToolsSwingUtils.rows2px(80)),
93
                Math.max(2*(screensize.width/4), ToolsSwingUtils.cols2px(35)), 
94
                7*(screensize.height/8), 
95
                3*(screensize.width/4)
96
        );        
97
        showXml2dbPanel(panel,"_Xml2db_Create_database_from_xml","_Xml2db_Create_database_from_xml");
98
    }
99

    
100
    private void importXml2db() {
101
        Xml2dbSwingManager xml2dbSwingManager = Xml2dbSwingLocator.getXml2dbSwingManager();
102
        Xml2dbPanel panel = xml2dbSwingManager.createImportXml2dbPanel();
103
        showXml2dbPanel(panel,"_Xml2db_Import_xml_data_to_a_existing_database","_Xml2db_Import_XML_to_database");
104
    }
105

    
106
    private void copyXml2db() {
107
        Xml2dbSwingManager xml2dbSwingManager = Xml2dbSwingLocator.getXml2dbSwingManager();
108
        Xml2dbPanel panel = xml2dbSwingManager.createCopyXml2dbPanel();
109
        showXml2dbPanel(panel,"_Xml2db_Create_database_and_import_from_xml","_Xml2db_Copy_xml_to_database");
110
    }
111

    
112
    private void showXml2dbPanel(Xml2dbPanel panel, String title, String labelAction) {
113
        final WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
114
        final I18nManager i18n = ToolsLocator.getI18nManager();
115
        final Dialog dialog = windowManager.createDialog(
116
                panel.asJComponent(),
117
                i18n.getTranslation(title),
118
                null, 
119
                WindowManager_v2.BUTTONS_OK_CANCEL
120
        );
121
        dialog.setAutoclose(false);
122
        dialog.setButtonLabel(WindowManager_v2.BUTTON_OK, i18n.getTranslation(labelAction));
123
        dialog.setButtonLabel(WindowManager_v2.BUTTON_CANCEL, i18n.getTranslation("_Close"));
124
        panel.setDialog(dialog);
125
        dialog.addActionListener((ActionEvent e) -> {
126
            switch(dialog.getAction()) {
127
                case WindowManager_v2.BUTTON_OK:
128
                    panel.performAction();
129
                    break;
130
                case WindowManager_v2.BUTTON_CANCEL:
131
                    dialog.hideDialog();
132
                    break;
133
            }
134
        });
135
        dialog.show(
136
                WindowManager.MODE.WINDOW, 
137
                Collections.singletonMap("align", GridBagConstants.CENTER)
138
        );
139
    }
140
    
141
}