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 @ 44419

History | View | Annotate | Download (3.55 KB)

1
package org.gvsig.geodb.databaseworkspace;
2

    
3
import javax.swing.JComponent;
4
import javax.swing.event.ChangeEvent;
5
import javax.swing.event.ChangeListener;
6
import org.apache.commons.lang.StringUtils;
7
import org.gvsig.fmap.dal.DALLocator;
8
import org.gvsig.fmap.dal.DataManager;
9
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
10
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYID;
11
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYLABEL;
12
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
13
import org.gvsig.fmap.dal.swing.DALSwingLocator;
14
import org.gvsig.tools.swing.api.Component;
15
import org.gvsig.tools.swing.api.pickercontroller.PickerController;
16
import org.gvsig.tools.swing.api.windowmanager.Dialog;
17
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
18

    
19
/**
20
 *
21
 * @author jjdelcerro
22
 */
23
public class ConnectToDatabaseWorkspacePanel 
24
        extends ConnectToDatabaseWorkspacePanelView
25
        implements Component
26
    {
27

    
28
    private Dialog dialog;
29
    private PickerController<JDBCServerExplorerParameters> connectionPicker;
30

    
31
    public ConnectToDatabaseWorkspacePanel() {
32
        this.initComponents();
33
    }
34
    
35
    public boolean connect() {
36
        JDBCServerExplorerParameters conn = getConnection();
37
        if( conn == null ) {
38
            return false;
39
        }
40
        DataManager dataManager = DALLocator.getDataManager();
41
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(conn);
42
        dataManager.addDatabaseWorkspace(workspace);
43
        return true;
44
    }
45

    
46
    private void initComponents() {
47
        this.connectionPicker = DALSwingLocator.getSwingManager().createJDBCConnectionPickerController(
48
                this.cboConnection,
49
                this.btnConnection
50
        );
51
        this.connectionPicker.addChangeListener(new ChangeListener() {
52
            @Override
53
            public void stateChanged(ChangeEvent e) {
54
                doUpdateStoresRepositoryInfo();
55
            }
56
        });
57
        doUpdateStoresRepositoryInfo();
58
    }
59

    
60
    @Override
61
    public JComponent asJComponent() {
62
        return this;
63
    }
64

    
65
    public JDBCServerExplorerParameters getConnection() {
66
        JDBCServerExplorerParameters conn = this.connectionPicker.get();
67
        if (conn == null) {
68
            return null;
69
        }
70
        DataManager dataManager = DALLocator.getDataManager();
71
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(conn);
72
        if( !workspace.isValidStoresRepository() ) {
73
            return null;
74
        }
75
        return conn;
76
    }
77

    
78
    private void doUpdateEnableComponents() {
79
        boolean theEnabled = this.getConnection() != null;
80
        if( dialog!=null ) {
81
            this.dialog.setButtonEnabled(WindowManager_v2.BUTTONS_OK, theEnabled);
82
        }
83
    }
84
    private void doUpdateStoresRepositoryInfo() {
85
        if( this.getConnection()==null ) {
86
            return;
87
        }
88
        DataManager dataManager = DALLocator.getDataManager();
89
        DatabaseWorkspaceManager workspace = dataManager.createDatabaseWorkspaceManager(getConnection());
90
        String id = workspace.get(CONFIG_NAME_STORESREPOSITORYID);
91
        String label = workspace.get(CONFIG_NAME_STORESREPOSITORYLABEL);
92
        this.txtID.setText(StringUtils.defaultIfBlank(id, ""));
93
        this.txtLabel.setText(StringUtils.defaultIfBlank(label, ""));
94
        
95
        this.doUpdateEnableComponents();
96
    }
97
    
98
    
99
    void setDialog(Dialog dialog) {
100
       this.dialog = dialog;
101
       this.doUpdateEnableComponents();
102
    }
103
    
104
}