パネルの位置を設定して更新することはできますが、現在の位置を取得するときに問題があります。
例: 現在、私のパネルは (50, 50) に配置されています。
<h:form id="testForm">
<p:panel id="pane" style="position: absolute; left:50px; top:50px;">
<p:panelGrid columns=4>
<p:outputPanel id="ASlot3" styleClass="slot"/>
<p:outputPanel id="ASlot4" styleClass="slot"/>
<p:outputPanel id="ASlot5" styleClass="slot"/>
<p:outputPanel id="ASlot6" styleClass="slot"/>
</p:panelGrid>
</p:panel>
<p:draggable id="drg" for="pane"/>
<p:commandButton id="press" action="#{sbean.press}"/>
</h:form>
パネルをドラッグして位置を更新します。ドラッグした後、このメソッドを保持しているボタンを押して、「スタイル」の内容を印刷します。
//press() method
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
UIComponent component = viewRoot.findComponent("testForm").findComponent("pane");
Panel p = (Panel) component;
System.out.println(p.getAttributes().get("style"));
パネルをドラッグしてボタンを押した後、「スタイル」が更新されません。
では、ドラッグ後にパネルの現在の位置を取得するにはどうすればよいですか?
編集:ところで、私が使用しているスコープは @ViewScoped です