Revision 43114 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/jdbc/DefaultJDBCConnectionPanel.java

View differences:

DefaultJDBCConnectionPanel.java
6 6
package org.gvsig.fmap.dal.swing.impl.jdbc;
7 7

  
8 8
import java.awt.Dimension;
9
import java.awt.event.ActionEvent;
10
import java.awt.event.ActionListener;
9 11
import java.awt.event.ItemEvent;
10 12
import java.awt.event.ItemListener;
13
import java.io.File;
11 14
import java.util.Iterator;
12 15
import java.util.List;
13 16
import javax.swing.ComboBoxModel;
14 17
import javax.swing.JComponent;
15 18
import javax.swing.JLabel;
16 19
import javax.swing.JTextField;
20
import javax.swing.SwingUtilities;
17 21
import javax.swing.plaf.basic.BasicHTML;
18 22
import javax.swing.text.View;
23
import org.apache.commons.lang3.ArrayUtils;
19 24
import org.apache.commons.lang3.StringUtils;
20 25
import org.gvsig.fmap.dal.DALLocator;
21 26
import org.gvsig.fmap.dal.DataFactory;
......
24 29
import org.gvsig.fmap.dal.DataServerExplorerPool;
25 30
import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
26 31
import org.gvsig.fmap.dal.exception.DataException;
32
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
27 33
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
28 34
import org.gvsig.fmap.dal.swing.jdbc.JDBCConnectionPanel;
29 35
import org.gvsig.tools.ToolsLocator;
36
import org.gvsig.tools.dynobject.DynClass;
37
import org.gvsig.tools.dynobject.DynField;
30 38
import org.gvsig.tools.i18n.I18nManager;
39
import org.gvsig.tools.swing.api.ToolsSwingLocator;
40
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
31 41
import org.slf4j.Logger;
32 42
import org.slf4j.LoggerFactory;
33 43

  
......
81 91
        this.cboConnections.addItemListener(new ItemListener() {
82 92
            @Override
83 93
            public void itemStateChanged(ItemEvent e) {
84
                onChangeConnection();
94
                // Lo hago asi para evitar cuelgues durante la depuracion
95
                // al poner puntos de ruptura en un evento de un combo.
96
                SwingUtilities.invokeLater(new Runnable() {
97

  
98
                    @Override
99
                    public void run() {
100
                        onChangeConnection();
101
                    }
102
                });
85 103
            }
86 104
        });
87 105
        this.cboConnectors.addItemListener(new ItemListener() {
88 106
            @Override
89 107
            public void itemStateChanged(ItemEvent e) {
90
                onChangeConnector();
108
                // Lo hago asi para evitar cuelgues durante la depuracion
109
                // al poner puntos de ruptura en un evento de un combo.
110
                SwingUtilities.invokeLater(new Runnable() {
111

  
112
                    @Override
113
                    public void run() {
114
                        onChangeConnector();
115
                    }
116
                });
91 117
            }
92 118
        });
93 119
        try {
......
98 124
            logger.warn("Can't fill combos",th);
99 125
        }
100 126
        this.translate();
127
        this.btnDataBaseBrowser.addActionListener(new ActionListener() {
128

  
129
            @Override
130
            public void actionPerformed(ActionEvent e) {
131
                onBrowseDatabase();
132
            }
133
        });
101 134
        adjustPreferedHeight(this.lblFoother,300);
102 135
    }
103 136

  
......
147 180
        this.txtDataBase.setText(parameters.getDBName());
148 181
        this.txtUsername.setText(parameters.getUser());
149 182
        this.txtPassword.setText(parameters.getPassword());
183
        
184
        DynClass definition = parameters.getDynClass();
185
        
186
        DynField field = definition.getDynField(JDBCServerExplorerParameters.HOST_PARAMTER_NAME);
187
        this.txtServer.setEnabled( !( field.isReadOnly() || field.isHidden() ));
188
        field = definition.getDynField(JDBCServerExplorerParameters.PORT_PARAMTER_NAME);
189
        this.txtPort.setEnabled( !( field.isReadOnly() || field.isHidden() ));
190
        field = definition.getDynField(JDBCServerExplorerParameters.DBNAME_PARAMTER_NAME);
191
        this.txtDataBase.setEnabled( !( field.isReadOnly() || field.isHidden() ));
192
        field = definition.getDynField(JDBCServerExplorerParameters.USER_PARAMTER_NAME);
193
        this.txtUsername.setEnabled( !( field.isReadOnly() || field.isHidden() ));
194
        field = definition.getDynField(JDBCServerExplorerParameters.PASSWORD_PARAMTER_NAME);
195
        this.txtPassword.setEnabled( !( field.isReadOnly() || field.isHidden() ));
196
        this.btnDataBaseBrowser.setVisible(parameters instanceof FilesystemStoreParameters);
150 197
    }
151 198

  
152 199
    @Override
......
351 398
        this.txtUsername.setText("");
352 399
        this.txtPassword.setText("");
353 400
    }
401
    
402
    private void onBrowseDatabase() {
403
        if( this.forcedParameters==null ) {
404
            return;
405
        }
406
        ThreadSafeDialogsManager dlgmanager = ToolsSwingLocator.getThreadSafeDialogsManager();
407
        I18nManager i18nManager = ToolsLocator.getI18nManager();
408
        File[] files = dlgmanager.showOpenFileDialog(
409
                i18nManager.getTranslation("_Select_database"), 
410
                null
411
        );
412
        if( ArrayUtils.isEmpty(files) ) {
413
            return;
414
        }
415
        ((FilesystemStoreParameters)this.forcedParameters).setFile(files[0]);
416
        this.txtDataBase.setText(this.forcedParameters.getDBName());
417
    }
354 418
}

Also available in: Unified diff