src/it/ht/rcs/console/system/view/frontend/CollectorList.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:List xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="120" borderVisible="false" creationComplete="init()"
doubleClick="edit()" doubleClickEnabled="true" contentBackgroundAlpha="0"
itemRenderer="it.ht.rcs.console.system.view.frontend.CollectorListRenderer" dragEnabled="true" dragMoveEnabled="true">
<s:layout>
<s:TileLayout horizontalGap="10" paddingBottom="10" paddingLeft="10" paddingRight="10"
paddingTop="10" verticalGap="10"/>
</s:layout>
<fx:Script>
<![CDATA[
import it.ht.rcs.console.network.model.Collector;
import it.ht.rcs.console.system.view.frontend.graph.FrontendGraph;
import it.ht.rcs.console.system.view.frontend.graph.renderers.CollectorRenderer;
import mx.core.UIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;
import mx.managers.PopUpManager;
private function init():void
{
addEventListener(DragEvent.DRAG_ENTER, dragEnter);
addEventListener(DragEvent.DRAG_DROP, dragDrop);
}
private function dragEnter(event:DragEvent):void
{
if (event.dragInitiator is CollectorRenderer)
{
var dropTarget:UIComponent = UIComponent(event.currentTarget);
DragManager.acceptDragDrop(dropTarget);
DragManager.showFeedback(DragManager.COPY);
}
}
private function dragDrop(event:DragEvent):void
{
var renderer:CollectorRenderer = event.dragInitiator as CollectorRenderer;
renderer.detach();
(renderer.parent as FrontendGraph).rebuildGraph();
}
public function edit(collector:Collector=null):void
{
if (!Console.currentSession.user.is_sys())
return;
collector = collector || selectedItem;
if (!collector) return;
var popup:EditCollectorForm = PopUpManager.createPopUp(root, EditCollectorForm, true) as EditCollectorForm;
popup.collector = collector;
PopUpManager.centerPopUp(popup);
}
]]>
</fx:Script>
</s:List>