Revision 43269

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/dal/feature/swing/FeatureSelectionModel.java
315 315
		if ((currentFirst == first) && (currentLast == last)){
316 316
		    return;
317 317
		}
318

  
319
		int oldFirst = currentFirst;
320
		int oldLast = currentLast;
318 321
		currentFirst = first;
319 322
		currentLast = last;
320 323

  
......
339 342
			selection.endComplexNotification();
340 343
		}
341 344

  
342
		fireValueChanged(first, last, isAdjusting);
345
		// Para no lanzar dos veces el fireValueChanged sobre las mismas filas de la selecci?n
346
		if(oldFirst<=first){
347
		    if(oldLast<first){ //No intersectan los rangos
348
		        fireValueChanged(oldFirst, oldLast, isAdjusting);
349
		        fireValueChanged(first, last, isAdjusting);
350
		    } else { // Intersectan los rangos oldFirst - first - ...
351
                if (last > oldLast) { // Intersectan los rangos oldFirst - first - oldLast - last
352
                    fireValueChanged(oldFirst, last, isAdjusting);
353
                } else { // Intersectan los rangos oldFirst - first - last - oldLast
354
                    fireValueChanged(oldFirst, oldLast, isAdjusting);
355
                }
356
		    }
357
		}
358
        if(first<=oldFirst){
359
            if(last<oldFirst){ //No intersectan los rangos
360
                fireValueChanged(oldFirst, oldLast, isAdjusting);
361
                fireValueChanged(first, last, isAdjusting);
362
            } else { // Intersectan los rangos first - oldFirst - ...
363
                if (last > oldLast) { // Intersectan los rangos first - oldFirst - oldLast - last
364
                    fireValueChanged(first, last, isAdjusting);
365
                } else { // Intersectan los rangos first - oldFirst - last - oldLast
366
                    fireValueChanged(first, oldLast, isAdjusting);
367
                }
368
            }
369
        }
343 370
	}
344 371

  
345 372
	/**

Also available in: Unified diff