Just some sharing about java open source and life
  • Ext读取xml文件生成动态表格和表单(续)

    日期:2012-01-31 4:04 | 作者:JavaChen | 分类目录:Extjs
    51 views

    很多人向我要《Ext读取xml文件生成动态表格和表单》一文的源代码,故花了些时间将源代码整理出来,并重新编写此文,分享当时的技术思路。

    《Ext读取xml文件生成动态表格和表单》一文需要的文件有:
    1.html文件,此处以SASC.search.MtrUse.html为例
    2.Extjs相关文件,见SASC.search.MtrUse.html文件中的引用
    3.工具类,DomUtils.js
    4.核心js类:SASC.extjs.search.MtrUse.js
    5.java代码

    详细html和js代码见相关文件,这里先描述思路。

    首先
    通过一个事件打开一个弹出窗口,该窗口的url指向SASC.search.MtrUse.html文件,并附带参数xmlFile,xmlFile的值为xml文件名称,其存于服务器的某一路径下面。如:“../SASC.search.MtrUse.html?xmlFile=PC_MTRREPLACE_IMP.xml” .PC_MTRREPLACE_IMP.xml文件的放置路径见DomUtils.js文件中的说明。

    在这里,前台会读取该xml生成ext界面,后天会从xml文件读取sql语句等信息,详细信息见java代码。
    进入SASC.search.MtrUse.html页面,执行ext的初始化方法时,会先通过当前页面的url中获取xmlFile参数的值(调用getForwardXmlUrl(getQsValue(‘xmlFile’))),得到xml文件的服务器路径,然后通过javascript的解析该xml文件,渲染出ext界面,这部分代码见SASC.extjs.search.MtrUse.js文件内的initStoreData(xmlObj) 方法。
    需要说明的是,xml文件是按照一定规律编写的,详细的参考xml文件内容,以及解析xml文件的相关方法。你可以重新定义该xml的结构,然后修改解析xml文件的方法。

    然后

    初始化完ext界面之后,会获取表格数据,这部分使用了struts,这不是本文重点,故不做介绍。

    最后
    相关文件打包见:
    http://vdisk.weibo.com/s/2enQS

    说明
    如果还有什么不懂,欢迎email:javachen.june#gmail.com

    作者:JavaChen | 分类目录:Extjs | 标签:
  • XUL 用户界面语言介绍

    日期:2011-11-25 11:11 | 作者:JavaChen | 分类目录:Web
    112 views

    XUL[1]是英文“XML User Interface Language”的首字母缩写。它是为了支持Mozilla系列的应用程序(如Mozilla Firefox和Mozilla Thunderbird)而开发的用户界面标示语言。顾名思义,它是一种应用XML来描述用户界面的标示语言。
    XUL是开放标准,重用了许多现有的标准和技术[2],包括CSS、JavaScript、DTD和RDF等。所以对于有网络编程和设计经验的人士来说,学习XUL比学习其他用户界面标示语言相对简单。
    使用XUL的主要好处在于它提供了一套简易和跨平台的widget定义。这节省了编程人员在开发软件时所付出的努力。

    XUL元素
    XUL定义了一套丰富的元素。它们大致上可分为以下几种:
    基层元素:例如视窗、page、对话框、向导
    Widget:例如标签、按钮、文字方块、条列式菜单、组合方块、选择钮、复选框、树、菜单、工具栏、分组框、标签页、色彩选择器、spacer、splitter
    排版:例如方框、网格、堆栈、叠
    事件和脚本:例如脚本、命令、key、broadcaster、observer
    数据源:例如template、rule
    其他:例如overlay(类似SSI,但在客户端运作,而且更为强大)、iframe、浏览器、编辑器
    一个XUL文件中也可以包含其他XML命名空间的元素,例如XHTML、SVG和MathML。
    现时的XUL还未在提供一些普遍的widget,例如spinbox、slider和canvas。XUL 2.0[3]计划中将会包括这些缺乏的控件。

    XUL是如何处理的[4]
    Mozilla浏览器内部使用跟HTML的处理非常相似的方法来处理XUL:当你在浏览器的地址栏里面输入HTML页面的URL以后,浏览器就定位这个网址并下载页面内容,然后Mozilla将页面内容转换成树的数据结构,最后再将树转换成对象集合,集合中的对象最终被展现在屏幕上就成了我们所见的网页。CSS, 图片以及其他技术被用来控制页面的展现。XUL的处理过程与此非常类似。

    XUL应用
    虽然XUL的设计原意是为了创作Mozilla程序及其扩展,但事实上人们也能利用它来编写基于HTTP的网络应用程序和基于swt/swing/gwt的客户端程序。一些开源的架构使用了XUL,例如Pentaho XUL Framework[5]。Pentaho XUL使用XUl跨多种技术(Swing, SWT, GWT)渲染用户界面,来实现业务逻辑的可重用性。shandor-xul[6]项目也是基于XUl开发的,项目地址见参考资料[6]。
    Firefox里内置的一些XUL 地址见:http://www.cnblogs.com/jxsoft/archive/2011/04/07/2008202.html

    运行XUL应用程序
    可以选择 3 种方式来运行 XUL 应用程序:
    1.使用基于 Mozilla 的浏览器进行简单测试
    2.使用XULRunner
    3.使用Firefox 3.0作为XUL运行时,它的功能和 XULRunner很相似

    总结
    XUL用户界面语言是一种可用于开发Mozilla独立应用程序和浏览器扩展的通用语言,还可以用来实现跨多种UI技术的用户接口,提高业务逻辑代码的重用性,第二点视乎是更值得推荐使用的。关于XUl的教程见参考资料。

    参考资料
    1.XUL Wiki :http://zh.wikipedia.org/wiki/XUL
    2.XML 用户界面语言(XUL)开发简介:http://www.ibm.com/developerworks/cn/education/xml/x-xulintro/section2.html
    3.XUL 2.0: https://wiki.mozilla.org/XUL:Home_Page
    4.XUL结构: https://developer.mozilla.org/cn/
    5.Pentaho XUL ramework: http://wiki.pentaho.com/display/ServerDoc2x/The+Pentaho+XUL+Framework+Developer’s+Guide
    6.shandor-xul:http://code.google.com/p/shandor-xul/
    7.Mozilla XUL教程: https://developer.mozilla.org/index.php

    作者:JavaChen | 分类目录:Web | 标签:
  • Export DhtmlxGrid to PDF in Java

    日期:2011-08-11 9:09 | 作者:JavaChen | 分类目录:JavaScript
    304 views

    将DhtmlxGrid数据导出到pdf这是很常见的需求,dhtmlx官网提供了php和java版本的例子,你可以去官网查看这篇文章《Grid-to-Excel, Grid-to-PDF Available for Java》,你可以从以下地址下载导出程序源码:
    Export to Excel
    Export to PDF
    当然,还有一个示例工程: .zip archive with an example

    XML2PDF和XML2Excel工程内代码很相似,XML2PDF内部使用了PDFjet.jar导出PDF,而XML2Excel使用JXL导出Excel。
    需要说明的是,还需要引入dhtmlxgrid_export.js文件,该文件是导出grid的js源码,主要用于将表格数据,包括表头、样式等,序列化为xml字符串,然后模拟一个Form表单提交数据。

    将上面三个工程导入到一个工程然后打开sample.html页面,效果如下:

    Read More »

    作者:JavaChen | 分类目录:JavaScript | 标签:
  • JavaScript模态窗口和非模态窗口

    日期:2011-08-07 2:02 | 作者:JavaChen | 分类目录:JavaScript
    793 views

    JavaScript中弹出的窗口有模态窗口和非模态窗口。模态窗口就是打开一个子窗口,如果这个子窗口不关闭,就不能操作它的父窗口,原来程序暂停执行,直到这个模态窗口关闭后才回到原来程序继续。非模态的就是直接显示出来,然后原来的程序继续执行下面的语句,而且其他窗口也呈可用状态。 模态窗口独占了用户的输入,当一个模态窗口打开时,用户只能与该窗口进行交互,而其他用户界面对象收不到输入信息。 通常浏览器中windwo.open或超链接弹出的新窗口就是非模式窗口,而模式窗口是类似alert那种必须关闭才能响应其他事件的窗口。

    常见的方法

    window.showModalDialog(“http://www.javachen.com”,”newwin”,”dialogHeight: 200px; dialogWidth: 150px; dialogTop: 458px; dialogLeft: 166px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;”); window.showModelessDialog() //用来创建一个显示HTML内容的非模态对话框。
    window.returnValue=”javachen”; //设置模态窗口返回值
    var str=window.showModalDialog(“http://www.javachen.com”); //获得模态窗口返回值
    window.close(); //关闭窗口
    window.focus(); //窗口聚焦

    使用方法:

    参数说明: sURL–必选参数,类型:字符串。用来指定对话框要显示的文档的URL。 vArguments–可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
    Read More »

    作者:JavaChen | 分类目录:JavaScript | 标签:
  • 自定义dhtmlxGrid表头菜单

    日期:2011-07-31 4:04 | 作者:JavaChen | 分类目录:JavaScript
    344 views

    dhtmlxGrid可以定义表头菜单以及表格右键菜单,表格右键菜单可以自定义,但是表头菜单只能使用其提供的菜单。dhtmlxGrid默认的表头菜单可以决定表格中每一列是否在表格中显示,并没有提供更多的扩展,如果我想自定义表头菜单,该怎么做呢?本文就是基于自定义表格菜单,说说我的实现方式。
    以下是dhtmlxGrid的表头菜单效果:

    其功能过于单一,以下是表格右键菜单效果:

    如果能够像表格菜单一样自定义表头菜单,那会是一件非常有意义的事情,因为dhtmlxGrid菜单都是一些针对行和单元格的操作,没有提过针对列的操作,比如我可能需要在某一列上实现该列的显示与隐藏、排序、改变列属性以及在该列右边添加一新的列,等等。
    如何实现表头菜单的自定义呢?可不可将表格右键菜单移到表头上去呢? Read More »

    作者:JavaChen | 分类目录:JavaScript | 标签:
  • Drag an item to dhtmlxGrid and add a column

    日期:2011-07-24 9:09 | 作者:JavaChen | 分类目录:JavaScript
    120 views

    dhtmlxGrid支持tree和grid、grid之间、grid内部进行拖拽,如在grid内部进行拖拽,可以增加一行;在grid之间拖拽,第一个grid的记录删除,第二个grid增加一行记录。如果我想在拖拽之后不是添加一行而是一列,该怎么做呢?
    现在有个需求,就是左边有个tree,右边有个grid,将左边tree的一个节点拖到右边grid的表头并动态增加一列。这个怎么做呢?
    如果你想快点看到最后的实现方法,你可以直接跳到本文的最后参看源码。
    首先看看dhtmlxTree 关于Drag-n-Drop的例子,其中有这样一个例子Custom Drag Out

    Read More »

    作者:JavaChen | 分类目录:JavaScript | 标签:

无觅相关文章插件,快速提升流量