为什么Designer中没有显示页面数据选项卡?

时间:2012-05-07 05:39:12

标签: tooltwist

我正在ToolTwist Designer中编辑一个页面,我显示了所有正常的标签 - 编辑页面,导航点,测试页面,来源等,但“页面数据”选项卡未显示。如何制作标签,以便为页面输入页面数据?

1 个答案:

答案 0 :(得分:3)

仅当页面上有一个需要页面数据的小部件时,才会显示页面数据选项卡。您还需要编辑导航点而不是页面,因为页面数据属于导航点,并且许多导航点可能共享单个页面定义。换句话说,页面数据允许小部件在网站内的不同位置(导航点)显示不同。

如果您正在开发希望使用页面数据的窗口小部件,则需要执行以下操作:

在Widget Controller类中,实现" UsesPageData"接口。这告诉Designer,当您单击引用包含此窗口小部件的页面的导航点时,需要显示页面数据选项卡,并在选项卡上创建一个部分,可以输入该窗口小部件的XML,特定于该特定于该特定于的navPoint。

public class CarouselTab extends WbdWidgetController implements UsesPageData

要向用户指示窗口小部件所期望的XML,您需要实现一个返回模板XML代码的方法。例如:


    public XData getInitialPageData(WbdWidget instance)
    {
        StringBuffer xml = new StringBuffer();
        xml.append("\n");
        xml.append("\n");
        xml.append("        id01\n");
        xml.append("        [Label 01]\n");
        xml.append("        [Add your widget here 01]\n");
        xml.append("\n");
        xml.append("\n");
        xml.append("        id02\n");
        xml.append("        [Label 02]\n");
        xml.append("        [Add your widget here 02]\n");
        xml.append("\n");
        xml.append("");
        return new XData(xml);
    }

定义一个属性,该属性定义要在页面数据选项卡上输入XML的上方显示的名称:


    protected void init(WbdWidget instance) throws WbdException
    {
        instance.defineProperty(new WbdStringProperty("pageDataSection", null, "PageDataSection", ""));
        ...
    }

在生成页面时使用页面数据:


    @Override
    public void renderForJSP(WbdGenerator generator, WbdWidget instance, UimHelper ud, WbdRenderHelper rh) throws WbdException
    {
        ...
        Xpc xpc = ud.getXpc();
        xpc.start("tooltwist.wbd.getPagedata", "select");
        xpc.attrib("navpointId", WbdSession.getNavpointId(ud.getCredentials()));
        xpc.attrib("pageDataSection", pageDataSection);
        XData pagedata = xpc.run();
        // Do something with the page data
        ...
    }