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
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.StoresRepository;
13
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
14
import org.gvsig.fmap.dal.swing.DALSwingLocator;
15
import org.gvsig.tools.swing.api.Component;
16
import org.gvsig.tools.swing.api.pickercontroller.PickerController;
17
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
    private PickerController<JDBCServerExplorerParameters> connectionPicker;
31

    
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
        dataManager.addDatabaseWorkspace(workspace);
44
        return true;
45
    }
46

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

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

    
66
    public JDBCServerExplorerParameters getConnection() {
67
        JDBCServerExplorerParameters conn = this.connectionPicker.get();
68
        if (conn == null) {
69
            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
        if( dialog!=null ) {
82
            this.dialog.setButtonEnabled(WindowManager_v2.BUTTONS_OK, theEnabled);
83
        }
84
    }
85
    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
    
99
    
100
    void setDialog(Dialog dialog) {
101
       this.dialog = dialog;
102
       this.doUpdateEnableComponents();
103
    }
104
    
105
}