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 / databaseworkspace / ConnectToDatabaseWorkspacePanel.java @ 44346

History | View | Annotate | Download (3.6 KB)

1 44304 jjdelcerro
package org.gvsig.geodb.databaseworkspace;
2
3
import javax.swing.JComponent;
4 44308 jjdelcerro
import javax.swing.event.ChangeEvent;
5
import javax.swing.event.ChangeListener;
6 44305 jjdelcerro
import org.apache.commons.lang.StringUtils;
7 44304 jjdelcerro
import org.gvsig.fmap.dal.DALLocator;
8
import org.gvsig.fmap.dal.DataManager;
9
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
10 44305 jjdelcerro
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYID;
11
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYLABEL;
12 44304 jjdelcerro
import org.gvsig.fmap.dal.StoresRepository;
13
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
14 44308 jjdelcerro
import org.gvsig.fmap.dal.swing.DALSwingLocator;
15 44304 jjdelcerro
import org.gvsig.tools.swing.api.Component;
16 44308 jjdelcerro
import org.gvsig.tools.swing.api.pickercontroller.PickerController;
17 44304 jjdelcerro
import org.gvsig.tools.swing.api.windowmanager.Dialog;
18
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
19
20
/**
21
 *
22
 * @author jjdelcerro
23
 */
24
public class ConnectToDatabaseWorkspacePanel
25
        extends ConnectToDatabaseWorkspacePanelView
26
        implements Component
27
    {
28
29
    private Dialog dialog;
30 44308 jjdelcerro
    private PickerController<JDBCServerExplorerParameters> connectionPicker;
31 44304 jjdelcerro
32
    public ConnectToDatabaseWorkspacePanel() {
33
        this.initComponents();
34
    }
35
36
    public boolean connect() {
37
        JDBCServerExplorerParameters conn = getConnection();
38
        if( conn == null ) {
39
            return false;
40
        }
41
        DataManager dataManager = DALLocator.getDataManager();
42
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(conn);
43 44346 jjdelcerro
        dataManager.addDatabaseWorkspace(workspace);
44 44304 jjdelcerro
        return true;
45
    }
46
47
    private void initComponents() {
48 44308 jjdelcerro
        this.connectionPicker = DALSwingLocator.getSwingManager().createJDBCConnectionPickerController(
49
                this.cboConnection,
50
                this.btnConnection
51
        );
52
        this.connectionPicker.addChangeListener(new ChangeListener() {
53 44304 jjdelcerro
            @Override
54 44308 jjdelcerro
            public void stateChanged(ChangeEvent e) {
55
                doUpdateStoresRepositoryInfo();
56 44304 jjdelcerro
            }
57
        });
58 44305 jjdelcerro
        doUpdateStoresRepositoryInfo();
59 44304 jjdelcerro
    }
60
61
    @Override
62
    public JComponent asJComponent() {
63
        return this;
64
    }
65
66
    public JDBCServerExplorerParameters getConnection() {
67 44308 jjdelcerro
        JDBCServerExplorerParameters conn = this.connectionPicker.get();
68
        if (conn == null) {
69 44304 jjdelcerro
            return null;
70
        }
71
        DataManager dataManager = DALLocator.getDataManager();
72
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(conn);
73
        if( !workspace.isValidStoresRepository() ) {
74
            return null;
75
        }
76
        return conn;
77
    }
78
79
    private void doUpdateEnableComponents() {
80
        boolean theEnabled = this.getConnection() != null;
81 44305 jjdelcerro
        if( dialog!=null ) {
82
            this.dialog.setButtonEnabled(WindowManager_v2.BUTTONS_OK, theEnabled);
83
        }
84 44304 jjdelcerro
    }
85 44305 jjdelcerro
    private void doUpdateStoresRepositoryInfo() {
86
        if( this.getConnection()==null ) {
87
            return;
88
        }
89
        DataManager dataManager = DALLocator.getDataManager();
90
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(getConnection());
91
        String id = workspace.get(CONFIG_NAME_STORESREPOSITORYID);
92
        String label = workspace.get(CONFIG_NAME_STORESREPOSITORYLABEL);
93
        this.txtID.setText(StringUtils.defaultIfBlank(id, ""));
94
        this.txtLabel.setText(StringUtils.defaultIfBlank(label, ""));
95
96
        this.doUpdateEnableComponents();
97
    }
98 44304 jjdelcerro
99 44305 jjdelcerro
100 44304 jjdelcerro
    void setDialog(Dialog dialog) {
101
       this.dialog = dialog;
102 44305 jjdelcerro
       this.doUpdateEnableComponents();
103 44304 jjdelcerro
    }
104
105
}