2015-10-14 71 views
1

我有儀表板和3個小部件添加到它。p:儀表板小部件狀態

<ui:define name="mainContent"> 
      <h:form id="dashboard" styleClass="main-page-dashboard"> 
       <p:dashboard id="board" model="#{serviceDashboardController.model}"> 
        <p:ajax event="reorder" 
         listener="#{serviceDashboardController.handleReorder}" /> 

        <p:panel id="calendar" header="#{msg.day_agenda}" 
         styleClass="calendar-dashboard dashboard-inner"> 
         <ui:insert name="registry"> 
          <ui:include src="/html/services/day_agenda_dashboard.xhtml" /> 
         </ui:insert> 
        </p:panel> 

        <p:panel id="notary_tasks" header="#{msg.tasks}" styleClass="task-dashboard dashboard-inner"> 
         <ui:insert name="notary_registry"> 
          <ui:include src="/html/services/inboxMessages.xhtml" /> 
         </ui:insert> 
         <p:link outcome="/html/services/inbox" 
          value="#{msg.more_not_tasks}" styleClass="enot-more-link" /> 
        </p:panel> 
        <p:panel id="registry" header="#{msg.notary_registry}" 
         styleClass="registry-dashboard dashboard-inner"> 
         <ui:insert name="registry"> 
          <ui:include src="/html/services/notary_registry_dashboard.xhtml" /> 
         </ui:insert> 
        </p:panel> 
       </p:dashboard> 
      </h:form> 
     </ui:define> 

所以..用戶可以對所有3個小部件重新排序。

我需要做的是保存重新排序的小部件的狀態(位置)。

現在我知道如何通過event.getWidgetId(),event.getColumnIndex()來檢查每個窗口小部件的位置,但是我正在尋找所有的儀表板安排,如果有類似的東西。

因此,在用戶重新排序後,我可以保存它,因此重新連接後的用戶在他離開之前會看到儀表板,而不是默認設置。

編輯:剛纔以爲我們添加小部件的所有列都被添加到模型中。

model.addColumn(column1); 
     model.addColumn(column2); 
     model.addColumn(column3); 

     column1.addWidget("calendar"); 
     column1.addWidget("notary_tasks"); 
     column1.addWidget("notary_registry"); 

所以我想,我應該深入挖掘model .. 因此,如果任何人有更多的想法,隨意.. :)

的Tomcat 7,Primefaces 5.1,鑽嘴魚科2.2

回答

2

所以,答案很簡單,只需要閱讀一些課程文檔。 ! :)

因此,dasboard的狀態可以保存JSF方法getColumns();

List<DashboardColumn> dashboardList = model.getColumns(); 

然後你只需要挑選格式,你保存它,我的例子是Json beeing保存在露天分享。

public String getModelWidgets() { 
     List<DashboardColumn> dashboardList = model.getColumns(); 
     Gson gson = new Gson(); 
     String toJson = gson.toJson(dashboardList); 

     return toJson; 
    }