hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/system/view/backend/Backend.mxml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
          xmlns:s="library://ns.adobe.com/flex/spark"
          xmlns:mx="library://ns.adobe.com/flex/mx"
          xmlns:backend="it.ht.rcs.console.system.view.backend.*"
          xmlns:graph="it.ht.rcs.console.system.view.backend.graph.*"
          xmlns:backups="it.ht.rcs.console.system.view.backup.backups.*"
          width="100%" height="100%" addedToStage="onAddedToStage(event)" creationComplete="init()"
          removedFromStage="onRemovedFromStage(event)">
  
  <fx:Script>
    <![CDATA[
      import it.ht.rcs.console.events.DataLoadedEvent;
      import it.ht.rcs.console.shard.controller.ShardManager;
      import it.ht.rcs.console.shard.model.Shard;
      import it.ht.rcs.console.system.view.backend.graph.renderers.DBRenderer;
      import it.ht.rcs.console.system.view.backend.graph.renderers.ShardRenderer;
      
      import mx.collections.ListCollectionView;
      
      [Bindable]
      private var shards:ListCollectionView;

      private function init():void
      {
        refreshView();
      }
      
      private function onAddedToStage(event:Event):void
      {
        ShardManager.instance.addEventListener(DataLoadedEvent.DATA_LOADED, refreshView);
        ShardManager.instance.listenRefresh();
      }
      
      private function onRemovedFromStage(event:Event):void
      {
        ShardManager.instance.removeEventListener(DataLoadedEvent.DATA_LOADED, refreshView);
        ShardManager.instance.unlistenRefresh();
      }
      
      private function refreshView(event:DataLoadedEvent=null):void
      {
        shards = ShardManager.instance.getView();
        buildGraph();
      }
      
      public function buildGraph():void
      {
        var renderers:Vector.<ShardRenderer> = new Vector.<ShardRenderer>();
        for each (var el:Shard in shards) {
          var sr:ShardRenderer = new ShardRenderer();
          sr.shard = el;
          renderers.push(sr);
        }
        
        var db:DBRenderer = new DBRenderer();
        db.shards = renderers;
        graph.db = db;
        graph.rebuildGraph();
      }
    ]]>
  </fx:Script>
  
  <backend:BackendActionBar />
  
  <s:BorderContainer width="100%" height="100%" borderColor="#E3E6EC" borderVisible="true"
                     borderWeight="2" cornerRadius="10">
    
    <s:Rect width="100%" height="100%" radiusX="10" radiusY="10">
      <s:fill>
        <s:LinearGradient rotation="90">
          <s:GradientEntry color="#E3E6EC"/>
          <s:GradientEntry color="#ffffff"/>
          <s:GradientEntry color="#ffffff"/>
        </s:LinearGradient>
      </s:fill>
    </s:Rect>
    
    <s:Scroller id="scroller" width="100%" height="100%">
      <graph:BackendGraph id="graph" draggable="false"/>
    </s:Scroller>
    
  </s:BorderContainer>
  
</s:VGroup>