/* * Licensed Materials - Property of Rogue Wave Software, Inc. * © Copyright Rogue Wave Software, Inc. 2014, 2015 * © Copyright IBM Corp. 2009, 2014 * © Copyright ILOG 1996, 2009 * All Rights Reserved. * * Note to U.S. Government Users Restricted Rights: * The Software and Documentation were developed at private expense and * are "Commercial Items" as that term is defined at 48 CFR 2.101, * consisting of "Commercial Computer Software" and * "Commercial Computer Software Documentation", as such terms are * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4, * as applicable. */ import ilog.views.IlvGrapher; import ilog.views.IlvGraphic; import ilog.views.IlvObjectInteractor; import ilog.views.IlvObjectInteractorContext; import ilog.views.sdm.IlvSDMEngine; import java.awt.event.MouseEvent; /** * This is a simple interactor, bound with the nodes of the model. * When the mouse button is released on a node, this interactor processes the * event and changes some properties of the node. */ public class Interactor extends IlvObjectInteractor { /** * Callback when user clicks a graphic object * */ public boolean processEvent(IlvGraphic obj,java.awt.AWTEvent event,IlvObjectInteractorContext context) { if( event.getID() == MouseEvent.MOUSE_RELEASED && obj.getGraphicBag() instanceof IlvGrapher ) { // find sdm engine IlvSDMEngine engine = IlvSDMEngine.getSDMEngine((IlvGrapher)obj.getGraphicBag()); // find object model if (engine != null) { Object modelObject = engine.getObject(obj); // cast and do whatever is needed here if(modelObject instanceof Node){ Node node = (Node)modelObject; // get current node motion action String action = (String)node.getProperty("action"); // node is turning then park it if(action.equals("turning")){ node.setProperty("action","parking"); } // node is parked, then unparked else if(action.equals("parked")){ node.setProperty("action","unparking"); } } // event has been processed return true; } } // event has not been processed return false; } }