Revision 45419

View differences:

branches/org.gvsig.desktop-cvsgis1/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureAttributeDescriptor.java
34 34
import java.util.Map;
35 35
import java.util.Map.Entry;
36 36
import java.util.Objects;
37
import org.gvsig.json.Json;
37
import java.util.function.Supplier;
38 38
import javax.json.JsonObject;
39
import org.gvsig.json.JsonObjectBuilder;
40 39
import org.apache.commons.lang3.ArrayUtils;
41
import org.apache.commons.lang3.ObjectUtils;
42 40
import org.apache.commons.lang3.StringUtils;
43 41
import org.apache.commons.lang3.tuple.Pair;
44 42
import org.cresques.cts.IProjection;
45 43
import org.gvsig.expressionevaluator.Expression;
46 44
import org.gvsig.expressionevaluator.ExpressionUtils;
47
import org.gvsig.fmap.crs.CRSFactory;
48 45
import org.gvsig.fmap.dal.DALLocator;
49 46
import org.gvsig.fmap.dal.DataStore;
50 47
import org.gvsig.fmap.dal.DataTypes;
......
62 59
import org.gvsig.fmap.geom.GeometryLocator;
63 60
import org.gvsig.fmap.geom.GeometryUtils;
64 61
import org.gvsig.fmap.geom.type.GeometryType;
62
import org.gvsig.json.Json;
65 63
import org.gvsig.json.JsonManager;
64
import org.gvsig.json.JsonObjectBuilder;
66 65
import org.gvsig.json.SupportToJson;
67 66
import org.gvsig.timesupport.Interval;
68 67
import org.gvsig.timesupport.RelativeInterval;
69 68
import org.gvsig.timesupport.TimeSupportLocator;
70 69
import org.gvsig.tools.ToolsLocator;
71 70
import org.gvsig.tools.dataTypes.Coercion;
71
import org.gvsig.tools.dataTypes.CoercionContext;
72 72
import org.gvsig.tools.dataTypes.CoercionException;
73 73
import org.gvsig.tools.dataTypes.DataType;
74
import org.gvsig.tools.dataTypes.DataType.NumberPrecisionAndScale;
74 75
import org.gvsig.tools.dataTypes.DataTypeUtils;
75 76
import org.gvsig.tools.dynobject.DynField;
76 77
import org.gvsig.tools.dynobject.DynField_LabelAttribute;
......
93 94
import org.gvsig.tools.persistence.Persistent;
94 95
import org.gvsig.tools.persistence.PersistentState;
95 96
import org.gvsig.tools.persistence.exception.PersistenceException;
97
import org.gvsig.tools.util.GetItemWithSize;
98
import org.gvsig.tools.util.LabeledValue;
96 99
import org.slf4j.Logger;
97 100
import org.slf4j.LoggerFactory;
98
import org.gvsig.tools.dataTypes.CoercionContext;
99
import org.gvsig.tools.dataTypes.DataType.NumberPrecisionAndScale;
100
import org.gvsig.tools.util.GetItemWithSize;
101
import org.gvsig.tools.util.LabeledValue;
102 101

  
103 102
@SuppressWarnings("UseSpecificCatch")
104 103
public class DefaultFeatureAttributeDescriptor implements
......
373 372
      return null;
374 373
    }
375 374
  }
375
  
376
  @Override
377
  public Supplier getDefaultValueSupplier() {
378
      return (Supplier) this::getDefaultValueCoerced;
379
  }
376 380

  
381
    @Override
382
    public DynField setDefaultValueSupplier(Supplier supplier) {
383
        //Do nothing
384
        return this;
385
    }
386
  
387
  
388

  
377 389
  @Override
378 390
  public Evaluator getEvaluator() {
379 391
    return this.evaluator;
branches/org.gvsig.desktop-cvsgis1/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/featureform/swing/impl/DefaultJFeaturesForm.java
58 58
import org.gvsig.fmap.dal.feature.EditableFeature;
59 59
import org.gvsig.fmap.dal.feature.Feature;
60 60
import org.gvsig.fmap.dal.feature.FacadeOfAFeature;
61
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
61 62
import org.gvsig.fmap.dal.feature.FeatureQuery;
62 63
import org.gvsig.fmap.dal.feature.FeatureStore;
63 64
import org.gvsig.fmap.dal.feature.FeatureStoreNotification;
......
79 80
import org.gvsig.tools.dynform.DynFormLocator;
80 81
import org.gvsig.tools.dynform.DynFormManager;
81 82
import org.gvsig.tools.dynform.JDynForm;
83
import org.gvsig.tools.dynform.JDynFormField;
82 84
import org.gvsig.tools.dynform.JDynFormSet;
83 85
import static org.gvsig.tools.dynform.JDynFormSet.ACTION_CANCEL_NEW;
84 86
import static org.gvsig.tools.dynform.JDynFormSet.ACTION_DELETE;
......
691 693
        formset.setActionEnabled(ACTION_SEARCH,true);
692 694
        formset.setActionEnabled(REFRESHFORM_ACTION,true);
693 695
    }
696

  
697
    private void clearUniqueFields() {
698
        for(FeatureAttributeDescriptor attr : this.store.getDefaultFeatureTypeQuietly()){
699
            if((attr.isPrimaryKey() && !attr.isAutomatic()) || (attr.isIndexed() && !attr.allowIndexDuplicateds())){
700
                JDynFormField field = formset.getForm().getField(attr.getName());
701
                if(field != null){
702
                    field.clear();
703
                }
704
            }
705
        }
706
    }
694 707
        
695 708
    @Override
696 709
    public long getDataSetSize() {
......
731 744
        @Override
732 745
        public void formBeforeNew(JDynFormSet dynformSet) throws AbortActionException {
733 746
            LOGGER.trace("formBeforeNew");
747
            clearUniqueFields();
734 748
            updateButtonEnabledStatus();
735 749
        }
736 750

  
branches/org.gvsig.desktop-cvsgis1/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/featuretable/table/DynFieldFacadeOfAFeatureAttributeDescriptor.java
7 7
import java.util.List;
8 8
import java.util.Locale;
9 9
import java.util.Objects;
10
import java.util.function.Supplier;
10 11
import javax.json.JsonObject;
11 12
import org.gvsig.json.JsonObjectBuilder;
12 13
import org.apache.commons.lang3.ArrayUtils;
......
772 773
        return this.field.getAvailableValues()!=null;
773 774
    }
774 775

  
776
    @Override
777
    public Supplier getDefaultValueSupplier() {
778
        return ((DynField_v2)this.field).getDefaultValueSupplier();
779
    }
780

  
781
    @Override
782
    public DynField setDefaultValueSupplier(Supplier supplier) {
783
        ((DynField_v2)this.field).setDefaultValueSupplier(supplier);
784
        return this;
785
    }
786

  
775 787
}
branches/org.gvsig.desktop-cvsgis1/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/test/java/org/gvsig/fmap/dal/feature/DummyFeatureAttributeDescriptor.java
7 7
import java.util.List;
8 8
import java.util.Locale;
9 9
import java.util.Objects;
10
import java.util.function.Supplier;
10 11
import javax.json.JsonObject;
11 12
import org.cresques.cts.IProjection;
12 13
import org.gvsig.expressionevaluator.Expression;
......
709 710
        return false;
710 711
    }
711 712

  
713
    @Override
714
    public Supplier getDefaultValueSupplier() {
715
        return null;
716
    }
717

  
718
    @Override
719
    public DynField setDefaultValueSupplier(Supplier supplier) {
720
        return this;
721
    }
722

  
712 723
}

Also available in: Unified diff