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 | } |