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