Revision 44152 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/featuretype/DefaultFeatureTypePanel.java

View differences:

DefaultFeatureTypePanel.java
215 215
        }
216 216
    }
217 217
       
218
    private void doFormFieldFetch() {
218
    private boolean doFormFieldFetch() {
219 219
        int row = this.tblFields.getSelectedRow();
220 220
        if( row<0 ) {
221
            return;
221
            return true;
222 222
        }
223 223
        FeatureAttributeDescriptor descriptor = this.featureType.getAttributeDescriptor(row);
224 224
        if( descriptor instanceof EditableFeatureAttributeDescriptor ) {
225
            this.descriptorPanel.fetch((EditableFeatureAttributeDescriptor) descriptor);
225
            if( this.descriptorPanel.fetch((EditableFeatureAttributeDescriptor) descriptor)==null ) {
226
                return false;
227
            }
226 228
            this.tableModel.fireUpdateEvent();
227 229
        } 
230
        return true;
228 231
    }
229 232
    
230 233
    private void doFormFieldPut() {
......
249 252
        this.btnFormFieldAccept.setEnabled(false);
250 253
        this.btnFormFieldDiscard.setEnabled(false);
251 254
        this.btnFormFieldModify.setEnabled(this.editable);
255
        this.btnNew.setEnabled(true);
256
        this.btnDelete.setEnabled(true);
252 257
    }
253 258
    
254 259
    private void doFormFieldModify() {
......
262 267
        this.btnFormFieldAccept.setEnabled(this.editable);
263 268
        this.btnFormFieldDiscard.setEnabled(this.editable);
264 269
        this.btnFormFieldModify.setEnabled(false);
270
        this.btnNew.setEnabled(false);
271
        this.btnDelete.setEnabled(false);
265 272
        if( descriptor instanceof EditableFeatureAttributeDescriptor ) {
266 273
            this.descriptorPanel.setEditable(this.editable);
267 274
        } else {
......
271 278
    }
272 279
    
273 280
    private void doFormFieldAccept() {
274
        doFormFieldFetch();
275
        this.updateButtonState();
276
        this.fieldSelectionAllowed = true;
281
        int row = this.tblFields.getSelectedRow();
282
        if( row<0 ) {
283
            return;
284
        }
285
        if( doFormFieldFetch() ) {
286
            this.updateButtonState();
287
            this.tblFields.getSelectionModel().setSelectionInterval(row, row);
288
            this.tblFields.scrollRectToVisible(this.tblFields.getCellRect(row, 0, true));
289
            this.fieldSelectionAllowed = true;
290
        }
277 291
    }
278 292
    
279 293
    private void doFormFieldDiscard() {
......
349 363
        EditableFeatureType eft = (EditableFeatureType)this.featureType;
350 364
        EditableFeatureAttributeDescriptor descriptor = eft.add(
351 365
                getNewFieldName(this.featureType), 
352
                DataTypes.STRING
366
                DataTypes.STRING,
367
                50
353 368
        );
354 369
        this.tableModel.fireUpdateEvent();
355 370
        int row = descriptor.getIndex();
356 371
        this.tblFields.getSelectionModel().addSelectionInterval(row,row);
372
        this.tblFields.scrollRectToVisible(this.tblFields.getCellRect(row, 0, true));
357 373
        updateButtonState();
358
        doFormFieldPut();       
374
        doFormFieldModify();       
359 375
    }
360 376
    
361 377
    private void doDeleteField() {

Also available in: Unified diff