Revision 46174 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/ViewControls.java

View differences:

ViewControls.java
440 440
        for (FLayer layer : actives) {
441 441
            FLayers layers = layer.getParentLayer();
442 442
            int position = this.getPositionInFlayersGroup(layers, layer);
443
            int newPosition =  getValidTocPosition(position, layers, -1);
444
            layers.moveTo(position,newPosition);
443
            if( position < 1 ) {
444
                FLayers layersParent = layers.getParentLayer();
445
                if( layersParent!=null ) {
446
                    int layersPosition = this.getPositionInFlayersGroup(layersParent, layers);
447
                    int newPosition =  layersParent.size()-getValidTocPosition(layersPosition, layersParent, -1)-1;
448
                    layersParent.add(newPosition, layer);
449
                    layers.remove(layer);
450
                }
451
            } else {
452
                int newPosition =  getValidTocPosition(position, layers, -1);
453
                layers.moveTo(position,newPosition);
454
            }
445 455
        }
446 456
        List<FLayers> flayersGroup = getFirstLevelGroupsFromLayers(groupLayers);
447 457
        for (FLayers fLayer : flayersGroup) {
......
454 464
        for (FLayer layer : actives) {
455 465
            FLayers layers = layer.getParentLayer();
456 466
            int position = this.getPositionInFlayersGroup(layers, layer);
457
            int newPosition =  getValidTocPosition(position, layers, +1);
458
            layers.moveTo(position, newPosition);
467
            if( position >= layers.size()-1 ) {
468
                FLayers layersParent = layers.getParentLayer();
469
                if( layersParent!=null ) {
470
                    int layersPosition = this.getPositionInFlayersGroup(layersParent, layers);
471
                    int newPosition = layersParent.size() - layersPosition + 1;
472
                    if (newPosition < 0) {
473
                        layersParent.add(0, layer);
474
                    } else if (newPosition >= layersParent.getLayersCount()) {
475
                        layersParent.add(layersParent.size(),layer);
476
                    } else {
477
                        layersParent.add(newPosition, layer);
478
                    }
479
//                    int newPosition =  layersParent.size()-getValidTocPosition(layersPosition, layersParent, +1);
480
//                    layersParent.add(newPosition, layer);
481
                    layers.remove(layer);
482
                }
483
            } else {
484
                int newPosition =  getValidTocPosition(position, layers, +1);
485
                layers.moveTo(position, newPosition);
486
            }
459 487
        }
460 488
        List<FLayers> flayersGroup = getFirstLevelGroupsFromLayers(groupLayers);
461 489
        for (FLayers fLayer : flayersGroup) {

Also available in: Unified diff