mxEditor提供了自定义弹出菜单的功能,按鼠标右键,可以弹出菜单,前面已经提到过如何增加自定义的弹出菜单,现在我们需要为不同的图元增加不同的弹出菜单,这种情况下,需要用到自定义的判断条件,比如,我们现在增加了自定义的图元:
<add as="mytask">
<MyTask label="状态" description="" href="" >
<TimeOut iter="1" ></TimeOut>
<Permission ></Permission>
<Fields></Fields>
<mxCell vertex="1">
<mxGeometry as="geometry" width="72" height="32"/>
</mxCell>
</MyTask>
</add>
我们希望在这种类型的图元上,增加特定的弹出菜单项,需要在myeditor-commons.xml中增加如下的配置:
<add as="mystateproperties" action="mystateproperties" if="isMyTask" icon="Lib/mxGraph/myeditor/images/properties.gif"/>
这里if后面的条件是我们的自定义条件,需要定义如下:
<condition name="isMyTask">
<![CDATA[
function (editor, cell, evt)
{
return (cell !=null) && (cell.value !=null) && (cell.value.tagName=='MyTask');
}
]]>
</condition>
条件中判断所选中的图元,如果tagName是MyTask,返回为true。
运行效果如下:
图片.png
在开始图标上按右键,没有相关的菜单:
图片.png