为了模仿mxGraph中javascript里面的例子中的userobject.html展示出来的效果,可费了不少功夫,花费了大半天的时间,先总结如下:
其一:userobject.html中的并没有读取任何mxe或者xml文件,它里面的都是自己造的XML文件,我要做的是先用CS端的Graph画好一张图生成mxe然后进行处理在读出来
其二:userobject.html显示出来的效果图有单击事件,每单击一个cell(vertex或者edge)都会在右边显示出来一个表单用来展现其全部属性内容。它的缺陷就是,看图的人可以随便拖动并修改cell中的内容,所以我要做的是,能单击事件但不要进行拖动
其三:mxGraph的拖动效果与graph.setEnabled(false)这个方法是挂钩的,设置true就表示可拖拽修改,反之就不可以,需要说明的是,我们单击的时候肯定是要获取每个cell的内容的,然而,如果你在设置为false的情况下使用
graph.getSelectionModel().addListener(mxEvent.CHANGE, function(sender, evt)
{
selectionChanged(graph);//显示属性面板
});
这个监听器就获取不到CELL的值,因为我的selectionChanged方法中使用到了cell,之前我在selectionChanged方法里面是通过var cell = graph.getSelectionCell()来获取cell的,这种情况下如果我利用了上面的那个监听器并且设置
graph.setEnabled(false)那么肯定不会触发事件并显示表单,如果在这种情况下设置graph.setEnabled(true)那么一定可以触发得到表单,之后我有试了其他的监听器