Revision 44422

View differences:

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/DefaultJDBCConnectionDialog.java
39 39
import javax.swing.filechooser.FileFilter;
40 40
import org.apache.commons.io.IOUtils;
41 41
import org.apache.commons.lang3.ArrayUtils;
42
import org.apache.commons.lang3.StringUtils;
42 43
import org.gvsig.filedialogchooser.FileDialogChooser;
43 44
import org.gvsig.fmap.dal.DALLocator;
44 45
import org.gvsig.fmap.dal.DataManager;
......
198 199
        FoldersManager folderManager = ToolsLocator.getFoldersManager();
199 200
        DataManager dataManager = DALLocator.getDataManager();
200 201

  
202
        String problems = this.jdbcServerExplorer.getParametersProblems();
203
        if( !StringUtils.isBlank(problems) ) {
204
            dialogs.message(
205
                    i18n.getTranslation("_Some_values_are_invalids")+"\n\n"+problems,
206
                    JOptionPane.WARNING_MESSAGE
207
            );
208
            return;
209
        }
210
        
201 211
        LabeledValue<JDBCServerExplorerParameters> parameters = this.getLabeledServerExplorerParameters();
202 212
        if( parameters == null || parameters.getValue()==null ) {
203 213
            dialogs.messageDialog(
......
277 287
    
278 288
    protected void doAcept() {
279 289
        this.isCanceled = false;
290
        String problems = this.jdbcServerExplorer.getParametersProblems();
291
        if( !StringUtils.isBlank(problems) ) {
292
            I18nManager i18n = ToolsLocator.getI18nManager();
293
            ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
294
            dialogs.message(
295
                    i18n.getTranslation("_Some_values_are_invalids")+"\n\n"+problems,
296
                    JOptionPane.WARNING_MESSAGE
297
            );
298
            return;
299
        }
280 300
        this.setVisible(false);
281 301
    }
282 302
    
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
23 23
import org.gvsig.fmap.dal.DataServerExplorerParameters;
24 24
import org.gvsig.fmap.dal.DataServerExplorerPool;
25 25
import org.gvsig.fmap.dal.DataServerExplorerPoolEntry;
26
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
26 27
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
27 28
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
28 29
import org.gvsig.fmap.dal.swing.jdbc.JDBCConnectionPanel;
......
272 273
        if( s!=null ) {
273 274
            params.setPassword(s);
274 275
        }
275

  
276
                
276 277
        String name = this.getConnectionName();
277 278
        if ( StringUtils.isBlank(name) ) {
278 279
            if( params instanceof FilesystemStoreParameters ) {
......
295 296
                name = builder.toString();
296 297
            }
297 298
        }
299
        
298 300
        if( StringUtils.isBlank(name) ) {
299 301
            name = getUniqueEntryName("Connection");
300
        } else {
302
        } else if( this.isNewConnection() ) {
301 303
            name = getUniqueEntryName(name);
302 304
        }
303 305

  
304
        DataManager dataManager = DALLocator.getDataManager();
305
        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
306
        pool.add(name, params);
306
        try {
307
            params.validate();
308
            DataManager dataManager = DALLocator.getDataManager();
309
            DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
310
            pool.add(name, params);
311
        } catch (ValidateDataParametersException ex) {
312
            
313
        }
314
        
307 315
        return new LabeledValueImpl<>(name,params);
308 316
    }
309 317
    
318
    @Override
319
    public boolean areTheParametersValid() {
320
        try {
321
            LabeledValue<JDBCServerExplorerParameters> params = this.getLabeledServerExplorerParameters();
322
            params.getValue().validate();
323
            return true;
324
        } catch (ValidateDataParametersException ex) {
325
            return false;
326
        }
327
    }
328
    
329
    @Override
330
    public String getParametersProblems() {
331
        try {
332
            LabeledValue<JDBCServerExplorerParameters> params = this.getLabeledServerExplorerParameters();
333
            params.getValue().validate();
334
            return null;
335
        } catch (ValidateDataParametersException ex) {
336
            return ex.getLocalizedMessageStack();
337
        }
338
    }
339
    
310 340
    private String getUniqueEntryName(String name) {
311 341
        DataManager dataManager = DALLocator.getDataManager();
312 342
        DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
......
327 357

  
328 358
    @Override
329 359
    public String getConnectionName() {
330
        JTextField txtConnections = (JTextField) this.cboConnections.getEditor().getEditorComponent();
331
        String value = txtConnections.getText();
332
        return (String) StringUtils.defaultIfBlank(value, null);
360
        String value = (String) this.cboConnections.getSelectedItem();
361
        return StringUtils.defaultIfBlank(value, null);
333 362
    }
334 363

  
364
    @Override
365
    public boolean isNewConnection() {
366
        String name = this.getConnectionName();
367
        if( name == null ) {
368
            return true;
369
        }
370
        ComboBoxModel<LabeledValue<JDBCServerExplorerParameters>> model = this.cboConnections.getModel();
371
        for (int i = 0; i < model.getSize(); i++) {
372
            LabeledValue<JDBCServerExplorerParameters> conn = model.getElementAt(i);
373
            if( StringUtils.equalsIgnoreCase(name, conn.getLabel()) ) {
374
                return false;
375
            }
376
        }
377
        return true;
378
    }
379
    
335 380
    protected JDBCServerExplorerParameters getConnector() {
336 381
        LabeledValue<JDBCServerExplorerParameters> item = (LabeledValue<JDBCServerExplorerParameters>) this.cboConnectors.getSelectedItem();
337 382
        if( item == null ) {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/jdbc/JDBCConnectionPanel.java
13 13
    }
14 14
    
15 15
    public void setServerExplorerParameters(JDBCServerExplorerParameters parameters);
16
    
16 17
    public void setLabeledServerExplorerParameters(LabeledValue<JDBCServerExplorerParameters> parameters);
18
    
17 19
    public JDBCServerExplorerParameters getServerExplorerParameters();
20
    
18 21
    public LabeledValue<JDBCServerExplorerParameters> getLabeledServerExplorerParameters();
22
    
23
    public boolean areTheParametersValid();
24
    
25
    public String getParametersProblems();
26

  
19 27
    public void delete();
28
    
20 29
    public void clear();
30
    
21 31
    public String getConnectionName();
32
    
33
    public boolean isNewConnection();
34
    
22 35
    public void setConnectorFilter(ConnectorFilter connectorFilter);
23 36

  
24 37
}

Also available in: Unified diff