SingleFieldDissolveCriteria_patch.txt

Patch of SingleFieldDissolveCriteria.java - Antonio Falciano, 01/05/2013 07:46 PM

Download (1.92 KB)

 
1
Index: src/com/iver/cit/gvsig/geoprocess/impl/dissolve/fmap/SingleFieldDissolveCriteria.java
2
===================================================================
3
--- src/com/iver/cit/gvsig/geoprocess/impl/dissolve/fmap/SingleFieldDissolveCriteria.java	(revision 39491)
4
+++ src/com/iver/cit/gvsig/geoprocess/impl/dissolve/fmap/SingleFieldDissolveCriteria.java	(working copy)
5
@@ -77,6 +77,7 @@
6
 import com.iver.cit.gvsig.fmap.drivers.ILayerDefinition;
7
 import com.iver.cit.gvsig.fmap.drivers.SHPLayerDefinition;
8
 import com.iver.cit.gvsig.fmap.layers.FLyrVect;
9
+import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
10
 import com.iver.cit.gvsig.geoprocess.core.fmap.DefinitionUtils;
11
 import com.iver.cit.gvsig.geoprocess.core.fmap.SummarizationFunction;
12
 import com.iver.cit.gvsig.geoprocess.core.fmap.XTypes;
13
@@ -234,13 +235,22 @@
14
 				getFieldIndexByName(dissolveField);
15
 			int fieldType = layer.getRecordset().
16
 				getFieldType(dissolveFieldIndex);
17
-			int fieldLenght = DefinitionUtils.
18
-				getDataTypeLength(fieldType);
19
+			//int fieldLenght = DefinitionUtils.
20
+			//	getDataTypeLength(fieldType);
21
+			SelectableDataSource recordset = layer.getRecordset();
22
+			FieldDescription[] recordsetFieldsDescription = recordset.
23
+				getFieldsDescription();
24
+			int fieldLength = recordsetFieldsDescription[dissolveFieldIndex].
25
+				getFieldLength();
26
+			int fieldDecimalCount = recordsetFieldsDescription[dissolveFieldIndex].
27
+				getFieldDecimalCount();
28
+			
29
 			description.setFieldName(dissolveField);
30
 			description.setFieldType(fieldType);
31
-			description.setFieldLength(fieldLenght);
32
+			description.setFieldLength(fieldLength);
33
 			if(DefinitionUtils.isNumeric(description)){
34
-				description.setFieldDecimalCount(DefinitionUtils.NUM_DECIMALS);
35
+				//description.setFieldDecimalCount(DefinitionUtils.NUM_DECIMALS);
36
+				description.setFieldDecimalCount(fieldDecimalCount);
37
 			}
38
 			fields.add(description);
39
 		} catch (ReadDriverException e) {