2012-05-07 43 views

回答

3

頁面數據選項卡僅在頁面上有需要頁面數據的小部件時纔會顯示。您還需要編輯導航點,而不是頁面,因爲頁面數據屬於導航點,並且單個頁面定義可能會被許多導航點共享。換句話說,頁面數據允許小部件在網站內的各個位置(導航點)顯示不同。

如果您正在開發您希望使用的頁面數據的小部件,你需要做到以下幾點:

在窗口小部件控制器類中,實現「UsesPageData」界面。這告訴設計師,當你點擊引用包含這個小部件的頁面的導航點時,頁面數據標籤需要被顯示,並且在該標籤上它創建了可以輸入該小部件的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 
     ... 
    } 
相關問題