hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/system/view/frontend/CollectorList.mxml

Summary

Maintainability
Test Coverage
<?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>