Revision 7564

View differences:

branches/v10/applications/appgvSIG/src/com/iver/cit/gvsig/gui/toc/actions/LayersGroupTocMenuEntry.java
52 52
 *
53 53
 * $Id$
54 54
 * $Log$
55
 * Revision 1.2.2.1  2006-09-23 16:05:48  jorpiell
55
 * Revision 1.2.2.2  2006-09-25 14:56:31  jmvivo
56
 * * Modificada la condificion de visibilidad
57
 * * Modificada la implementacion para permitir agrupaciones anidadas
58
 *
59
 * Revision 1.2.2.1  2006/09/23 16:05:48  jorpiell
56 60
 * Se han sacado las opciones de  men? del TOC de FPopupMenu a una nueva clase
57 61
 *
58 62
 *
......
84 88
	}
85 89

  
86 90
	public boolean isVisible(ITocItem item, FLayer[] selectedItems) {
87
		FLayer lyr = getNodeLayer(item);
88
		if (!(lyr instanceof FLayers) || (lyr instanceof FLayers && lyr.getParentLayer() == null)){
91
		if (selectedItems.length < 2) {
89 92
			return false;
90 93
		}
94
		FLayers parent = selectedItems[0].getParentLayer();
95
		for (int i = 1; i < selectedItems.length;i++){
96
			if (parent != selectedItems[i].getParentLayer()){
97
				return false;
98
			}
99
		}
91 100
		return true;
92 101

  
93 102
	}
......
100 109
		String nombre=changename.getName();
101 110

  
102 111
		if (nombre != null){
103
			if (isTocItemBranch(item)){
104
				FLayer[] actives = selectedItems;
105
				FLayers allLayers = getMapContext().getLayers();
106
				FLayer[] layers=new FLayer[allLayers.getLayersCount()];
107
				for (int i=0;i<allLayers.getLayersCount();i++) {
108
					layers[i]=allLayers.getLayer(i);
109
				}
110
				if (actives.length>1) {
111

  
112
					FLayers layerGroup=new FLayers(getMapContext(),getNodeLayer(item).getParentLayer());
113
					boolean first=true;
114
					for (int i=0;i<layers.length;i++) {
115
						//for (int i=0;i<actives.length;i++){
116
						FLayer layer=layers[i];
117
						if (layer.isActive()) {
118
							if (first) {
119
								getMapContext().getLayers().addLayer(i,layerGroup);
120
								first=false;
121
							}
122
							if(layer instanceof FLyrRaster)
123
								((FLyrRaster)layer).setRemoveRasterFlag(false);
124

  
125
							layer.getParentLayer().removeLayer(layer);
126
							layerGroup.addLayer(layer);
127
						}
128
					}
129
					layerGroup.setName(nombre);
130

  
131

  
132
				}
133

  
112
			
113
			getMapContext().beginAtomicEvent();
114
			FLayers parent = selectedItems[0].getParentLayer();
115
			FLayers newGroup = new FLayers(getMapContext(),parent);
116
			newGroup.setName(nombre);
117
			for (int j=0;j < selectedItems.length;j++){
118
				FLayer layer = selectedItems[j];
119
				parent.removeLayer(layer);
120
				newGroup.addLayer(layer);
134 121
			}
122
			parent.addLayer(newGroup);
123
			
124
			getMapContext().endAtomicEvent();
125

  
135 126
			// TRUCO PARA REFRESCAR.
136 127
			getMapContext().invalidate();
137 128
		}

Also available in: Unified diff