论坛首页 Web前端技术论坛

经过不懈努力,基于SWT的类XUL实现终于开发出来了!

浏览 20671 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-16  
weihello 写道
重复发明轮子啦。  Luxor项目早就有该方面的实现了。


好像没有重复发明轮子哦, 因为他们都没开发基于SWT的XUL(Luxor的那个看起来好久没更新了),而我开发的这个是基于SWT并针对SWT进行优化的XULRE....

还有就是,看了下Luxor源代码,做得感觉跟Thinlet一样,并没有提供常用的扩展,例如标签扩展,脚本支持等... 这些在SWT-XUI项目中都支持(已实现),它目前的架构为 microkernel + parsers + listeners,而并不只是解析XUL脚本的一个工具,开发者可以通过实现Parser接口来自定义标签,通过实现Listener或者使用脚本(目前支持JavaScript、Python、Groovy、BeanShell)来支持事件获取处理。

关于脚本的支持,它们都是实现标准的Parser,所以开发者还可以通过实现Parser来增加自己所使用的脚本语言。

昨晚在SF上做了个简单的项目站,内容还没添上,慢慢来....

地址是: http://swt.xui.cn  (域名很有针对性吧,哈哈)

btw,SWT-XUI 1.0 M1 Build 20050715版本全面支持了DND,在examples目录下有DND的演示,名字是DND.xml,对应的执行文件为DND.bat,挺好玩儿的。 呵呵。
0 请登录后投票
   发表时间:2005-07-17  
也许做一个JavaWebStart版本的Example会比较方便大家试用,只include几个基本的包,如swtxui-examples.jar,swtxui.jar,bsh.jar等,不过swt.win32.jar比较大,下载可能会花的时间比较长。
0 请登录后投票
   发表时间:2005-07-17  
addoil
0 请登录后投票
   发表时间:2005-07-18  
addoil, 厉害, 终于反应过来了..... 哈哈.

这周开始开发数据绑定技术, 目前参考的地方有:

1. org.eclipse.jface.viewers
2. org.eclipse.ve.sweet

不知大家还有什么其他想法,都来提提, 一起研究一下, 发展发展这个项目.
0 请登录后投票
   发表时间:2005-07-19  
看了notepad.xml

眼拙没有找到
<parsers>
  <parser name="clabel" class="cn.xui.swt.examples.notepad.CLabelParser"/>
</parsers>

中说到的这个类。
也没有找到reference。
看久了laszlo代码,这个swt-xui代码看起来不是那么自然,感觉有点多?

我的想法是不要把SWT所有的特性都拿出来,写swt的时候是layout,layoutdata,这里还要这么写就有些受不了了,比如说这段:
<composite id="editorComposite">
  <layout type="grid" numColumns="1" marginWidth="1" marginHeight="1" horizontalSpacing="0" verticalSpacing="0"/>
  <layoutData type="grid" horizontalAlignment="FILL" verticalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalIndent="0" verticalIndent="0"/>
  <text id="editor" style="MULTI,H_SCROLL,V_SCROLL,BORDER" font="defaultFont">
    <layoutData type="grid" horizontalAlignment="FILL" verticalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
    <beanshell ref-id="doEdit" event="mouseUp"/>
    <beanshell ref-id="doEdit" event="mouseDown"/>
    <beanshell ref-id="doEdit" event="keyUp"/>
    <beanshell ref-id="doEdit" event="keyDown"/>
    <beanshell ref-id="doEdit" event="modify"/>
    <beanshell event="modify">
        <![CDATA[
	context.global.put("Modify",new Boolean(true););;]]>
    </beanshell>
</text>
</composite>

说白了是一个就是一个<textbox/>
有太深入的SWT包装了,过于底层导致过于繁琐。完全可以摒弃一些SWT的风格。直接跨越他。
0 请登录后投票
   发表时间:2005-07-19  
b051 写道
看了notepad.xml

眼拙没有找到
<parsers>
  <parser name="clabel" class="cn.xui.swt.examples.notepad.CLabelParser"/>
</parsers>

中说到的这个类。
也没有找到reference。
看久了laszlo代码,这个swt-xui代码看起来不是那么自然,感觉有点多?

我的想法是不要把SWT所有的特性都拿出来,写swt的时候是layout,layoutdata,这里还要这么写就有些受不了了,比如说这段:
<composite id="editorComposite">
  <layout type="grid" numColumns="1" marginWidth="1" marginHeight="1" horizontalSpacing="0" verticalSpacing="0"/>
  <layoutData type="grid" horizontalAlignment="FILL" verticalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" horizontalIndent="0" verticalIndent="0"/>
  <text id="editor" style="MULTI,H_SCROLL,V_SCROLL,BORDER" font="defaultFont">
    <layoutData type="grid" horizontalAlignment="FILL" verticalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
    <beanshell ref-id="doEdit" event="mouseUp"/>
    <beanshell ref-id="doEdit" event="mouseDown"/>
    <beanshell ref-id="doEdit" event="keyUp"/>
    <beanshell ref-id="doEdit" event="keyDown"/>
    <beanshell ref-id="doEdit" event="modify"/>
    <beanshell event="modify">
        <![CDATA[
	context.global.put("Modify",new Boolean(true););;]]>
    </beanshell>
</text>
</composite>

说白了是一个就是一个<textbox/>
有太深入的SWT包装了,过于底层导致过于繁琐。完全可以摒弃一些SWT的风格。直接跨越他。
cn.xui.swt.examples.notepad.CLabelParser 在swtxui-examples.jar中.

关于layoutData这个, 我在考虑将父类的加入到子类的layoutData中, 下个Build版本将会加入该功能...
0 请登录后投票
   发表时间:2005-07-22  
模仿了windows notepad使用SWT-XUI做的. 下载了最新版的SWT-XUI后, 把该文件放在examples目录下覆盖原文件, 就可以看到效果了. 如果还有bug, 在这里提出来哈.
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics