src/it/ht/rcs/console/system/view/backend/Backend.mxml
<?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>