Revision 2616 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderServices.java

View differences:

DefaultEditingProviderServices.java
66 66
import org.gvsig.fmap.mapcontext.layers.FLayer;
67 67
import org.gvsig.fmap.mapcontext.layers.SpatialCache;
68 68
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
69
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
69 70
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
70 71
import org.gvsig.tools.ToolsLocator;
71 72
import org.gvsig.tools.exception.BaseException;
72 73
import org.gvsig.tools.i18n.I18nManager;
74
import org.gvsig.tools.lang.CloneableUtils;
73 75
import org.gvsig.tools.service.spi.AbstractProviderServices;
76
import org.gvsig.vectorediting.lib.api.EditingService;
74 77
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
78
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
75 79
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
76 80
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
77 81
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
78 82
import org.slf4j.Logger;
79 83
import org.slf4j.LoggerFactory;
84
import org.gvsig.tools.swing.api.TransparencySupport;
80 85

  
81 86
public class DefaultEditingProviderServices extends AbstractProviderServices
82 87
        implements EditingProviderServices {
......
84 89
    private static final Logger LOGGER = LoggerFactory
85 90
            .getLogger(DefaultEditingProviderServices.class);
86 91

  
92
    public DefaultEditingProviderServices() {
93
        super();
94
    }
95

  
87 96
    @Override
88 97
    public void insertFeatureIntoFeatureStore(Feature feature,
89 98
            FeatureStore featureStore) {
......
143 152
    public EditableFeature createNewFeature(FeatureStore store){
144 153
        try {
145 154
            EditableFeature f = store.createNewFeature();
146
            f.copyFrom(this.getDefaultFeatureValues());
155
            //FIXME: ?Deber?amos saltarnos la geometr?a?
156
            f.copyFrom(this.getDefaultFeatureValues(),(FeatureAttributeDescriptor t) -> !(t.isPrimaryKey() || (t.isIndexed() && !t.allowIndexDuplicateds())));
147 157
            return f;
148 158
        } catch (DataException ex) {
149 159
            throw new RuntimeException("Can't create feature", ex);
......
399 409
            Feature feature) throws DataException {
400 410
        EditableFeature editableFeature
401 411
                = featureStore.createNewFeature(feature.getType(), true);
402
        editableFeature.copyFrom(this.getDefaultFeatureValues());
412
        editableFeature.copyFrom(this.getDefaultFeatureValues(), (FeatureAttributeDescriptor t) -> !(t.isPrimaryKey() || (t.isIndexed() && !t.allowIndexDuplicateds())));
403 413
        
404 414
        editableFeature.copyFrom(feature, (FeatureAttributeDescriptor t) -> !(t.isPrimaryKey() || (t.isIndexed() && !t.allowIndexDuplicateds())));
405 415
        return editableFeature;
......
737 747

  
738 748
        Point measurePoint = GeometryUtils.createPoint(vertex, radius, angleRay1 + angle / 2);
739 749

  
740
//        drawingStatus.addStatus(measurePoint, textSymbol, new AngleFormat("DD�MM'").format(Math.toDegrees(angle)));
741
        drawingStatus.addStatus(measurePoint, textSymbol, new AngleFormat("DD.ddd�").format(Math.toDegrees(angle)));
750
//        drawingStatus.addStatus(measurePoint, textSymbol, GeometryUtils.formatAngle("%2d\u00B0 %2m\u2032", Math.toDegrees(angle)));
751
        drawingStatus.addStatus(measurePoint, textSymbol, GeometryUtils.formatAngle("%5.3D\u00B0", Math.toDegrees(angle)));
742 752

  
743 753
    }
744 754
    
......
751 761

  
752 762
    @Override
753 763
    public EditableFeature getDefaultFeatureValues() {
764
        if(defaultFeatureValues == null){
765
            Feature f = this.getService().getStore().getSampleFeature();
766
            this.defaultFeatureValues = f.getCopy().getEditable();
767
        }
754 768
        return this.defaultFeatureValues;
755 769
    }
770

  
771
    @Override
772
    public ISymbol getPreviewSymbol() {
773
        try {
774
            IVectorLegend legend = this.getService().getLegend();
775
            ISymbol symbol = legend.getSymbolByFeature(getDefaultFeatureValues());
776
            if(!(symbol instanceof TransparencySupport)) {
777
                return null;
778
            }
779
            symbol = (ISymbol) CloneableUtils.cloneQuietly(symbol);
780
            ((TransparencySupport) symbol).setTransparency(0.5);
781
            return symbol;
782
        } catch (Exception e) {
783
            return null;
784
        }
785
    }
786

  
787
    @Override
788
    public ISymbol getPreviewSymbol(Feature feature) {
789
        try {
790
            IVectorLegend legend = this.getService().getLegend();
791
            ISymbol symbol = legend.getSymbolByFeature(feature);
792
            if(!(symbol instanceof TransparencySupport)) {
793
                return null;
794
            }
795
            symbol = (ISymbol) CloneableUtils.cloneQuietly(symbol);
796
            ((TransparencySupport) symbol).setTransparency(0.5);
797
            return symbol;
798
        } catch (Exception e) {
799
            return null;
800
        }
801
    }
802

  
803
    @Override
804
    public EditingService getService() {
805
        return (EditingService) super.getService();
806
    }
756 807
    
757 808
}

Also available in: Unified diff