setList(graphics);
setGraphicList(graphics);
    public void handleLinkActionList(LinkActionList lal) {	Debug.message("link", "LinkLayer.handleLinkActionList()");	if (lal == null) {	    return;	}	handleMessages(lal.getProperties());	// The only thing we need to do is handle any gesture	// changes...	Vector updates = lal.getGraphicUpdates();	Enumeration items = updates.elements();	boolean needRepaint = false;	LinkOMGraphicList graphics = getGraphicList();	if (graphics == null) {	    Debug.message("link", "LinkLayer.handleLinkActionList: null LinkOMGraphicList, making new one...");	    // Why ignore what the server has to say, set the new	    // OMGraphicList and react accordingly.	    graphics = new LinkOMGraphicList();	    setList(graphics);	}	while (items.hasMoreElements()) {	    needRepaint = true; // We do!	    GraphicUpdate gu = (GraphicUpdate) items.nextElement();	    // Take care of this first.....	    if (LinkUtil.isMask(gu.action, MODIFY_DESELECTALL_GRAPHIC_MASK)) {		Debug.message("link","LinkLayer: deselecting all graphics");		graphics.deselectAll();	    }	    // Find the graphic that we are talking about - if the	    // ID is not "none", or if the id doesn't match the	    // gesGraphic LinkGraphicID, then look for the new	    // graphic.  Otherwise, assume that the gesGraphic is	    // the one that the action refers to.	    // This code was moved from handleGesture to here, the	    // main difference being that in handleGesture any actual	    // OMGraphic that was gestured over was already known at	    // this point, and there was no sense looking for it if	    // you already had it.  Since we moved the code, and this	    // method is being called from a different thread, we	    // don't have that luxury - we have to look up the	    // OMGraphic again...	    OMGraphic reactionGraphic = null;	    int reactionGraphicIndex = Link.UNKNOWN;            if (LinkUtil.isMask(gu.action, UPDATE_ADD_GRAPHIC_MASK)) {		// If gu.graphic is null, this will throw an exception		Debug.message("link", "LinkListener: adding graphic " + gu.id);		graphics.add(gu.graphic);		reactionGraphic = gu.graphic;	    } else if (gu.id != null) {		reactionGraphicIndex = graphics.getOMGraphicIndexWithId(gu.id);		if (reactionGraphicIndex == Link.UNKNOWN) {		    // Must be an addition/new graphic		    if (LinkUtil.isMask(gu.action, UPDATE_ADD_GRAPHIC_MASK)) {			// If gu.graphic is null, this will throw an exception			if (Debug.debugging("link")) {			    Debug.output("LinkLayer.handleLinkActionList: adding graphic " + gu.id);			}			graphics.add(gu.graphic);			reactionGraphic = gu.graphic;		    } else {			gu.action = 0; // No action...			Debug.error("LinkLayer: Gesture Response on an unknown graphic.");		    }		} else {		    reactionGraphic = graphics.getOMGraphicWithId(gu.id);		} 	    } else {		Debug.error("LinkLayer.handleLinkActionList:  null ID for graphic");		    }	    // Now, perform the appropriate action on the graphic...	    // Delete a graphic...  If you do this, nothing else	    // gets done on the graphic...	    if (LinkUtil.isMask(gu.action, MODIFY_DELETE_GRAPHIC_MASK)) {		Debug.message("link","LinkLayer: deleting graphic");		graphics.removeOMGraphicAt(reactionGraphicIndex);	    } else {		    		// For properties updating, or graphic replacement		if (LinkUtil.isMask(gu.action, UPDATE_GRAPHIC_MASK)) {		    Debug.message("link","LinkLayer: updating graphic");		    graphics.setOMGraphicAt(reactionGraphic, reactionGraphicIndex);		}		    		// For graphic selection and deselection		if (LinkUtil.isMask(gu.action, MODIFY_SELECT_GRAPHIC_MASK)) {		    Debug.message("link","LinkLayer: selecting graphic");		    reactionGraphic.select();		} else if (LinkUtil.isMask(gu.action, MODIFY_DESELECT_GRAPHIC_MASK)) {		    Debug.message("link","LinkLayer: deselecting graphic");		    reactionGraphic.deselect();		}		// Now, raising or lowering the graphic...		if (LinkUtil.isMask(gu.action, MODIFY_RAISE_GRAPHIC_MASK)) {		    Debug.message("link","LinkLayer: raising graphic");		    graphics.moveIndexedToTop(reactionGraphicIndex);		} else if (LinkUtil.isMask(gu.action, MODIFY_LOWER_GRAPHIC_MASK)) {		    Debug.message("link","LinkLayer: lowering graphic");		    graphics.moveIndexedToBottom(reactionGraphicIndex);		}	    }  // else if not deleting it...	} // while        if (lal.getNeedMapUpdate()) {            updateMap(lal.getMapProperties());	    lal.setNeedMapUpdate(false);	    needRepaint = false;	}	if (needRepaint) {	    repaint();	}    }