Revision 46897 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.shp/src/main/java/org/gvsig/fmap/dal/store/shp/SHPStoreProvider.java

View differences:

SHPStoreProvider.java
27 27
import java.util.ArrayList;
28 28
import java.util.Iterator;
29 29
import java.util.List;
30
import java.util.logging.Level;
30 31

  
31 32
import org.apache.commons.io.FileUtils;
32 33
import org.apache.commons.io.FilenameUtils;
......
50 51
import org.gvsig.fmap.dal.feature.FeatureType;
51 52
import org.gvsig.fmap.dal.feature.exception.PerformEditingException;
52 53
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
54
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
53 55
import org.gvsig.fmap.dal.resource.ResourceAction;
54 56
import org.gvsig.fmap.dal.resource.exception.ResourceException;
55 57
import org.gvsig.fmap.dal.resource.exception.ResourceExecuteException;
......
71 73
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
72 74
import org.gvsig.fmap.geom.exception.CreateGeometryException;
73 75
import org.gvsig.fmap.geom.primitive.Envelope;
76
import org.gvsig.fmap.geom.type.GeometryType;
74 77
import org.gvsig.tools.dispose.DisposableIterator;
75 78
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
76 79
import org.gvsig.tools.exception.BaseException;
......
620 623
        return this.getShpParameters().getFile();
621 624
    }
622 625

  
626
    @Override
627
    public void fixFeatureTypeFromParameters() {
628
        try {
629
            super.fixFeatureTypeFromParameters();
630
            FeatureStoreProviderServices store = this.getStoreServices();
631
            
632
            FeatureType ft = store.getDefaultFeatureType();
633
            FeatureAttributeDescriptor geomAttr = ft.getDefaultGeometryAttribute();
634
            
635
            GeometryType geomType = geomAttr.getGeomType();
636
            if(geomType.getType() != this.shpFile.getGeometryType() || geomType.getSubType() != this.shpFile.getGeometrySubType()) {
637
                EditableFeatureType eft = ft.getEditable();
638
                EditableFeatureAttributeDescriptor geomEditableAttr = (EditableFeatureAttributeDescriptor) eft.getDefaultGeometryAttribute();
639
                geomEditableAttr.setGeometryType(this.shpFile.getGeometryType(), this.shpFile.getGeometrySubType());
640
                this.setStoreFeatureType(eft.getNotEditableCopy());
641
            }
642
        } catch (DataException ex) {
643
            LOGGER.warn("Can't fix feture type.", ex);
644
        }
623 645

  
646
    }
647

  
648
    
649

  
624 650
}

Also available in: Unified diff