Designer では、ノード内における
push_state
インタラクターの状況を Designer のプロパティーに渡すことができます。
これを行う方法については、『Designer の使用』の「定義済みインタラクターのパラメーターへのリンク」を参照してください。
アプリケーションの振る舞いをカスタマイズするには、Java™
リスナーを使用して、ノードがクリックされたときにアプリケーション内でカスタム振る舞いが引き起こされるようにします。
次のコード・サンプルはその方法を示しています。
ダイアグラム・プロパティー値の変化に従うリスナー
/** * Listener for user interaction. Assume that in the style sheet * there is a * mapping: * push_state : "@state"; */ public class ModelListener implements SDMPropertyChangeListener { /* * @see ilog.views.sdm.event.SDMPropertyChangeListener#propertyChanged( * ilog.views.sdm.event.SDMPropertyChangeEvent) */ public void propertyChanged(SDMPropertyChangeEvent event) { String propertyName = event.getPropertyName(); Object target = event.getObject(); String value = event.getNewValue().toString(); if ("state".equals(propertyName)) { // push interactor has modified the model // invoke callback performSomeAction(target, value); } } } ... //Usage: IlvDiagrammer diag; diag = new IlvDiagrammer(); diag.getEngine().getModel().addSDMPropertyChangeListener(new ModelListener());