`

GWT UIBinder 通过配置xml 进行设计.

    博客分类:
  • java
阅读更多

有些地方也是摸索着前进.

 



 新建立一个uiBinderTest的工程

 


新建立一个UiBinder 这个是在最新的eclipse google 插件上面才有的.如果没有.

请自己更新eclipse 插件.

 


 


 添加一个名字.

!说明这个输入这个名字后会生成两个文件.

1,XXX.ui.xml

2,XXX.java

 


 

一个 xml 文件和一个java类. xml负责页面的布局.里面可以混写 html 和 GWT 组建代码.

有点像flex .

 

 

运行程序的时候有个问题.button 太小了.不过不是什么大问题接下来就要熟悉下这个ui

 

内部都有什么组件什么属性了..

 

文档不全..之间从gwt jar里面找到了一个.

 

com.google.gwt.user.client.ui.xsd 和 一个

UiBinder.xsd 见附件下载. xsd.zip

两个文件就是定义UiBinder 的xml 文件..

 

如:

 

 

<xs:element
        name="HTMLPanel">

        <!-- Allow mixed content -->
        <xs:complexType
            mixed="true">

            <!--  Allow any children (HTML elements) -->
            <xs:choice
                minOccurs="0"
                maxOccurs="unbounded">
                <xs:any
                    processContents="lax" />
            </xs:choice>

            <xs:attribute
                name="tag"
                type="xs:string" />

            <xs:anyAttribute
                processContents="lax" />
        </xs:complexType>
    </xs:element>

 

 
 这个说的是一个HTMLPanel 面板. 里面有一个属性 tag 是字符的. 并且是一个混合型.可以组合.可以内嵌入其他组件.

 

如:

 

<g:HTMLPanel tag='1111'>
		Hello,
		<g:Button styleName="{style.important}" ui:field="button"/>
	</g:HTMLPanel>
 

 

对于g:Button来说:

 

可以修改成PushButton.

 

 

 

<g:HTMLPanel>
		Hello,
		<g:PushButton  ui:field="button" />
	</g:HTMLPanel>
 

 

 

@UiField
	PushButton button;
 

 

同时也吧java 代码里面的修改了. 

 

插件会同时对xml 和java 类进行校验修改保存的时候比较慢.

 

如果运行错误也会报错

 

 

10:53:32.312 [ERROR] [uibindertest] Unable to load module entry point class com.toeoso.uibinder.test.client.UiBinderTest (see associated exception for details)
com.google.gwt.core.client.JavaScriptException: (TypeError): this.replaceChild is not a function
 fileName: http://localhost:8888
 lineNumber: 56
 stack: ([object HTMLButtonElement],[object HTMLSpanElement])@http://localhost:8888:56
connect("http://localhost:8888/UiBinderTest.html?gwt.codesvr=127.0.0.1:9997","&3@Z%W(re9sz[UUx","127.0.0.1:9997","uibindertest","2.0")@:0
((void 0),"uibindertest","http://localhost:8888/uibindertest/")@http://localhost:8888/uibindertest/hosted.html?uibindertest:264
z()@http://localhost:8888/uibindertest/uibindertest.nocache.js:2
(-10)@http://localhost:8888/uibindertest/uibindertest.nocache.js:9
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:195)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.dom.client.Node$.replaceChild$(Node.java)
    at com.google.gwt.user.client.ui.HTMLPanel.addAndReplaceElement(HTMLPanel.java:120)
    at com.toeoso.uibinder.test.client.UiBinderTest01_UiBinderTest01UiBinderImpl.createAndBindUi(UiBinderTest01_UiBinderTest01UiBinderImpl.java:23)
    at com.toeoso.uibinder.test.client.UiBinderTest01_UiBinderTest01UiBinderImpl.createAndBindUi(UiBinderTest01_UiBinderTest01UiBinderImpl.java:1)
    at com.toeoso.uibinder.test.client.UiBinderTest01.<init>(UiBinderTest01.java:25)
    at com.toeoso.uibinder.test.client.UiBinderTest.onModuleLoad(UiBinderTest.java:9)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:369)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:185)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:380)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)
    at java.lang.Thread.run(Unknown Source)
 

 

绑不上.检查 xml 和java 类. 然后刷新浏览器.这个时候不用重新启动服务器.

 

 

点击 刷新按钮就行.

 


 

 

总之代码是非常少了...继续关注..

 

  • 大小: 7.5 KB
  • 大小: 19.9 KB
  • 大小: 14 KB
  • 大小: 9.7 KB
  • 大小: 7 KB
  • xsd.zip (4.9 KB)
  • 下载次数: 78
分享到:
评论

相关推荐

    gwt-windows-1.4.60.zip

    9. **模版系统**:GWT的 UiBinder 提供了XML模板系统,允许开发者分离UI的结构和逻辑,提高代码的可维护性。 10. **响应式设计**:虽然GWT最初是为桌面浏览器设计的,但随着时间的发展,它也增加了对移动设备的支持...

    GWT学习手册,由本人整理打包

    例如,`com.google.gwt.user.client.ui.Widget` 类是所有可视组件的基类,而`com.google.gwt.uibinder.client.UiBinder` 是UI Binder的接口,允许用XML来声明UI布局。 **GWT快速开发.pdf** 可能是一份快速入门指南...

    Gwt 项目Demo

    `UiBinder`是GWT的一种声明式UI设计工具,允许开发者用XML文件定义界面,与Java代码分离。 7. **单元测试与集成测试**: GWT提供了JUnit支持,可以在服务器端或模拟浏览器环境中运行测试。 8. **国际化(i18n)**...

    GWT入门教程

    此外,GWT的UiBinder允许开发者使用XML声明式地定义界面布局。 **1.3 客户端-服务器通信** GWT支持异步RPC(Remote Procedure Call),使得客户端和服务器之间的通信变得简单。通过GWT的RequestBuilder或GWT-RPC,...

    面向 Java 开发人员的 Ajax: Google Web Toolkit 入门(GWT入门)

    4. **声明式UI**: GWT引入了Declarative UI,即XML基的UI描述语言(UiBinder),允许开发者以声明方式定义用户界面,与Java代码分离,提高可读性和维护性。 5. **异步通信(RPC)**: GWT的Remote Procedure Call ...

    一个简单的GWT示例

    3. **声明式UI**: GWT 提供了一种基于XML的声明式用户界面描述语言,叫做UiBinder,使得开发者可以分离视图逻辑和业务逻辑。 4. **跨浏览器兼容**: GWT支持多种主流浏览器,包括Chrome、Firefox、Safari、Internet ...

    GWT 初级入门,中高级应用 开发文档手册 api(全)

    理解模块化概念,设置.gwt.xml配置文件,定义项目的模块属性,包括入口点类、兼容的浏览器版本等。 三、GWT编程基础 1. UI构建:GWT提供了一套Widget库,包括按钮、文本框、表格等各种UI组件,通过布局管理器如...

    在eclipse上用JAVA实现AJAX插件

    2. 可以创建自定义的Java类,例如`MyWidget.java`,实现UI组件,并使用GWT的`DOM`或`UIBinder`来构建界面。 3. 使用`com.google.gwt.http.client.RequestBuilder`类实现异步请求,向服务器发送数据并接收响应。 **...

    GWT使用样例

    3. **UI设计**:GWT提供了丰富的用户界面组件,如Widget库,包括按钮、表格、表单等,可以使用XML布局语言(XML-based User Interface Layout,简称UiBinder)来设计复杂的界面。 4. **异步通信**:GWT支持异步的...

    gwt-fullscreen-demo:GWT 全屏演示

    5. **UI设计**:GWT提供了UiBinder工具,允许开发者使用XML来定义用户界面布局,然后在Java代码中与之绑定,提高了界面设计的可维护性和可读性。在全屏演示项目中,可能会用到UiBinder来创建控制全屏切换的按钮和...

    requestor-demo

    5. **模版系统**:GWT还提供了 UiBinder,一个XML模板系统,可以分离UI设计和逻辑,使界面设计更直观,代码更清晰。 6. **国际化(i18n)**:GWT支持多语言应用,可以轻松地添加和切换不同地区的语言资源。 7. **...

    toaster_launcher

    5. **UiBinder**:UiBinder是GWT提供的一个强大的工具,允许开发者用XML来描述用户界面,并与Java代码结合,提供了更清晰的UI设计和代码分离。通过UiBinder,开发者可以更方便地组织和管理UI元素。 在【压缩包子...

Global site tag (gtag.js) - Google Analytics