<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:components="com.san.components.*"
xmlns:degrafa="http://www.degrafa.com/2007"
layout="absolute"
addedToStage="addedToStageHandler()"
preinitialize="preinit()"
preloader="com.san.preloader.PreloadProgressBar" viewSourceURL="srcview/index.html">
<mx:Style source="theme/styles.css" />
<mx:Script>
<![CDATA[
import mx.automation.codec.KeyCodePropertyCodec;
import com.san.forms.ErrorForm;
import com.mh.globals.GlobalsManager;
private var _globalsLoaded:Boolean = false;
private var _readyToInitialize:Boolean = true;
private function preinit():void
{
GlobalsManager.globals.loadGlobals( "globals.xml", loadGlobalsCallback );
}
private function loadGlobalsCallback( success:Boolean, message:String ):void
{
trace( "globals loaded", success, message, _readyToInitialize );
if( success )
{
_globalsLoaded = true;
if( _readyToInitialize )
{
super.initialized = true;
}
}
else
{
super.initialized = true;
ErrorForm.fatal( message );
}
}
public override function set initialized(value:Boolean):void
{
trace( "set initialized", value, _globalsLoaded );
if( _globalsLoaded )
initialized = value;
else if( !value )
super.initialized = value;
else
_readyToInitialize = true;
}
private function addedToStageHandler():void
{
stage.addEventListener( KeyboardEvent.KEY_DOWN, keyDownEventHandler );
}
private function keyDownEventHandler(event:KeyboardEvent):void
{
super.keyDownHandler(event);
switch( event.keyCode )
{
case Keyboard.DELETE:
page.remove();
break;
case Keyboard.RIGHT:
if( page.selectedComponent )
page.selectedComponent.x++;
break;
case Keyboard.LEFT:
if( page.selectedComponent )
page.selectedComponent.x--;
break;
case Keyboard.UP:
if( page.selectedComponent )
page.selectedComponent.y--;
break;
case Keyboard.DOWN:
if( page.selectedComponent )
page.selectedComponent.y++;
break;
}
switch( event.charCode )
{
case 67: case 99: if( event.ctrlKey )
page.copy();
break;
case 88: case 120: if( event.ctrlKey )
page.cut();
break;
case 86: case 118: if( event.ctrlKey )
page.paste();
break;
}
trace( event.charCode );
}
]]>
</mx:Script>
<mx:Canvas top="110" bottom="0" right="0" left="200" >
<mx:Canvas id="pageWrapper" width="500" height="333" horizontalCenter="0" verticalCenter="0" >
<components:PageBackground id="page_background" page="{page}" width="500" height="333" />
<components:Page id="page" width="500" height="333" />
<mx:Image horizontalCenter="-150" verticalCenter="150" source="@Embed('theme/logo_small.png')"/>
</mx:Canvas>
</mx:Canvas>
<components:Library top="80" bottom="0" left="0"/>
<components:Toolbar target="{page}" wrapper="{pageWrapper}" left="200" right="0" top="80" />
<components:Properties target="{page}" left="200" right="0" bottom="0" height="120"/>
<mx:Canvas id="branding" height="82" left="0" right="0" top="0">
<degrafa:Surface>
<degrafa:GeometryGroup>
<degrafa:fills>
<degrafa:LinearGradientFill id="bgFill" angle="90" >
<degrafa:GradientStop color="#E5E5E5" ratio="0" />
<degrafa:GradientStop color="#D0D0D0" ratio="0.3" />
<degrafa:GradientStop color="#D0D0D0" ratio="1" />
</degrafa:LinearGradientFill>
</degrafa:fills>
<degrafa:RoundedRectangle width="{branding.width}" height="{branding.height}" cornerRadius="10" fill="{bgFill}" />
<degrafa:filters>
<mx:BevelFilter distance="2" />
</degrafa:filters>
</degrafa:GeometryGroup>
</degrafa:Surface>
<mx:Image source="@Embed('theme/logo.png')" />
</mx:Canvas>
</mx:Application>