Revision 4193 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/edition/VectorialEditableDBAdapter.java

View differences:

VectorialEditableDBAdapter.java
136 136
						if (delRows.get(calculatedIndex) == true)
137 137
						{
138 138
							boolean bFound = false;
139
							while ((delRows.get(calculatedIndex) == true) && (idFromExpansion < expansionFile.getSize()-1))
139
							while ((!bFound) && (idFromExpansion < expansionFile.getSize()-1))
140 140
							{
141 141
								calculatedIndex++;
142 142
								idFromExpansion++;
143
								if (delRows.get(calculatedIndex) == false)
143
								Integer auxCalculated = new Integer(calculatedIndex);
144
								// Si no est? borrado y es una entidad v?lida, que est? siendo usada (no es algo que est? en el expansionFile sin usarse)
145
								if ((delRows.get(calculatedIndex) == false) && (relations.containsKey(auxCalculated)))
144 146
								{
145 147
									bFound = true;
148
									calculated = auxCalculated;
146 149
									break;
147 150
								}
148 151
								else
......
369 372
	 * @see com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter#doAddRow(com.iver.cit.gvsig.fmap.core.IRow)
370 373
	 */
371 374
	public int doAddRow(IRow feat) throws DriverIOException, IOException {
372
		int virtualIndex = super.doAddRow(feat);
373
		Integer posInExpansionFile = (Integer) relations.get(new Integer(virtualIndex));
374
		Integer virtual = new Integer(virtualIndex); // virtual es igual al numero de shapes originales + el numero de entidades a?adidas.
375
		int calculatedIndex = super.doAddRow(feat);
376
		Integer posInExpansionFile = (Integer) relations.get(new Integer(calculatedIndex));
377
		Integer virtual = new Integer(calculatedIndex); // calculatedIndex es igual al numero de shapes originales + el numero de entidades a?adidas.
375 378
					// es decir, virtual es el calculatedIndex (no tiene en cuenta los borrados)
376 379
					// calculatedIndex = indiceExterno + borrados hasta ese punto.
377 380
		mapFID2index.put(feat.getID(), virtual);
378 381
		mapIndex2FID.put(virtual, feat.getID());
379
		return virtualIndex;
382
		return calculatedIndex;
380 383
		
381 384
	}
382 385

  

Also available in: Unified diff