Revision 854
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/pom.xml | ||
---|---|---|
18 | 18 |
<!-- El plugin versions:use-latest-versions falla con scope import --> |
19 | 19 |
<!-- asi que toca usar el versions:update-properties que si que funciona --> |
20 | 20 |
<org.gvsig.raster.version>2.2.44</org.gvsig.raster.version> |
21 |
<org.gvsig.toolbox.version>1.0.24</org.gvsig.toolbox.version>
|
|
21 |
<org.gvsig.toolbox.version>1.0.25-SNAPSHOT</org.gvsig.toolbox.version>
|
|
22 | 22 |
</properties> |
23 | 23 |
<scm> |
24 | 24 |
<connection>scm:svn:https://devel.gvsig.org/svn/gvsig-geoprocess/org.gvsig.geoprocess/trunk/org.gvsig.geoprocess</connection> |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/core/DefaultOutputFactory.java | ||
---|---|---|
34 | 34 |
import org.gvsig.app.ApplicationLocator; |
35 | 35 |
import org.gvsig.app.project.ProjectPreferences; |
36 | 36 |
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel; |
37 |
import org.gvsig.fmap.geom.Geometry; |
|
37 | 38 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.BufferWriteOnlyIRasterLayer; |
38 | 39 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FLyrRasterIRasterLayer; |
39 | 40 |
import org.gvsig.geoprocess.lib.sextante.dataObjects.FileTools; |
... | ... | |
62 | 63 |
*/ |
63 | 64 |
public class DefaultOutputFactory extends OutputFactory { |
64 | 65 |
|
66 |
public IVectorLayer getNewVectorLayer(final String name, |
|
67 |
final int shapeType, final Class[] types, final String[] fields, |
|
68 |
final IOutputChannel channel, final Object crs, final int subtype) |
|
69 |
throws UnsupportedOutputChannelException { |
|
70 |
|
|
71 |
final int[] sizes = getSizesFromTypeClass(types); |
|
72 |
return getNewVectorLayer(name, shapeType, types, fields, channel, crs, |
|
73 |
sizes, subtype); |
|
74 |
|
|
75 |
} |
|
65 | 76 |
@Override |
66 | 77 |
public IVectorLayer getNewVectorLayer(final String name, |
67 | 78 |
final int shapeType, final Class[] types, final String[] fields, |
... | ... | |
70 | 81 |
|
71 | 82 |
final int[] sizes = getSizesFromTypeClass(types); |
72 | 83 |
return getNewVectorLayer(name, shapeType, types, fields, channel, crs, |
73 |
sizes); |
|
84 |
sizes, Geometry.SUBTYPES.UNKNOWN);
|
|
74 | 85 |
|
75 | 86 |
} |
76 | 87 |
|
... | ... | |
87 | 98 |
final int iShapeType, final Class[] types, final String[] sFields, |
88 | 99 |
final IOutputChannel channel, final Object crs, int[] fieldSize) |
89 | 100 |
throws UnsupportedOutputChannelException { |
101 |
return getNewVectorLayer(sName, iShapeType, types, sFields, |
|
102 |
channel, crs, fieldSize, Geometry.SUBTYPES.UNKNOWN); |
|
90 | 103 |
|
104 |
} |
|
105 |
|
|
106 |
@Override |
|
107 |
public IVectorLayer getNewVectorLayer(final String sName, |
|
108 |
final int iShapeType, final Class[] types, final String[] sFields, |
|
109 |
final IOutputChannel channel, final Object crs, int[] fieldSize, int subtype) |
|
110 |
throws UnsupportedOutputChannelException { |
|
111 |
|
|
91 | 112 |
if( fieldSize==null ) { |
92 | 113 |
fieldSize = getSizesFromTypeClass(types); |
93 | 114 |
} |
... | ... | |
97 | 118 |
Object inputParams = |
98 | 119 |
((CompositeSourceIOutputChannel) channel).getParameters(); |
99 | 120 |
layer.create(sName, inputParams, iShapeType, types, sFields, |
100 |
crs, fieldSize); |
|
121 |
crs, fieldSize, subtype);
|
|
101 | 122 |
return layer; |
102 | 123 |
|
103 | 124 |
} else if (channel instanceof FileOutputChannel) { |
104 | 125 |
FlyrVectIVectorLayer layer = new FlyrVectIVectorLayer(); |
105 | 126 |
String fileName = ((FileOutputChannel) channel).getFilename(); |
106 | 127 |
layer.create(sName, fileName, iShapeType, types, sFields, crs, |
107 |
fieldSize); |
|
128 |
fieldSize, subtype);
|
|
108 | 129 |
return layer; |
109 | 130 |
} else if (channel instanceof NullOutputChannel) { |
110 | 131 |
return null; |
org.gvsig.geoprocess/trunk/org.gvsig.geoprocess/org.gvsig.geoprocess.lib/org.gvsig.geoprocess.lib.sextante/src/main/java/org/gvsig/geoprocess/lib/sextante/dataObjects/FlyrVectIVectorLayer.java | ||
---|---|---|
31 | 31 |
import java.util.List; |
32 | 32 |
|
33 | 33 |
import org.cresques.cts.IProjection; |
34 |
|
|
34 | 35 |
import org.gvsig.fmap.dal.DALLocator; |
35 | 36 |
import org.gvsig.fmap.dal.DataManager; |
36 | 37 |
import org.gvsig.fmap.dal.DataServerExplorer; |
37 | 38 |
import org.gvsig.fmap.dal.DataStoreParameters; |
38 | 39 |
import org.gvsig.fmap.dal.exception.DataException; |
40 |
import org.gvsig.fmap.dal.exception.ReadException; |
|
39 | 41 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
40 | 42 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
41 | 43 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
... | ... | |
100 | 102 |
|
101 | 103 |
public void create(String sName, Object inputParams, int iShapeType, |
102 | 104 |
Class[] types, String[] sFields, Object crs, int[] fieldSize) { |
105 |
create(sName, inputParams, iShapeType, |
|
106 |
types, sFields, crs, fieldSize, org.gvsig.fmap.geom.Geometry.SUBTYPES.UNKNOWN); |
|
107 |
} |
|
108 |
public void create(String sName, Object inputParams, int iShapeType, |
|
109 |
Class[] types, String[] sFields, Object crs, int[] fieldSize, int subtype) { |
|
103 | 110 |
try { |
104 | 111 |
// inputParameters = inputParams; |
105 | 112 |
m_sName = sName; |
... | ... | |
114 | 121 |
|
115 | 122 |
featureType = newParams.getDefaultFeatureType(); |
116 | 123 |
loadFeatureType(sFields, types, iShapeType, crs, |
117 |
(EditableFeatureType) featureType, fieldSize); |
|
124 |
(EditableFeatureType) featureType, fieldSize, subtype);
|
|
118 | 125 |
newParams.setDynValue("CRS", m_Projection); |
119 | 126 |
|
120 | 127 |
DATA_MANAGER.newStore(dataServerExplorer.getProviderName(), |
... | ... | |
152 | 159 |
public void create(final String sName, final String sFilename, |
153 | 160 |
final int iShapeType, final Class<?>[] types, final String[] sFields, |
154 | 161 |
final Object crs, final int[] fieldSize) { |
162 |
create(sName, sFilename, iShapeType, types, sFields, crs, fieldSize, org.gvsig.fmap.geom.Geometry.SUBTYPES.UNKNOWN); |
|
163 |
} |
|
155 | 164 |
|
165 |
public void create(final String sName, final String sFilename, |
|
166 |
final int iShapeType, final Class<?>[] types, final String[] sFields, |
|
167 |
final Object crs, final int[] fieldSize, int subtype) { |
|
168 |
|
|
156 | 169 |
try { |
157 | 170 |
// inputParameters = sFilename; |
158 | 171 |
m_sName = sName; |
... | ... | |
175 | 188 |
newParams.getDefaultFeatureType(); |
176 | 189 |
featureType = editableFeatureType; |
177 | 190 |
loadFeatureType(sFields, types, iShapeType, crs, |
178 |
editableFeatureType, fieldSize); |
|
191 |
editableFeatureType, fieldSize, subtype);
|
|
179 | 192 |
|
180 | 193 |
newParams.setDefaultFeatureType(featureType); |
181 | 194 |
newParams.setDynValue("crs", m_Projection); |
... | ... | |
198 | 211 |
|
199 | 212 |
private void loadFeatureType(final String[] fields, final Class<?>[] types, |
200 | 213 |
final int shapeType, final Object crs, |
201 |
final EditableFeatureType featureType, final int[] fieldSize) { |
|
214 |
final EditableFeatureType featureType, final int[] fieldSize, final int subtype) {
|
|
202 | 215 |
final int[] iTypes = getTypes(types); |
203 | 216 |
|
204 | 217 |
for (int i = 0; i < fields.length; i++) { |
... | ... | |
216 | 229 |
FeatureAttributeDescriptor desc = |
217 | 230 |
featureType.getDefaultGeometryAttribute(); |
218 | 231 |
if (desc == null) { |
219 |
addGeometryAttribute("GEOMETRY", shapeType, featureType); |
|
232 |
addGeometryAttribute("GEOMETRY", shapeType, subtype, featureType);
|
|
220 | 233 |
featureType.setDefaultGeometryAttributeName("GEOMETRY"); |
221 | 234 |
} |
222 | 235 |
} |
223 | 236 |
|
224 | 237 |
private void addGeometryAttribute(final String fieldName, |
225 |
final int shapeType, final EditableFeatureType featureType) { |
|
238 |
final int shapeType, final int subtype, final EditableFeatureType featureType) {
|
|
226 | 239 |
try { |
227 |
GeometryType type = |
|
228 |
geometryManager.getGeometryType(getgvSIGShapeType(shapeType), |
|
229 |
org.gvsig.fmap.geom.Geometry.SUBTYPES.GEOM2D); |
|
240 |
GeometryType type; |
|
241 |
if (subtype == org.gvsig.fmap.geom.Geometry.SUBTYPES.UNKNOWN) { |
|
242 |
type = |
|
243 |
geometryManager.getGeometryType(getgvSIGShapeType(shapeType), |
|
244 |
org.gvsig.fmap.geom.Geometry.SUBTYPES.GEOM2D); |
|
245 |
} else { |
|
246 |
type = |
|
247 |
geometryManager.getGeometryType(getgvSIGShapeType(shapeType),subtype); |
|
248 |
} |
|
230 | 249 |
featureType.add(fieldName, DataTypes.GEOMETRY) |
231 | 250 |
.setGeometryType(type); |
232 | 251 |
} catch (GeometryTypeNotSupportedException e) { |
... | ... | |
570 | 589 |
} |
571 | 590 |
|
572 | 591 |
} |
592 |
|
|
593 |
/* (non-Javadoc) |
|
594 |
* @see es.unex.sextante.dataObjects.IVectorLayer#getSubType() |
|
595 |
*/ |
|
596 |
@Override |
|
597 |
public int getSubType() throws ReadException { |
|
598 |
if(m_Layer!=null){ |
|
599 |
return m_Layer.getGeometryType().getSubType(); |
|
600 |
} |
|
601 |
return org.gvsig.fmap.geom.Geometry.SUBTYPES.UNKNOWN; |
|
602 |
} |
|
573 | 603 |
} |
Also available in: Unified diff