Revision 40713 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/MapContext.java

View differences:

MapContext.java
62 62
import org.gvsig.fmap.mapcontext.layers.LayerPositionEvent;
63 63
import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
64 64
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
65
import org.gvsig.fmap.mapcontext.layers.order.LayerOrderManager;
65 66
import org.gvsig.fmap.mapcontext.layers.vectorial.GraphicLayer;
66 67
import org.gvsig.fmap.mapcontext.rendering.legend.events.listeners.LegendListener;
67 68
import org.gvsig.fmap.mapcontext.rendering.strategies.SelectedEnvelopeVisitor;
......
433 434
	 * @see #reportDriverExceptions(String, List)
434 435
	 */
435 436
	private ArrayList errorListeners = new ArrayList();
437
	
438
	
439
	
436 440

  
441
	/**
442
	 * Layer order manager decides position of layers added to this
443
	 * map context.
444
	 */
445
    private LayerOrderManager orderManager = null;
437 446

  
438 447

  
448

  
449

  
439 450
	// public static ResourceBundle myResourceBundle =
440 451
	// ResourceBundle.getBundle("FMap");
441 452

  
......
819 830
        }
820 831
		FLayers antLayers = getLayers();
821 832
		MapContext ret = new MapContext(vp);
833

  
834
		/*
835
		 * Cloning order manager
836
		 */
837
		LayerOrderManager lom = this.getOrderManager();
838
		try {
839
			lom = (LayerOrderManager) lom.clone();
840
			ret.setOrderManager(lom);
841
		} catch (CloneNotSupportedException e1) {
842
			logger.error("While cloning order manager", e1);
843
		}
844
		
822 845
		FLayers aux = new FLayers();//(ret,null);
823 846
		aux.setMapContext(ret);
824 847
		for (int i=0; i < antLayers.getLayersCount(); i++)
......
1577 1600
		
1578 1601
		//Add the listener for the selection
1579 1602
		addSelectionListener(layers);
1603
		
1604
		// ======================
1605
		if (state.hasValue("orderManager")) {
1606
			LayerOrderManager lom = (LayerOrderManager) state.get("orderManager");
1607
			this.setOrderManager(lom);
1608
		}
1580 1609
	}
1581 1610

  
1582 1611
	private void loadLayers(FLayers lyrs) {
......
1594 1623
	public void saveToState(PersistentState state) throws PersistenceException {
1595 1624
		state.set("ViewPort", viewPort);
1596 1625
		state.set("layers", layers);
1626
		state.set("orderManager", this.getOrderManager());
1597 1627
	}
1598 1628

  
1599 1629
	public static void registerPersistent() {
......
1612 1642
		definition.addDynFieldObject("layers")
1613 1643
			.setClassOfValue(FLayers.class)
1614 1644
			.setMandatory(true);
1645

  
1646
		definition.addDynFieldObject("orderManager")
1647
		.setClassOfValue(LayerOrderManager.class)
1648
		.setMandatory(false);
1649

  
1650
		
1615 1651
	}
1616 1652

  
1617 1653
	protected void doDispose() throws BaseException {
......
1650 1686
            }
1651 1687
        }
1652 1688
    }
1689
    
1690

  
1691
    public void setOrderManager(LayerOrderManager lom) {
1692
    	orderManager = lom;
1693
    }
1694
    
1695
    public LayerOrderManager getOrderManager() {
1696
    	
1697
    	if (orderManager == null) {
1698
    		orderManager = MapContextLocator.getDefaultOrderManager();
1699
    	}
1700
    	return orderManager;
1701
    }
1653 1702
}

Also available in: Unified diff