我正在 ToolTwist 设计器中编辑页面,并且显示了所有正常选项卡 - 编辑页面、导航点、测试页面、源代码等,但未显示“页面数据”选项卡。如何使选项卡显示,以便为我的页面输入页面数据?
问问题
90 次
1 回答
3
仅当您的页面上有需要页面数据的小部件时,才会显示页面数据选项卡。您还需要编辑 navpoint,而不是页面,因为页面数据属于 navpoint,并且单个页面定义可能由多个 navpoint 共享。换句话说,页面数据允许小部件在网站内的不同位置(导航点)出现不同。
如果您正在开发一个希望使用页面数据的小部件,您需要执行以下操作:
在 Widget Controller 类中,实现“UsesPageData”接口。这告诉设计器,当您单击引用包含此小部件的页面的导航点时,需要显示页面数据选项卡,并在选项卡上创建一个可以输入此小部件的 XML 的部分,特定于该特定导航点。
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
...
}
于 2012-05-07T11:22:25.780 回答