Revision 43355 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
12 12
import java.awt.event.ItemListener;
13 13
import java.io.File;
14 14
import java.util.Iterator;
15
import java.util.List;
16 15
import javax.swing.ComboBoxModel;
17 16
import javax.swing.JComponent;
18 17
import javax.swing.JLabel;
......
28 27
import org.gvsig.fmap.dal.DataServerExplorerParameters;
29 28
import org.gvsig.fmap.dal.DataServerExplorerPool;
30 29
import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
31
import org.gvsig.fmap.dal.exception.DataException;
32 30
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
33 31
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
34 32
import org.gvsig.fmap.dal.swing.jdbc.JDBCConnectionPanel;
......
44 42
// org.gvsig.fmap.mapcontrol.dal.jdbc.JDBCConnectionPanel
45 43
public class DefaultJDBCConnectionPanel extends DefaultJDBCConnectionPanelView implements JDBCConnectionPanel{
46 44

  
47
    private static final Logger
48
 logger = LoggerFactory.getLogger(DefaultJDBCConnectionPanel.class);
45
    private static final Logger logger = LoggerFactory.getLogger(DefaultJDBCConnectionPanel.class);
46
    private static final long serialVersionUID = -6119489353793596382L;
49 47
    private JDBCServerExplorerParameters forcedParameters;
48
    private ItemListener onChangeConnectorItemListener;
50 49

  
51 50
    @Override
52 51
    public JComponent asJComponent() {
......
91 90
        this.cboConnections.addItemListener(new ItemListener() {
92 91
            @Override
93 92
            public void itemStateChanged(ItemEvent e) {
94
                // Lo hago asi para evitar cuelgues durante la depuracion
93
                if(e.getStateChange() != ItemEvent.SELECTED) {
94
                    return;
95
                }                // Lo hago asi para evitar cuelgues durante la depuracion
95 96
                // al poner puntos de ruptura en un evento de un combo.
96 97
                SwingUtilities.invokeLater(new Runnable() {
97 98

  
......
102 103
                });
103 104
            }
104 105
        });
105
        this.cboConnectors.addItemListener(new ItemListener() {
106
        this.onChangeConnectorItemListener = new ItemListener() {
106 107
            @Override
107 108
            public void itemStateChanged(ItemEvent e) {
109
                if(e.getStateChange() != ItemEvent.SELECTED) {
110
                    return;
111
                }
108 112
                // Lo hago asi para evitar cuelgues durante la depuracion
109 113
                // al poner puntos de ruptura en un evento de un combo.
110 114
                SwingUtilities.invokeLater(new Runnable() {
......
115 119
                    }
116 120
                });
117 121
            }
118
        });
122
        };
123
        this.cboConnectors.addItemListener(onChangeConnectorItemListener);
119 124
        try {
120 125
            fillConnections();
121 126
            fillConnectors();
......
167 172
        
168 173
        int indexConnector = this.getIndexOfConnector(parameters);
169 174
        if ( indexConnector >= 0 && this.cboConnectors.getSelectedIndex()!=indexConnector ) {
175
            this.cboConnectors.removeItemListener(this.onChangeConnectorItemListener);
170 176
            this.cboConnectors.setSelectedIndex(indexConnector);
177
            this.cboConnectors.addItemListener(onChangeConnectorItemListener);
171 178
        }
172 179

  
173 180
        this.txtServer.setText(parameters.getHost());
......
200 207
    public JDBCServerExplorerParameters getServerExplorerParameters() {
201 208
        JDBCServerExplorerParameters params;
202 209
        JDBCServerExplorerParameters connector = this.getConnector();
210
        if( connector==null ) {
211
            return null;
212
        }
203 213
        if( this.forcedParameters==null ) {
204 214
            params = (JDBCServerExplorerParameters) connector.getCopy();
205 215
        } else {
......
319 329
            ComboBoxModel model = this.cboConnectors.getModel();
320 330
            for ( int i = 0; i < model.getSize(); i++ ) {
321 331
                ServerExplorerParametersComboItem x = (ServerExplorerParametersComboItem) model.getElementAt(i);
322
                if ( x.getLabel().equalsIgnoreCase(explorerParameters.getExplorerName()) ) {
332
                if ( x.getParams()!=null && x.getParams().getExplorerName().equalsIgnoreCase(explorerParameters.getExplorerName()) ) {
323 333
                    return i;
324 334
                }
325 335
            }
......
333 343
        DataManager dataManager = DALLocator.getDataManager();
334 344

  
335 345
        ServerExplorerParametersComboItem last = null;
346
        this.cboConnectors.addItem(new ServerExplorerParametersComboItem("",null));
336 347
        
337 348
        for (DataFactory factory :  dataManager.getServerExplorerRegister() ) {
338 349
            DataServerExplorerParameters params = (DataServerExplorerParameters) factory.createParameters();

Also available in: Unified diff