两个ICEfaces面板定位交互

时间:2011-03-10 08:36:22

标签: icefaces

如何约束PanelPositioned的元素,以便只能在当前面板中拖动它们?我有两个不同数据类型的垂直列表,一个在另一个之上。两者都使用PanelPositioned来允许拖动和放大删除重新排序,但元素可以上下拖动到另一个面板,生成错误

<ice:panelPositioned id="dragPanel1" var="dataType1var"
    value="#{displayBean.dataType1List}" constraint="vertical">
    <ice:panelGroup style="cursor:move;">

    </ice:panelGroup>
</ice:panelPositioned>

<ice:panelPositioned id="dragPanel2" var="dataType2var"
    value="#{displayBean.dataType2List}" constraint="vertical">
    <ice:panelGroup style="cursor:move;">

    </ice:panelGroup>
</ice:panelPositioned>

1 个答案:

答案 0 :(得分:1)

对于icefaces 3.0,将beforeChangeListener添加到ice:panelPositioned元素。如果event.cancel()event.getType() !=PanelPositionedEvent以及TYPE_MOVEevent.getIndex()都大于1,则此监听器应调用event.getOldIndex()。如果是是一个举动,然后它是在面板内。添加/删除正在面板之间移动。

对于icefaces 1.8.2(neve used 2.0),你需要为ice:panelPositioned元素添加一个监听器。没有beforeChangeListener。你需要一个前列表和当前列表(两个副本)。初始化辅助bean时,两者都初始化为相同的元素。侦听器,如果移动 - 在列表之前设置为当前列表,否则将当前列表设置为列表之前。必须是副本,而不是参考。