Revision 139 org.gvsig.toolbox/trunk/org.gvsig.toolbox/org.gvsig.toolbox.core/src/main/java/es/unex/sextante/shapesTools/ShapesTools.java

View differences:

ShapesTools.java
71 71
      final IVectorLayer output = outputFactory.getNewVectorLayer(layer.getName(), layer.getShapeType(), types, sFields, channel,
72 72
               layer.getCRS());
73 73

  
74
      int j = 0;
75
      final IFeatureIterator iter = layer.iterator();
76
      while (iter.hasNext()) {
77
         try {
78
            final IFeature feature = iter.next();
79
            final IRecord record = feature.getRecord();
80
            final Object[] orgValues = record.getValues();
81
            for (i = 0; i < orgValues.length; i++) {
82
               values[i] = orgValues[i];
74
        if (output != null) {
75
            int j = 0;
76
            final IFeatureIterator iter = layer.iterator();
77
            while (iter.hasNext()) {
78
                try {
79
                    final IFeature feature = iter.next();
80
                    final IRecord record = feature.getRecord();
81
                    final Object[] orgValues = record.getValues();
82
                    for (i = 0; i < orgValues.length; i++) {
83
                        values[i] = orgValues[i];
84
                    }
85
                    for (i = 0; i < sFieldNames.length; i++) {
86
                        values[i + orgValues.length] = addedValues[i][j];
87
                    }
88
                    output.addFeature(feature.getGeometry(), values);
89
                } catch (final Exception e) {
90
                    e.printStackTrace();
91
                }
92
                j++;
83 93
            }
84
            for (i = 0; i < sFieldNames.length; i++) {
85
               values[i + orgValues.length] = addedValues[i][j];
86
            }
87
            output.addFeature(feature.getGeometry(), values);
88
         }
89
         catch (final Exception e) {
90
            e.printStackTrace();
91
         }
92
         j++;
93
      }
94
      iter.close();
95
      //layer.close();
94
            iter.close();
95
            // layer.close();
96
        }
96 97

  
97 98
      return output;
98 99

  

Also available in: Unified diff