hackedteam/rcs-console

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

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx"
                autoDrawBackground="true" creationComplete="init()">

  
  <fx:Script>
    <![CDATA[
      import it.ht.rcs.console.network.model.Collector;
      import it.ht.rcs.console.system.view.frontend.graph.renderers.CollectorRenderer;
      
      import locale.R;
      
      import mx.core.DragSource;
      import mx.managers.DragManager;
      import mx.managers.PopUpManager;

      [Bindable]
      private var linked:Boolean;
      
      private function init():void {
        addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
      }
      
      override public function set data(value:Object):void
      {
        super.data = value;
        if (!data)
          return;
        
        var c:Collector = value as Collector;
        if (c.type == 'remote' && c.prev[0] == null && c.next[0] == null) {
          toolTip = R.get('NODE_NOT_ATTACHED');
          linked = false;
        } else {
          toolTip = '';
          linked = true;
        }
        
        if (c.type == 'remote' && !c.enabled)
          this.alpha=.5;
        else
          this.alpha=1;

        currentState = c.type;
       
        //this.buttonMode = data.type == 'remote';
      }
      
      private function mouseDown(event:MouseEvent):void
      {
        //if (data.type == 'remote' && data.prev[0] == null && data.next[0] == null)
        if (data.type == 'remote' && Console.currentSession.user.is_sys_frontend())
        {
          var dragInitiator:CollectorListRenderer = event.currentTarget as CollectorListRenderer;
          var dragSource:DragSource = new DragSource();
          var coll:CollectorRenderer = new CollectorRenderer(data as Collector, null);
          var offset:int = 0;//event.target === bottomLabel ? 70 : 0;
          DragManager.doDrag(dragInitiator, dragSource, event, coll, event.localX, event.localY + offset);
        }
      }
    ]]>
  </fx:Script>
  
  <s:states>
    <s:State name="local"/>
    <s:State name="remote"/>
  </s:states>
  
  <s:layout>
    <s:VerticalLayout gap="6" horizontalAlign="center" paddingBottom="5" paddingLeft="5"
                      paddingRight="5" paddingTop="5" verticalAlign="top"/>
  </s:layout>
  
  <s:BorderContainer width="50" height="50" borderColor="#dddddd" cornerRadius="10">
    <s:BitmapImage source="@Embed('/img/NEW/anonymizer.png')" horizontalCenter="0" verticalCenter="0"/>
    <s:BitmapImage visible="{linked}" right="-3" bottom="-3" source="@Embed('/img/NEW/linked.png')"/>
  </s:BorderContainer>
  
  <s:Label width="80" maxDisplayedLines="2" text="{data.name}" textAlign="center" fontFamily="Myriad"
           fontSize="12"/>
    
</s:ItemRenderer>