【问题标题】:GWT UiBinder: How to make a custom AbsolutePanel which uses the "at" element?GWT UiBinder:如何制作使用“at”元素的自定义 AbsolutePanel?
【发布时间】:2012-08-02 16:50:06
【问题描述】:

试图扩展 AbsolutePanel,我的 UiBinder 不允许 <g:at> 元素,这对于直接的 AbsolutePanel 通常是可以的。如何使我的 AbsolutePanel 子类能够使用 <g:at> 元素?更一般地说,我可以为我自己的自定义小部件(如“at”、“west”、“layer”等)制作自定义 UiBinder 关键字吗?

【问题讨论】:

    标签: gwt uibinder


    【解决方案1】:

    您可以使用 @UiChild 在您的小部件中声明特殊功能,该小部件可在 UiBinders 中访问。

    例如,

    class MyPanel extends AbsolutePanel {
    
        @UiChild
        public void addAt(Widget w, String parameter1, String parameter2) {
             ....
    

    然后,在你的 uiBinder 中,你可以说

    <custom:MyPanel>
        <custom:at parameter1="HI" parameter2="Anything you like!">
            <g:AnySingleWidget />
        </custom:at>
    </custom:MyPanel>
    

    见@UiChildhttp://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/uibinder/client/UiChild.html

    【讨论】:

    • 我希望 GWT 文档记录您在此处演示的参数功能。这正是我想要的,但无法通过官方文档发现。
    • 还值得指出的是,您使用原始类型指定的“Widget w”之后的任何参数都将在 UiBinder 设计器中显示为可编辑属性,在子窗口小部件上,分组在标题 UiChild 下。因此,在上面的示例中, 将在“UiChild”标题下的属性窗格中具有属性 parameter1 和 parameter2。
    • 如果您使用的是@UiChild( tagname = "something" ) 注释,则标记名必须是小写的,或者是与您的 UiChild 添加方法的类来自同一包的实际类名,否则设计器将抛出错误。这些错误不会干扰开发模式或编译,但它们很烦人。
    • 嗨,我是否总是必须传递一个小部件,还是只传递 2 个参数?
    猜你喜欢
    • 2012-07-31
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多