`
lynnlysh
  • 浏览: 179655 次
  • 性别: Icon_minigender_2
  • 来自: 天津
社区版块
存档分类
最新评论

mxgraph 的初步介绍与开发入门

阅读更多
mxgraph是一个用于画流程图的前台框架,目前没有中文的API,但要学习它也不是很难,我们可以参考它的包中自带的实例。那些实例基本上包括了你所需要的各种应用。
并且,通过实例你就可以发现它到底有哪些方面的应用。其中最经典的就是我目前正在做的用ext和mxgraph结合开发画流程图并并可生成xml文件发布的系统。
mxgraph的开发入门:
步骤一:
将mxgraph\javascript目录下的src文件夹、mxgraph\javascript\examples下的editors和images文件夹拷入工程的WebContent目录下,再把mxgraph\javascript\examples下的所有例子放入工程的WebContent目录下。
下载附件中的包,解压缩后的三个文件同样放入WebContent目录下。(此包实现了mxgraph的本地化)
步骤二:
更改例子的头文件:
找到如下代码
	
<!-- Sets the basepath for the library if not in same directory -->
	<script type="text/javascript">
		mxBasePath = '../src';
	</script>
 
	<!-- Loads and initiaizes the library -->
	<script type="text/javascript" src="http://www.jgraph.com/demo/mxgraph/src/js/mxclient.php?version=1.5.1.0&key=hnaDeK2rfn%2BjnC8"></script>

将其改为本地的目录位置:
<script type="text/javascript">
		mxBasePath = 'src';
	</script>
	<!-- Loads and initiaizes the library -->
	<script type="text/javascript" src="mxclient-chrome.js"></script>
	<script type="text/javascript" src="mxclient-ff.js"></script>
	<script type="text/javascript" src="mxclient-ie.js"></script>

然后即可查看例子并试着修改。
步骤三:
extJs与mxgraph的结合
在头文件中加载ext的包如下:
<link rel="stylesheet" type="text/css" href="ext-3.3.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.3.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.3.0/ext-all.js"></script>

理解以下一段内容:
extJs跟mxgraph一样都是一种前台框架,可以混着用,关键是研究他们怎么结合。
这里我们要看的例子是extjs.html
function main(container)
graph = new mxGraph(container);
el:'hello-win',
<body onload="main(document.getElementById('graphContainer'))">
<div id="hello-win" class="x-hidden">
<div id="graphContainer" class="x-tab"...>			

这几句说明mxgraph是将html的页面元素<div>当做一个容器(container),并在此容器中画图的,而extJs也是将此容器包装成一个window的,因此页面的<div>容器就是它们的结合点。
这样就可以结合二者来编写流程图插件了
并且mxgraph的button对象可直接用在extJs的items[]中。
***************情人节不快乐的分割线****************************
失恋很痛苦,求安慰,求交流。。。
分享到:
评论
6 楼 lynnlysh 2014-11-18  
小伟小伟 写道
你好  刚学这个   如何将  maxgraph 与extjs结合起来   目前无法将maxgraph面板放到extjs中

rendTo:'hello-win', //el
                layout:'fit',
                width:500,
                height:300,
                closeAction:'hide',
                plain: true,

                items: new Ext.TabPanel(
                {
                    rendTo: 'hello-tabs',
                  title:'xxx',
                    autoTabs:true,
                    activeTab:0,
                    deferredRender:false,
                    border:true
                }),


extjs窗口就是不显示 内容

mxGraph的安装包中有一个例子,是介绍  maxgraph 与extjs结合的,位置是
mxgraph-1_11_0_0\mxgraph_1_1\javascript\examples\extjs.html 你可以看一下
具体代码给你贴出来啦
<!--
  $Id: extjs.html,v 1.11 2012-10-30 16:24:02 gaudenz Exp $
  Copyright (c) 2006-2010, JGraph Ltd

  ExtJs example for mxGraph. This example demonstrates using
  mxGraph inside an ExtJS window.
-->
<html>
<head>
	<title>Hello, World! example for mxGraph</title>

	<link rel="stylesheet" type="text/css" href="http://extjs.com/deploy/dev/resources/css/ext-all.css" />
	<script type="text/javascript" src="http://extjs.com/deploy/dev/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="http://extjs.com/deploy/dev/ext-all.js"></script>

	<!-- Sets the basepath for the library if not in same directory -->
	<script type="text/javascript">
		mxBasePath = '../src';
	</script>

	<!-- Loads and initializes the library -->
	<script type="text/javascript" src="../src/js/mxClient.js"></script>

	<!-- Example code -->
	<script type="text/javascript">
		// Program starts here. Creates a sample graph in the
		// DOM node with the specified ID. This function is invoked
		// from the onLoad event handler of the document (see below).
		var graph;

		function main(container)
		{
			// Checks if the browser is supported
			if (!mxClient.isBrowserSupported())
			{
				// Displays an error message if the browser is not supported.
				mxUtils.error('Browser is not supported!', 200, false);
			}
			else
			{
				// Creates the graph inside the given container
				graph = new mxGraph(container);

				// Enables rubberband selection
				new mxRubberband(graph);
				graph.setPanning(true);
				graph.setTooltips(true);

				// Gets the default parent for inserting new cells. This
				// is normally the first child of the root (ie. layer 0).
				var parent = graph.getDefaultParent();

				// Adds cells to the model in a single step
				graph.getModel().beginUpdate();
				try
				{
					var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30);
					var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
					var e1 = graph.insertEdge(parent, null, '', v1, v2);
				}
				finally
				{
					// Updates the display
					graph.getModel().endUpdate();
				}
			}
		};

		Ext.onReady(function()
		{
		    var win;
		    var button = Ext.get('show-btn');

		    button.on('click', function()
		    {
		        // create the window on the first click and reuse on subsequent clicks
		        if(!win)
		        {
		            win = new Ext.Window(
		            {
		                el:'hello-win',
		                layout:'fit',
		                width:500,
		                height:300,
		                closeAction:'hide',
		                plain: true,

		                items: new Ext.TabPanel(
		                {
		                    el: 'hello-tabs',
		                    autoTabs:true,
		                    activeTab:0,
		                    deferredRender:false,
		                    border:false
		                }),

		                buttons: [
		                {
		                    text:'Submit',
		                    disabled:true
		                },
		                {
		                    text: 'Close',
		                    handler: function()
		                    {
		                        win.hide();
		                    }
		                }]
		            });

		            // Fits the SVG container into the window
		            win.on('resize', function()
		            {
		                graph.sizeDidChange();
		            });
		        }

		        win.show(this);
		    });
		});
	</script>
</head>

<!-- Page passes the container for the graph to the program -->
<body onload="main(document.getElementById('graphContainer'))">

<input type="button" id="show-btn" value="Hello World" /><br /><br />

	<!-- Creates a container for the graph with a grid wallpaper -->
	<div id="hello-win" class="x-hidden">
	    <div class="x-window-header">Hello Dialog</div>
	    <div id="hello-tabs">
	        <!-- Auto create tab 1 -->
			<div id="graphContainer" class="x-tab" title="Hello World 1"
				style="background:url('editors/images/grid.gif');">
			</div>
		</div>
	</div>
</body>
</html>

5 楼 小伟小伟 2014-11-15  
你好  刚学这个   如何将  maxgraph 与extjs结合起来   目前无法将maxgraph面板放到extjs中

rendTo:'hello-win', //el
                layout:'fit',
                width:500,
                height:300,
                closeAction:'hide',
                plain: true,

                items: new Ext.TabPanel(
                {
                    rendTo: 'hello-tabs',
                  title:'xxx',
                    autoTabs:true,
                    activeTab:0,
                    deferredRender:false,
                    border:true
                }),


extjs窗口就是不显示 内容
4 楼 QiuQiu0034 2012-02-27  
lynnlysh 写道
解压后将三个文件放在WebRoot或webContent目录下
然后在jsp页面头部写
<script type="text/javascript">
		mxBasePath = 'src';
	</script>
	<!-- Loads and initiaizes the library -->
	<script type="text/javascript" src="mxclient-chrome.js"></script>
	<script type="text/javascript" src="mxclient-ff.js"></script>
	<script type="text/javascript" src="mxclient-ie.js"></script>

即可

一个文件1M,你这样引入对服务器负担也挺重的,即使是本机运行,下载这些js代码的时间也是很可观的
应该先判断一下浏览器类型,然后动态引入
3 楼 bingoohuang 2011-06-30  
测试一下fiddler拦截testing
2 楼 lynnlysh 2011-04-06  
解压后将三个文件放在WebRoot或webContent目录下
然后在jsp页面头部写
<script type="text/javascript">
		mxBasePath = 'src';
	</script>
	<!-- Loads and initiaizes the library -->
	<script type="text/javascript" src="mxclient-chrome.js"></script>
	<script type="text/javascript" src="mxclient-ff.js"></script>
	<script type="text/javascript" src="mxclient-ie.js"></script>

即可
1 楼 清溪客 2011-03-31  
额,不会用
我刚刚学jbpm,对mxgraph 也不了解,不知道在eclipse 下运行你的mxclient.rar中的文件,要什么东西啊

相关推荐

    mxGraph开发入门指南

    它不仅提供了前端的JavaScript实现,还包含了与后端多种语言(如Java、C#)集成的示例,使得开发者能够构建出交互式的图形界面。 在开始mxGraph开发之前,你需要下载mxGraph的包,可以从www.longboo.com获取,并...

    mxGraph开发入门指南.pdf

    通过理解上述概念和示例代码,开发者可以入门mxGraph,并将其应用于自己的Web项目中,创建动态和交互式的图形界面。尽管文档可能存在OCR扫描识别不准确的问题,但通过上下文的理解,我们能够修正并理解关键的开发...

    mxGraph图形嵌入开发

    mxGraph是一个JS绘图组件适用于需要在网页中设计/编辑Workflow/BPM流程图、图表、网络图和普通图形的Web应用程序。mxgraph下载包中包括用javescript写的前端程序,也包括多个和后端程序(java/C#等等)集成的例子。以下...

    mxgraph.MXGRAPH..MXGRAPH..

    很抱歉,根据您提供的信息,"MXGRAPH"似乎与音乐文件"陈奕迅 - 不要说话.mp3"、"陈奕迅 - 不如这样.mp3"、"陈奕迅 - 不如不见.mp3"并不相关,这看起来更像一个音乐文件的列表而不是IT行业的专业知识点。MXGRAPH通常...

    结合extjs + mxgraph 网络拓扑图的开发

    extJs 跟mxgraph一样都是一种前台框架,可以混着用,这个例子将结合extjs + mxgraph 做网络拓扑图。mxgraph是将html的页面元素当做一个容器(container),并在此容器中画图的,而extJs也是将此容器包装成一个window...

    mxgraph开发包

    **mxGraph 开发包详解** **一、mxGraph 概述** `mxGraph` 是一个强大的、可扩展的JavaScript图形库,主要用于创建交互式的图表和流程图。它由JGraph公司开发,支持Java和JavaScript环境,同时兼容HTML5。mxGraph的...

    mxGraph个人技术实现介绍

    mxGraph个人技术实现介绍、源码及其效果图

    mxGraph中文文档.md

    mxgraph.js中文文档是一个官方的api,翻译来源于sunflower(github: https://github.com/SunInfoFE),提供给更多的开发者参考和共享源码资源!

    mxgraph.zip

    此外,JavaScript的丰富库和框架,如jQuery和React,可以与mxgraph无缝集成,进一步扩展其功能。 **二次开发与自定义** mxgraph设计时考虑了可扩展性和可定制性,允许开发者根据项目需求进行二次开发。你可以...

    mxGraph插件

     view视图和model模型包实现了由mxGraph表示的图形组件。它是一个mxGraphModel,包含mxcell,以及mxGraphView中缓存单元格的状态。根据mxStylesheet.样式表中定义的外观,使用mxcell渲染器来绘制单元格。撤销历史在...

    mxGraph绘图软件js库(版本1.9.1.3,破解版)

    十分强大的js绘图工具,适用于设计/编辑 Workflow/BPM 流程图、图表、网络图和普通图形的 Web 应用程序。这是破解过的源js库。

    在线画图wwwdrawio网站的源码基于mxGraph开发

    3. **数据绑定**:mxGraph将图形与数据模型紧密结合,使得图形的状态可以映射到数据模型,便于数据驱动的图形编辑。 4. **可扩展性**:通过自定义渲染器和事件处理器,开发者可以轻松扩展其功能,适应不同的业务需求...

    mxgraph API和demo

    **mxgraph API与Demo详解** mxGraph是一款强大的JavaScript图形库,用于绘制和编辑流程图、组织结构图等复杂图表。它提供了丰富的API,使得开发者能够轻松地在Web应用中实现图形化界面。本文将深入探讨mxGraph API...

    mxgraph Demo汉化(简单实例)

    1. **图形编辑器**:这是用户与mxgraph交互的主要界面,提供了画布、工具栏和菜单。 2. **图形对象和样式**:预定义的图形对象,如节点、边和连接点,以及定义它们外观和行为的样式。 3. **事件处理**:监听用户的...

    mxGraph绘图插件

    mxGraph是一款强大的JavaScript图形库,主要用于创建交互式图表和图形应用程序。它提供了丰富的API和功能,使得开发者能够轻松地在Web浏览器中构建复杂的图形编辑器和流程图工具。这款库以其灵活性、性能和易用性...

    mxGraph:在HTML页面中制作流程图的JS插件

    下面将详细介绍mxGraph的核心特性、使用方法以及与HTML页面的集成。 1. **核心特性** - **图形表示**:mxGraph提供了一套完整的图形表示系统,包括各种形状(如框、连接线、箭头等)和样式选项,使得用户可以轻松...

    mxgraph editor

    3. **导出与导入**:可以将图表导出为常见的图像格式(如PNG、SVG),或者导出为JSON等数据格式,方便存储和分享。 4. **API扩展**:提供丰富的API和插件机制,允许开发者根据需求扩展功能,如集成其他工具或服务。...

Global site tag (gtag.js) - Google Analytics