2011-03-10 9 views
1

PanelPositionedの要素を現在のパネル内でのみドラッグできるようにするにはどうすればよいですか?私は、異なるデータ型の2つの垂直方向のリストを持っています。両方がドラッグ&ドロップ並べ替えを可能にするPanelPositionedを使用するが、要素はICEfacesを3.0エラー2つのICEfacesパネルが相互作用するように配置

<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

を生成する、他のパネルまでドラッグし、ドロップダウンすることができ、beforeChangeListenerからice:panelPositioned要素を追加します。このリスナーは、event.getType() !=PanelPositionedEventの場合はevent.cancel()を呼び出します。 TYPE_MOVEおよびevent.getIndex()およびevent.getOldIndex()は両方とも1より大きい。移動であれば、それはパネル内にある。追加/削除がパネル間を移動しています。

氷面1.8.2(neve 2.0使用)の場合、ice:panelPositioned要素にリスナーを追加する必要があります。 beforeChangeListenerはありません。前リストと現リスト(2部)が必要になります。両方ともバッキングBeanの初期化時に同じ要素に初期化されます。リスナーは、リストの前に移動リストを設定していない場合は、現在のリストを前のリストに設定します。コピーである必要があり、参照ではありません。