【发布时间】:2014-03-16 00:33:09
【问题描述】:
美好的一天。我在这里有一个使用 primefaces 的拖放实现。这是用于可拖动的。
<p:dataGrid id="availableComputers" value="#{coltsysLab.computer}" var="computer" columns="3" emptyMessage="No Computers Added Yet">
<p:column>
<p:graphicImage id="computer" value="http://localhost:8080/COLTSysResources/resources/images/#{computer.pic}" styleClass="computerImage" rendered="#{computer.status=='AVAILABLE'}"/>
<p:draggable for="computer" revert="true" scope="#{computer.status}" stack=".computerImage"/>
<p:contextMenu for="computer">
<p:menuitem value="Add Information" icon="ui-icon-plusthick" onclick="addInfoDlg.show();" action="#{coltsysLab.passComputerId(computer)}"/>
<p:menuitem process="@this" value="Computer Information" icon="ui-icon-search" oncomplete="viewInfoDlg.show()" action="#{coltsysLab.passComputerId(computer)}"/>
</p:contextMenu>
</p:column>
这是用于可放置插槽的。
<p:dataGrid id="slots" value="#{coltsysLab.op}" var="com1" columns="#{coltsysLab.column}" >
<p:outputPanel id="drop" styleClass="slot">
<p:droppable for="drop" datasource=":organizeForm:availableComputers" tolerance="fit" scope="AVAILABLE">
<p:ajax process="slots" listener="#{coltsysLab.onDrop}" update=":organizeForm:growl :organizeForm:selectedComputers"/>
</p:droppable>
</p:outputPanel>
我能够通过支持 bean 上的 DragDropEvent 获取 dragId 和 dropId。但是我将如何保存每个包含可拖动的插槽的位置?我想把它保存到数据库中,这样当我打开页面时,它就会显示每个可拖动的保存位置。
--
我从kolossus的建议中添加了一个代码,我想获取被拖动对象的位置,但是这里输出的是null。
String dropId = event.getDropId();
UIComponent theContainer = FacesContext.getCurrentInstance().getViewRoot().findComponent(":organizeForm:slots");
UIComponent theComponent = FacesContext.getCurrentInstance().getViewRoot().findComponent(":organizeForm:availableComputers:computer");
List<UIComponent> childComponents = theContainer.getChildren();
for (UIComponent child : childComponents) {
System.out.println(child.getClientId());
if (dropId.equals(child.getClientId())) {
GraphicImage gImage = (GraphicImage) theComponent;
String currentPosition = gImage.getStyle();
System.out.println(currentPosition);
}
}
当我使用浏览器的inspect元素时,我可以看到它的样式,我将如何获得值?
【问题讨论】:
标签: java jsf primefaces