js画图开发库--mxgraph--[overlays-覆盖.html]

 js画图开发库--mxgraph--[overlays-覆盖.html] 

 

 
js画图开发库--mxgraph--[overlays-覆盖.html]
 

<html>
<head>
	<title>Overlays example for mxGraph</title>

	<!-- 如果本文件的包与src不是在同一个目录,就要将basepath设置到src目录下 -->
	<script type="text/javascript">
		mxBasePath = '../src';
	</script>

	<!-- 引入支持库文件 -->
	<script type="text/javascript" src="../src/js/mxClient.js"></script>

	<!-- 示例代码 -->
	<script type="text/javascript">

		// 程序在此方法中启动 
		function main(container)
		{
			// 检查浏览器支持
			if (!mxClient.isBrowserSupported())
			{
				mxUtils.error('Browser is not supported!', 200, false);
			}
			else
			{
				// 在容器中创建图形
				var graph = new mxGraph(container);
				
				// 设置默认的右键点击菜单
				graph.setEnabled(false);
								
				// 鼠标停留高亮元素
				var highlight = new mxCellTracker(graph, '#00FF00');
				
				// 覆写工具
				graph.setTooltips(true);

				// 鼠标点击事件
				graph.addListener(mxEvent.CLICK, function(sender, evt)
				{
					var cell = evt.getProperty('cell');
					
					if (cell != null)
					{
						var overlays = graph.getCellOverlays(cell);
						
						if (overlays == null)
						{
							// 复写按钮图片
							var overlay = new mxCellOverlay(
								new mxImage('editors/images/overlays/check.png', 16, 16),
								'Overlay tooltip');

							// 单击显示提示					
							overlay.addListener(mxEvent.CLICK, function(sender, evt2)
							{
								mxUtils.alert('Overlay clicked');
							});
							
							// 在图形中覆盖
							graph.addCellOverlay(cell, overlay);
						}
						else
						{
							graph.removeCellOverlays(cell);
						}
					}
				});
				
				// 覆盖双击事件,显示提示框
				graph.addListener(mxEvent.DOUBLE_CLICK, function(sender, evt)
				{
					var cell = evt.getProperty('cell');
					mxUtils.alert('Doubleclick: '+((cell != null) ? 'Cell' : 'Graph'));
					evt.consume();
				});
				
				// 获得默认窗体
				var parent = graph.getDefaultParent();
								
				// 开启更新事务
				graph.getModel().beginUpdate();
				try
				{
					var v1 = graph.insertVertex(parent, null, 'Click,', 20, 20, 60, 40);
					var v2 = graph.insertVertex(parent, null, 'Doubleclick', 200, 150, 100, 40);
					var e1 = graph.insertEdge(parent, null, '', v1, v2);
				}
				finally
				{
					// 结束更新事务
					graph.getModel().endUpdate();
				}
			}
		};
	</script>
</head>


<!-- 页面载入时启动程序 -->
<body onload="main(document.getElementById('graphContainer'))">

	<!-- 创建带网格壁纸和曲线的一个容器  -->
	<div id="graphContainer"
		style="overflow:hidden;position:relative;width:321px;height:241px;background:url('editors/images/grid.gif')">
	</div>
</body>
</html>

 

 

 

你可能感兴趣的:(js画图开发库,mxgraph,overlays,覆盖.html])