Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.geodb.app / org.gvsig.geodb.app.mainplugin / src / main / java / org / gvsig / geodb / workspace / DefaultWorkspaceConfigurationPanel.java @ 44297

History | View | Annotate | Download (7.1 KB)

1
package org.gvsig.geodb.workspace;
2

    
3
import java.awt.event.ActionEvent;
4
import java.awt.event.ActionListener;
5
import java.awt.event.ItemEvent;
6
import java.awt.event.ItemListener;
7
import javax.swing.JComboBox;
8
import javax.swing.JComponent;
9
import org.gvsig.featureform.swing.JFeaturesForm;
10
import org.gvsig.fmap.dal.DALLocator;
11
import org.gvsig.fmap.dal.DataManager;
12
import org.gvsig.fmap.dal.DataServerExplorerParameters;
13
import org.gvsig.fmap.dal.DataServerExplorerPool;
14
import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
17
import org.gvsig.fmap.dal.swing.DALSwingLocator;
18
import org.gvsig.fmap.dal.swing.DataSwingManager;
19
import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
20
import org.gvsig.geodb.vectorialdb.wizard.VectorialDBConnectionParamsDialog;
21
import org.gvsig.tools.swing.api.ToolsSwingLocator;
22
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
23
import org.gvsig.tools.util.LabeledValueImpl;
24
import org.slf4j.Logger;
25
import org.slf4j.LoggerFactory;
26

    
27
/**
28
 *
29
 * @author jjdelcerro
30
 */
31
@SuppressWarnings("UseSpecificCatch")
32
public class DefaultWorkspaceConfigurationPanel 
33
        extends WorkspaceConfigurationPanelView 
34
        implements WorkspaceConfigurationPanel
35
    {
36

    
37
    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultWorkspaceConfigurationPanel.class);
38
    
39
    public DefaultWorkspaceConfigurationPanel() {
40
        this.initComponents();
41
    }
42

    
43
    private void initComponents() {
44
        this.fillConnections(this.cboConnections);
45
        this.cboConnections.addItemListener(new ItemListener() {
46
            @Override
47
            public void itemStateChanged(ItemEvent e) {
48
                if( e.getStateChange()==ItemEvent.SELECTED ) {
49
                    doUpdateEnableComponents();
50
                }
51
            }
52
        });
53
        this.btnAddConnection.addActionListener(new ActionListener() {
54
            @Override
55
            public void actionPerformed(ActionEvent e) {
56
                doAddConnection();
57
            }
58
        });
59
        this.btnCreateResourceTable.addActionListener(new ActionListener() {
60
            @Override
61
            public void actionPerformed(ActionEvent e) {
62
                doCreateResourcesTable();
63
            }
64
        });
65
        this.btnDropResourceTable.addActionListener(new ActionListener() {
66
            @Override
67
            public void actionPerformed(ActionEvent e) {
68
                doDropResourcesTable();
69
            }
70
        });
71
        this.btnShowResourceTable.addActionListener(new ActionListener() {
72
            @Override
73
            public void actionPerformed(ActionEvent e) {
74
                doShowResourcesTable();
75
            }
76
        });
77
        this.btnSearchResourceTable.addActionListener(new ActionListener() {
78
            @Override
79
            public void actionPerformed(ActionEvent e) {
80
                doSearchResourcesTable();
81
            }
82
        });
83
        doUpdateEnableComponents();
84
    }
85
    
86
    @Override
87
    public JComponent asJComponent() {
88
        return this;
89
    }
90

    
91
    @Override
92
    public JDBCServerExplorerParameters getConnection() {
93
        LabeledValueImpl<JDBCServerExplorerParameters> item = (LabeledValueImpl<JDBCServerExplorerParameters>) this.cboConnections.getSelectedItem();
94
        if( item == null ) {
95
            return null;
96
        }
97
        return item.getValue();
98
    }
99
    
100
    private void fillConnections(JComboBox combo) {
101
        DataManager dataManager = DALLocator.getDataManager();
102
        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
103

    
104
        DataServerExplorerParameters params;
105
        combo.removeAllItems();
106
        for (DataServerExplorerPoolEntry entry : pool) {
107
            if ( entry.getExplorerParameters() instanceof JDBCServerExplorerParameters ) {
108
                JDBCServerExplorerParameters dbParams = (JDBCServerExplorerParameters) entry.getExplorerParameters();
109
                combo.addItem(
110
                        new LabeledValueImpl<>(entry.getName(), dbParams)
111
                );
112
            }
113
        }
114
        combo.setSelectedIndex(-1);
115
    }
116

    
117
    private void doAddConnection() {
118
        VectorialDBConnectionParamsDialog newco = new VectorialDBConnectionParamsDialog();
119
        newco.showDialog();
120
        if ( newco.isCanceled()) {
121
            return;
122
        }
123
        DataManager dataManager = DALLocator.getDataManager();
124
        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
125

    
126
        pool.add(newco.getConnectionName(), newco.getServerExplorerParameters());
127
        this.fillConnections(this.cboConnections);
128
    }    
129

    
130
    private void doCreateResourcesTable() {
131
        WorkspaceManager workspace = new DefaultWorkspaceManager(this.getConnection());
132
        if( workspace.existsResourcesTable() ) {
133
            return;
134
        }
135
        workspace.createResourcesTable();
136
    }
137
    
138
    private void doShowResourcesTable() {
139
        try {
140
            WorkspaceManager workspace = new DefaultWorkspaceManager(this.getConnection());
141
            if( !workspace.existsResourcesTable() ) {
142
                return;
143
            }
144
            FeatureStore store = workspace.getResourcesTable();
145
            DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager();
146
            JFeaturesForm form = dalSwingManager.createJFeaturesForm(store);
147
            WindowManager winManager = ToolsSwingLocator.getWindowManager();
148
            winManager.showWindow(
149
                    form.asJComponent(),
150
                    "Resources",
151
                    WindowManager.MODE.WINDOW
152
            );
153
        } catch (Exception ex) {
154
            LOGGER.warn("Can't show resources table.", ex);
155
        }
156
    }
157
    
158
    private void doDropResourcesTable() {
159
        WorkspaceManager workspace = new DefaultWorkspaceManager(this.getConnection());
160
        if( !workspace.existsResourcesTable() ) {
161
            return;
162
        }
163
        workspace.dropResourcesTable();
164
    }
165
    
166
    private void doSearchResourcesTable() {
167
        try {
168
            WorkspaceManager workspace = new DefaultWorkspaceManager(this.getConnection());
169
            if( !workspace.existsResourcesTable() ) {
170
                return;
171
            }
172
            FeatureStore store = workspace.getResourcesTable();
173
            DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager();
174
            FeatureStoreSearchPanel search = dalSwingManager.createFeatureStoreSearchPanel(store);
175
            WindowManager winManager = ToolsSwingLocator.getWindowManager();
176
            winManager.showWindow(
177
                    search.asJComponent(),
178
                    "Resources",
179
                    WindowManager.MODE.WINDOW
180
            );
181
        } catch (Exception ex) {
182
            LOGGER.warn("Can't show search panel for resources table.", ex);
183
        }
184
    }
185
    
186
    private void doUpdateEnableComponents() {
187
        boolean theEnabled = this.getConnection()!=null;
188
        this.btnCreateResourceTable.setEnabled(theEnabled);
189
        this.btnDropResourceTable.setEnabled(theEnabled);
190
        this.btnSearchResourceTable.setEnabled(theEnabled);
191
        this.btnShowResourceTable.setEnabled(theEnabled);
192
    }
193
}