Две панели ICEfaces расположены взаимодействующими - PullRequest
1 голос
/ 10 марта 2011

Как вы ограничиваете элементы 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 Ответ

1 голос
/ 09 мая 2012

Для icefaces 3.0 добавьте beforeChangeListener к элементу ice:panelPositioned.Затем этот слушатель должен вызвать event.cancel(), если значения event.getType() != - PanelPositionedEvent. TYPE_MOVE и event.getIndex() и event.getOldIndex() больше 1. Если это ход, то он находится внутри панели.add / delete перемещаются между панелями.

Для icefaces 1.8.2 (ранее не использовался 2.0) вам необходимо добавить слушателя к элементу ice:panelPositioned.Нет beforeChangeListener.вам понадобится предварительный список и текущий список (две копии).Оба инициализируют к тем же элементам при инициализации резервного компонента.Слушатель, если перемещение - установить перед списком текущий список, в противном случае установить текущий список перед списком.Это должна быть копия, а не ссылка.

...