Revision 7564
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