Revision 42075 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/toc/actions/CopyPasteLayersUtils.java

View differences:

CopyPasteLayersUtils.java
220 220
        FLayer item = null;
221 221
        if (actives != null) {
222 222
            for (int i = 0; i < actives.length; i++) {
223
                item = actives[i];
224
                try {
225
                    item = item.cloneLayer();
226
                } catch (Exception ex) {
227
                    throw new PersistenceException(ex);
223
                if(actives[i] instanceof FLayers){
224
                	FLayers aux = (FLayers) actives[i];
225
                	 FLayers copyaux = new FLayers();
226
                	 copyaux.setMapContext(ctxt);
227
                	 copyaux.setName(aux.getName());
228
                	 for(int j=0; j<aux.getLayersCount(); j++){
229
                		 copyaux.addLayer(aux.getLayer(j));
230
                	 }
231
                	 lyrs.addLayer(copyaux);
232
                }else{
233
	            	item = actives[i];
234
	                try {
235
	                    item = item.cloneLayer();
236
	                } catch (Exception ex) {
237
	                    throw new PersistenceException(ex);
238
	                }
239
	                lyrs.addLayer(item);
228 240
                }
229
                lyrs.addLayer(item);
230 241
            }
231 242
        }
232 243

  
......
268 279
                // actives[i].getParentLayer().removeLayer(actives[i]);
269 280
                // FLayers lyrs=getMapContext().getLayers();
270 281
                // lyrs.addLayer(actives[i]);
271
                actives[i].getParentLayer().removeLayer(actives[i]);
272

  
282
            	FLayers parent = actives[i].getParentLayer();
283
            	if(actives[i] instanceof FLayers){
284
            		FLayers grouped = (FLayers) actives[i];
285
            		parent.removeLayer(grouped);
286
            		while(grouped.getLayersCount()>0){
287
            			FLayer lay = grouped.getLayer(0);
288
            			grouped.removeLayer(lay);
289
            		}
290
            	}else{
291
            		parent.removeLayer(actives[i]);
292
            	}
293
                
273 294
                // Cierra todas las ventanas asociadas a la capa
274 295
                IWindow[] wList =
275 296
                    PluginServices.getMDIManager().getAllWindows();

Also available in: Unified diff