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
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