http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/ed2ba1fb/installer/src/InstallApacheFlex.mxml ---------------------------------------------------------------------- diff --git a/installer/src/InstallApacheFlex.mxml b/installer/src/InstallApacheFlex.mxml index b849ae4..09267cc 100644 --- a/installer/src/InstallApacheFlex.mxml +++ b/installer/src/InstallApacheFlex.mxml @@ -33,20 +33,20 @@ variables are not required because the locations of these pieces are known. <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:s="library://ns.adobe.com/flex/spark" - width="800" height="700" maxWidth="800" maxHeight="700" minWidth="800" minHeight="700" - backgroundColor="0xDDDDDD" - preinitialize="getInvoke()" - applicationComplete="handleApplicationComplete(event)" showStatusBar="false" - skinClass="ws.tink.spark.skins.controls.InstallApacheFlexSkin" - xmlns:controls="ws.tink.spark.controls.*" - xmlns:controls1="org.apache.flex.packageflexsdk.view.controls.*" - xmlns:components="org.apache.flex.packageflexsdk.view.components.*" - xmlns:controls2="org.apache.flex.utilities.common.controls.*"> - - <fx:Style source="assets/styles/ApacheFlexToolsStyle.css"/> - <fx:Style source="assets/styles/InstallApacheFlexStyle.css"/> - + xmlns:s="library://ns.adobe.com/flex/spark" + width="800" height="700" maxWidth="800" maxHeight="700" minWidth="800" minHeight="700" + backgroundColor="0xDDDDDD" + preinitialize="getInvoke()" + applicationComplete="handleApplicationComplete(event)" showStatusBar="false" + skinClass="ws.tink.spark.skins.controls.InstallApacheFlexSkin" + xmlns:controls="ws.tink.spark.controls.*" + xmlns:controls1="org.apache.flex.packageflexsdk.view.controls.*" + xmlns:components="org.apache.flex.packageflexsdk.view.components.*" + xmlns:controls2="org.apache.flex.utilities.common.controls.*"> + + <fx:Style source="assets/styles/ApacheFlexToolsStyle.css"/> + <fx:Style source="assets/styles/InstallApacheFlexStyle.css"/> + <fx:Declarations> <fx:Component className="CacheDialog" > <s:TitleWindow title="Download Cache Configuration" width="400" height="130" @@ -98,7 +98,7 @@ variables are not required because the locations of these pieces are known. </s:TitleWindow> </fx:Component> </fx:Declarations> - <fx:Script><![CDATA[ + <fx:Script><![CDATA[ import flash.globalization.LocaleID; import flash.globalization.StringTools; @@ -107,7 +107,7 @@ variables are not required because the locations of these pieces are known. import mx.events.FlexEvent; import mx.events.PropertyChangeEvent; import mx.managers.CursorManager; - import mx.managers.PopUpManager; + import mx.managers.PopUpManager; import mx.resources.ResourceBundle; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; @@ -143,20 +143,20 @@ variables are not required because the locations of these pieces are known. import ws.tink.spark.controls.StepItem; import ws.tink.spark.skins.controls.InstallApacheFlexSkin; - + // embed us strings so we can always have them if we can't get to the locale files [Embed(source="properties/en_US.properties",mimeType="application/octet-stream")] private var en_US_Properties:Class; private var cleanedUp:Boolean; - private var _mirrorURLCGI:String; - private var _useMirror:Boolean = true; - private var _latestVersion:String; - private var loggedVersion:Boolean; + private var _mirrorURLCGI:String; + private var _useMirror:Boolean = true; + private var _latestVersion:String; + private var loggedVersion:Boolean; private var logFile:String; private var debugMode:Boolean = false; - private var logProgressEvents:Boolean = false; + private var logProgressEvents:Boolean = false; private var showDevBuilds:Boolean = false; private var usingDownloadCache:Boolean; private var downloadCacheFolder:String; @@ -165,158 +165,158 @@ variables are not required because the locations of these pieces are known. private var nocache:Boolean = true; private var wasAborted:Boolean; - public var installerAppPath:String; - public var installerAppFileName:String; - + public var installerAppPath:String; + public var installerAppFileName:String; + // loader needs to be in instance var otherwise it can get GC'd. // We only load one thing at a time, so we can all share this // var private var loader:URLLoader; - /** - * Utility Singleton Instances - */ - private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance; - private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance; - - /** - * Apache Flex binary distribution - * - * Values stored in sdk-installer-config.xml edit file to change - * - */ - private var APACHE_FLEX_BIN_DISTRO_PATH:String; - private var APACHE_FLEX_BIN_DISTRO_FILE:String; + /** + * Utility Singleton Instances + */ + private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance; + private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance; + + /** + * Apache Flex binary distribution + * + * Values stored in sdk-installer-config.xml edit file to change + * + */ + private var APACHE_FLEX_BIN_DISTRO_PATH:String; + private var APACHE_FLEX_BIN_DISTRO_FILE:String; private var APACHE_FLEX_BIN_INSTALLER_FILE:String; - private var APACHE_FLEX_BIN_DISTRO_FILE_SHORT:String; - private var APACHE_FLEX_BIN_DISTRO_URL:String; + private var APACHE_FLEX_BIN_DISTRO_FILE_SHORT:String; + private var APACHE_FLEX_BIN_DISTRO_URL:String; private var APACHE_FLEX_BIN_INSTALLER_URL:String; - [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION:String = ""; - [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = ""; - - /** - * Adobe AIR SDK - * - * Values stored in sdk-installer-config.xml edit file to change - * - */ - [Bindable] private var AIR_VERSIONS:ArrayCollection = new ArrayCollection(); - private var AIR_VERSION:String = "14.0"; - private var ADOBE_AIR_SDK_WIN_FILE:String; - private var ADOBE_AIR_SDK_WIN_URL:String; - private var ADOBE_AIR_SDK_MAC_FILE:String; - private var ADOBE_AIR_SDK_MAC_URL:String; - private var ADOBE_AIR_SDK_LINUX_FILE:String; - private var ADOBE_AIR_SDK_LINUX_URL:String; - - /** - * Adobe Flash Player - * - * Values stored in sdk-installer-config.xml edit file to change - * - */ - [Bindable] private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection(); - private var FLASH_PLAYER_VERSION:String = "11.1"; - private var FLASH_PLAYER_SWF_VERSION:String = "14"; - private var ADOBE_FB_GLOBALPLAYER_SWC_FILE:String; - private var ADOBE_FB_GLOBALPLAYER_SWC_URL:String; - - /** - * Apache Flex - * - * Values stored in sdk-installer-config.xml edit file to change - * - */ - [Bindable] private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection(); - - /** - * - * SwfObject - * - */ - private var SWF_OBJECT_FILE:String; - private var SWF_OBJECT_URL:String; - - /** - * Optional installs - * - */ - private var OSMF_SWC_FILE:String; - private var OSMF_SWC_URL:String; - private var OSMF_SWF_FILE:String = "osmf.swf"; - - private var BLAZEDS_FILE:String; - private var BLAZEDS_URL:String; - - private var AFE_FILE:String; - private var AFE_URL:String; - private var AGLJ40_FILE:String; - private var AGLJ40_URL:String; - private var FLEX_FONTKIT_FILE:String; - private var FLEX_FONTKIT_URL:String; - private var RIDEAU_FILE:String; - private var RIDEAU_URL:String; - - [Bindable] - private var _flexHome:String; - private var _flexTemp:String; - private var _flexHomeDir:File; - private var _flexTempDir:File; - private var _apacheFlexSDKCompressedFile:File; - private var _adobeAIRSDKZipFile:File; - private var _fbGlobalPlayerDir:File; - private var _fbGlobalPlayerFile:File; - private var _blazeDSJarFile:File; - private var _afeJarFile:File; - private var _aglj40JarFile:File; - private var _flexFontKitJarFile:File; - private var _rideauJarFile:File; - private var _osmfSWCFile:File; - private var _osmfSWFFile:File; - - private var _os:OS = new OS(); - private var _loader:URLLoader; - private var _process:NativeProcess; - private var _previousDisplayedPercent:int = 0; - private var _fileUnzipErrorFunction:Function; - private var _numOptionalComponents:int = 4; - private var _numOptionalComponentsPermissions:int = 0; - private var _useOSMF2:Boolean = true; - - private var languageOverride:String; - private var configOverride:String = ""; - private var stepsOverride:String = ""; - private var installOverride:String = ""; + [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION:String = ""; + [Bindable] private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = ""; + + /** + * Adobe AIR SDK + * + * Values stored in sdk-installer-config.xml edit file to change + * + */ + [Bindable] private var AIR_VERSIONS:ArrayCollection = new ArrayCollection(); + private var AIR_VERSION:String = "14.0"; + private var ADOBE_AIR_SDK_WIN_FILE:String; + private var ADOBE_AIR_SDK_WIN_URL:String; + private var ADOBE_AIR_SDK_MAC_FILE:String; + private var ADOBE_AIR_SDK_MAC_URL:String; + private var ADOBE_AIR_SDK_LINUX_FILE:String; + private var ADOBE_AIR_SDK_LINUX_URL:String; + + /** + * Adobe Flash Player + * + * Values stored in sdk-installer-config.xml edit file to change + * + */ + [Bindable] private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection(); + private var FLASH_PLAYER_VERSION:String = "11.1"; + private var FLASH_PLAYER_SWF_VERSION:String = "14"; + private var ADOBE_FB_GLOBALPLAYER_SWC_FILE:String; + private var ADOBE_FB_GLOBALPLAYER_SWC_URL:String; + + /** + * Apache Flex + * + * Values stored in sdk-installer-config.xml edit file to change + * + */ + [Bindable] private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection(); + + /** + * + * SwfObject + * + */ + private var SWF_OBJECT_FILE:String; + private var SWF_OBJECT_URL:String; + + /** + * Optional installs + * + */ + private var OSMF_SWC_FILE:String; + private var OSMF_SWC_URL:String; + private var OSMF_SWF_FILE:String = "osmf.swf"; + + private var BLAZEDS_FILE:String; + private var BLAZEDS_URL:String; + + private var AFE_FILE:String; + private var AFE_URL:String; + private var AGLJ40_FILE:String; + private var AGLJ40_URL:String; + private var FLEX_FONTKIT_FILE:String; + private var FLEX_FONTKIT_URL:String; + private var RIDEAU_FILE:String; + private var RIDEAU_URL:String; + + [Bindable] + private var _flexHome:String; + private var _flexTemp:String; + private var _flexHomeDir:File; + private var _flexTempDir:File; + private var _apacheFlexSDKCompressedFile:File; + private var _adobeAIRSDKZipFile:File; + private var _fbGlobalPlayerDir:File; + private var _fbGlobalPlayerFile:File; + private var _blazeDSJarFile:File; + private var _afeJarFile:File; + private var _aglj40JarFile:File; + private var _flexFontKitJarFile:File; + private var _rideauJarFile:File; + private var _osmfSWCFile:File; + private var _osmfSWFFile:File; + + private var _os:OS = new OS(); + private var _loader:URLLoader; + private var _process:NativeProcess; + private var _previousDisplayedPercent:int = 0; + private var _fileUnzipErrorFunction:Function; + private var _numOptionalComponents:int = 4; + private var _numOptionalComponentsPermissions:int = 0; + private var _useOSMF2:Boolean = true; + + private var languageOverride:String; + private var configOverride:String = ""; + private var stepsOverride:String = ""; + private var installOverride:String = ""; private var overlaying:Boolean; private var usingXML:Object; private var additionalProps:Object = {}; - private var licensePropertyMap:Object = {}; + private var licensePropertyMap:Object = {}; private var progressLabels:XML; private var installStepsData:XMLList; private var stepIDs:Vector.<String> = new Vector.<String>(); private var stepLabels:Vector.<String> = new Vector.<String>(); private var currentStep:int = 0; - private var customMenuItem1:ContextMenuItem = new ContextMenuItem("Show Dev Builds"); - private var customMenuItem2:ContextMenuItem = new ContextMenuItem("Configure Download Cache..."); - private var customMenuItem3:ContextMenuItem = new ContextMenuItem("Enable Verbose Logging"); - private var customMenuItem4:ContextMenuItem = new ContextMenuItem("Enable Progress Logging"); - - [Bindable] - private var _viewResourceConstants:ViewResourceConstants; + private var customMenuItem1:ContextMenuItem = new ContextMenuItem("Show Dev Builds"); + private var customMenuItem2:ContextMenuItem = new ContextMenuItem("Configure Download Cache..."); + private var customMenuItem3:ContextMenuItem = new ContextMenuItem("Enable Verbose Logging"); + private var customMenuItem4:ContextMenuItem = new ContextMenuItem("Enable Progress Logging"); + + [Bindable] + private var _viewResourceConstants:ViewResourceConstants; [Bindable] private var supportedLanguages:ArrayCollection = new ArrayCollection(); - [Bindable] - private var _installationSteps:ArrayCollection = new ArrayCollection(); - [Bindable] - private var _installerComponentsDataProvider:ArrayCollection = new ArrayCollection(); - [Bindable] - private var _currentLicenseURL:String; - [Bindable] - private var _currentLicenseLabel:String; - [Bindable] - public var _messages:ArrayCollection = new ArrayCollection(); + [Bindable] + private var _installationSteps:ArrayCollection = new ArrayCollection(); + [Bindable] + private var _installerComponentsDataProvider:ArrayCollection = new ArrayCollection(); + [Bindable] + private var _currentLicenseURL:String; + [Bindable] + private var _currentLicenseLabel:String; + [Bindable] + public var _messages:ArrayCollection = new ArrayCollection(); private var _lastTag:String; private var _lastPublicMessage:String; @@ -348,37 +348,40 @@ variables are not required because the locations of these pieces are known. { return _lastPublicMessage; } - - private function getInvoke():void { - var nativeApplication:NativeApplication = NativeApplication.nativeApplication; - nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs); - } - - [Bindable] private var _standardButtonWidth:Number = 88; - - public function setButtonWidths():void { - var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton); - - calc.buttonWidth(installLogBtn); - calc.buttonWidth(openApacheFlexFolderBtn); - - _standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn]); - } - - private function parseArgs(event:InvokeEvent):void { - for each (var s:String in event.arguments) { - if (s.indexOf("-language=") == 0) { - languageOverride = s.substring(10); - } - if (s.indexOf("-config=") == 0) { - configOverride = s.substring(8); - } - if (s.indexOf("-install=") == 0) { - installOverride = s.substring(9); - } - if (s.indexOf("-steps=") == 0) { - stepsOverride = s.substring(7); - } + + private function getInvoke():void + { + var nativeApplication:NativeApplication = NativeApplication.nativeApplication; + nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs); + } + + [Bindable] private var _standardButtonWidth:Number = 88; + + public function setButtonWidths():void + { + var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton); + + calc.buttonWidth(installLogBtn); + calc.buttonWidth(openApacheFlexFolderBtn); + + _standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn]); + } + + private function parseArgs(event:InvokeEvent):void + { + for each (var s:String in event.arguments) { + if (s.indexOf("-language=") == 0) { + languageOverride = s.substring(10); + } + if (s.indexOf("-config=") == 0) { + configOverride = s.substring(8); + } + if (s.indexOf("-install=") == 0) { + installOverride = s.substring(9); + } + if (s.indexOf("-steps=") == 0) { + stepsOverride = s.substring(7); + } if (s.indexOf("-debug") == 0) { debugMode = true; } @@ -386,91 +389,95 @@ variables are not required because the locations of these pieces are known. debugMode = true; logFile = s.substring(5); } - } + } var so:SharedObject = SharedObject.getLocal("InstallApacheFlex"); usingDownloadCache = so.data.usingDownloadCache; downloadCacheFolder = so.data.downloadCacheFolder; - } - - protected function handleApplicationComplete(event:FlexEvent):void { + } + + protected function handleApplicationComplete(event:FlexEvent):void + { CursorManager.setBusyCursor(); - loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); + loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); addEventListener(Event.CLOSING, closeApplication); - updateWindow(); - var hasInternet:Boolean = false; - var networkAdapters:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces(); - for each (var networkAdapter:NetworkInterface in networkAdapters) - { - if (networkAdapter.active) - { - hasInternet = true; - break; - } - } - if (hasInternet) - { - loadXML(); - } + updateWindow(); + var hasInternet:Boolean = false; + var networkAdapters:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces(); + for each (var networkAdapter:NetworkInterface in networkAdapters) + { + if (networkAdapter.active) + { + hasInternet = true; + break; + } + } + if (hasInternet) + { + loadXML(); + } logVersion(); - if (!hasInternet) - { - log("Internet connection unavailable"); - abortInstallation("Internet connection unavailable."); - } - } - - private function uncaughtErrorHandler(event:UncaughtErrorEvent):void - { - if (currentStep > 0) - updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR); - if (event.error is Error) - { - var error:Error = event.error as Error; - log(error.message); - log(error.getStackTrace(), -1, false); - abortInstallation(error.message + "\n" + error.getStackTrace()); - } - else if (event.error is ErrorEvent) - { - var errorEvent:ErrorEvent = event.error as ErrorEvent; - log(errorEvent.text); - abortInstallation(errorEvent.text); - } - else - { - // a non-Error, non-ErrorEvent type was thrown and uncaught - log(event.toString()); - abortInstallation(event.toString()); - } - } - - /** - * Define on ResourceManager all keys for translation. - * If some key is not present on any other language selected by user, the default value will be displayed - * on the screen - */ - private function defineResourceManagerDefaultLanguage():void { - selectDefaultLanguage(); - } - - private function getIndexOfEnUS():int - { - for (var i:int = 0; i < _langSelect.dataProvider.length; i++) - { - if(_langSelect.dataProvider.getItemAt(i).data == "en_US") - { - return i; - } - } - return -1; - } - - private function updateWindowTitle():void { + if (!hasInternet) + { + log("Internet connection unavailable"); + abortInstallation("Internet connection unavailable."); + } + } + + private function uncaughtErrorHandler(event:UncaughtErrorEvent):void + { + if (currentStep > 0) + updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR); + if (event.error is Error) + { + var error:Error = event.error as Error; + log(error.message); + log(error.getStackTrace(), -1, false); + abortInstallation(error.message + "\n" + error.getStackTrace()); + } + else if (event.error is ErrorEvent) + { + var errorEvent:ErrorEvent = event.error as ErrorEvent; + log(errorEvent.text); + abortInstallation(errorEvent.text); + } + else + { + // a non-Error, non-ErrorEvent type was thrown and uncaught + log(event.toString()); + abortInstallation(event.toString()); + } + } + + /** + * Define on ResourceManager all keys for translation. + * If some key is not present on any other language selected by user, the default value will be displayed + * on the screen + */ + private function defineResourceManagerDefaultLanguage():void + { + selectDefaultLanguage(); + } + + private function getIndexOfEnUS():int + { + for (var i:int = 0; i < _langSelect.dataProvider.length; i++) + { + if(_langSelect.dataProvider.getItemAt(i).data == "en_US") + { + return i; + } + } + return -1; + } + + private function updateWindowTitle():void + { if (_viewResourceConstants) - this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]); - } - - protected function selectDefaultLanguageInEmergency():void { + this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]); + } + + protected function selectDefaultLanguageInEmergency():void + { loadLanguage("en_US", loadUSInEmergencyComplete); } @@ -480,7 +487,8 @@ variables are not required because the locations of these pieces are known. _viewResourceConstants.update(); } - protected function selectDefaultLanguage():void { + protected function selectDefaultLanguage():void + { loadLanguage("en_US", loadUSComplete); } private function loadUSComplete():void @@ -529,7 +537,7 @@ variables are not required because the locations of these pieces are known. languageURL = null; installLanguage(userLocale, loader.data); completeFunction(); - }); + }); loader.load(url); return; } @@ -561,17 +569,18 @@ variables are not required because the locations of these pieces are known. } } - resourceManager.addResourceBundle(resource); + resourceManager.addResourceBundle(resource); } private function languageLoadErrorHandler(event:Event):void { log("Unable to load language file " + languageURL); log(event.toString()); - abortInstallation("Unable to load language file " + languageURL); + abortInstallation("Unable to load language file " + languageURL); } - private function defaultLanguageLoaded():void { + private function defaultLanguageLoaded():void + { resourceManager.localeChain = [ ViewResourceConstants.DEFAULT_LANGUAGE ]; var userLocale:String = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_"); @@ -581,24 +590,24 @@ variables are not required because the locations of these pieces are known. } log("Using Locale: " + userLocale); - var n:int = supportedLanguages.length; - for (var i:int = 0; i < n; i++) { - if (supportedLanguages[i].data == userLocale) { - _langSelect.selectedIndex = i; - - resourceManager.localeChain = [ userLocale, "en_US" ]; - - break; - } - } + var n:int = supportedLanguages.length; + for (var i:int = 0; i < n; i++) { + if (supportedLanguages[i].data == userLocale) { + _langSelect.selectedIndex = i; + + resourceManager.localeChain = [ userLocale, "en_US" ]; + + break; + } + } _viewResourceConstants = ViewResourceConstants.instance; - resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update); - - _viewResourceConstants.update(); - setButtonWidths(); - directoryBtn.enabled = true; - + resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update); + + _viewResourceConstants.update(); + setButtonWidths(); + directoryBtn.enabled = true; + updateWindow(); _mirrorURLUtil.logMessages = new LogMessagesVO(_viewResourceConstants.FETCH_MIRROR_CGI, _viewResourceConstants.FETCH_MIRROR_CGI_DONE, @@ -607,62 +616,67 @@ variables are not required because the locations of these pieces are known. _mirrorURLUtil.getMirrorURL(Constants.APACHE_FLEX_URL + _mirrorURLCGI, getMirrorURLResultHandler); CursorManager.removeBusyCursor(); - checkValidOS(); - } - - protected function updateWindow():void { - updateWindowTitle(); - - this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2; - this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2; - } - - protected function loadXML():void { - var request:URLRequest; - - if (configOverride != "") { - request = new URLRequest(configOverride); - } else { - request = new URLRequest(Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); - //request = new URLRequest(Constants.CONFIG_XML_NAME); - } - - _loader = new URLLoader(); - - try { - _loader.load(request); - } catch (error:Error) { + checkValidOS(); + } + + protected function updateWindow():void + { + updateWindowTitle(); + + this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2; + this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2; + } + + protected function loadXML():void + { + var request:URLRequest; + + if (configOverride != "") { + request = new URLRequest(configOverride); + } else { + request = new URLRequest(Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); + //request = new URLRequest(Constants.CONFIG_XML_NAME); + } + + _loader = new URLLoader(); + + try { + _loader.load(request); + } catch (error:Error) { selectDefaultLanguageInEmergency(); log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); - log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + error.errorID + " " + error.message); - abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); - } - - _loader.addEventListener(IOErrorEvent.IO_ERROR, xmlError, false, 0, true); - _loader.addEventListener(Event.COMPLETE, xmlLoaded, false, 0, true); - } - - protected function xmlError(event:IOErrorEvent):void { + log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + error.errorID + " " + error.message); + abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); + } + + _loader.addEventListener(IOErrorEvent.IO_ERROR, xmlError, false, 0, true); + _loader.addEventListener(Event.COMPLETE, xmlLoaded, false, 0, true); + } + + protected function xmlError(event:IOErrorEvent):void + { selectDefaultLanguageInEmergency(); - log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); - log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + event.errorID); - abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME + " " + event.toString()); - } - - protected function xmlLoaded(event:Event):void { - if (setXMLVariables()) { + log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME); + log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + event.errorID); + abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME + " " + event.toString()); + } + + protected function xmlLoaded(event:Event):void + { + if (setXMLVariables()) { _langSelect.dataProvider = supportedLanguages; _langSelect.selectedIndex = getIndexOfEnUS(); - _langSelect.enabled = true; - defineResourceManagerDefaultLanguage(); - } - } - - protected function checkValidOS():void { - if (_os.isOther()) - log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM); - } - + _langSelect.enabled = true; + defineResourceManagerDefaultLanguage(); + } + } + + protected function checkValidOS():void + { + if (_os.isOther()) + log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM); + } + private function devBuildFilterFunction(o:Object):Boolean { return !o.devBuild; @@ -671,24 +685,24 @@ variables are not required because the locations of these pieces are known. private function debugModeHandler(event:Event):void { debugMode = true; - customMenuItem3.caption = "Verbose Logging Enabled"; + customMenuItem3.caption = "Verbose Logging Enabled"; + } + + private function debugProgressHandler(event:Event):void + { + logProgressEvents = true; + customMenuItem4.caption = "Logging Progress Events"; } - private function debugProgressHandler(event:Event):void - { - logProgressEvents = true; - customMenuItem4.caption = "Logging Progress Events"; - } - private function devBuildShowHandler(event:Event):void { var item:Object = flexVersion.selectedItem; FLEX_VERSIONS.filterFunction = null; - FLEX_VERSIONS.refresh(); + FLEX_VERSIONS.refresh(); flexVersion.selectedItem = item; - customMenuItem1.caption = "Showing Dev Builds"; + customMenuItem1.caption = "Showing Dev Builds"; } - + private function downloadCacheHandler(event:Event):void { var dlg:CacheDialog = new CacheDialog(); @@ -709,7 +723,8 @@ variables are not required because the locations of these pieces are known. so.flush(); } - protected function setXMLVariables():Boolean { + protected function setXMLVariables():Boolean + { try { var data:XML = XML(_loader.data); @@ -724,25 +739,25 @@ variables are not required because the locations of these pieces are known. if (firstTime) { firstTime = false; - - _latestVersion = data.version.latest.toString(); - - installerAppPath = data.installer.(@name == 'SDKInstallerApp')[email protected](); - installerAppFileName = data.installer.(@name == 'SDKInstallerApp')[email protected](); - - _mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI')[email protected](); - customMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, devBuildShowHandler); - customMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, downloadCacheHandler); - customMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugModeHandler); - customMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugProgressHandler); - + _latestVersion = data.version.latest.toString(); + + installerAppPath = data.installer.(@name == 'SDKInstallerApp')[email protected](); + installerAppFileName = data.installer.(@name == 'SDKInstallerApp')[email protected](); + + _mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI')[email protected](); + + customMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, devBuildShowHandler); + customMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, downloadCacheHandler); + customMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugModeHandler); + customMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugProgressHandler); + var contextMenuCustomItems:Array = ContextMenu(contextMenu).customItems; contextMenuCustomItems.push(customMenuItem1); contextMenuCustomItems.push(customMenuItem2); contextMenuCustomItems.push(customMenuItem3); - contextMenuCustomItems.push(customMenuItem4); - + contextMenuCustomItems.push(customMenuItem4); + var name:String; var versionString:String; var versionID:String; @@ -756,9 +771,9 @@ variables are not required because the locations of these pieces are known. var airData:XMLList = data.airsdk[_os.os].versions; var airVersionList:XMLList = airData[0].children(); - var airVersions:Array = []; - var selected:String = airData[0]["@default"].toString(); - for each (var airVersion:XML in airVersionList) { + var airVersions:Array = []; + var selected:String = airData[0]["@default"].toString(); + for each (var airVersion:XML in airVersionList) { var displayVersion:String = [email protected](); versionString = [email protected](); versionID = null; @@ -767,14 +782,14 @@ variables are not required because the locations of these pieces are known. airVersions.push(versionString); var airPath:String = airVersion.path.toString(); var airFile:String = airVersion.file.toString(); - AIR_VERSIONS.addItem({label:"AIR " + displayVersion, version: versionString, versionID: versionID, - path: airPath, file: airFile}); - } - - if (this.airVersion.selectedIndex == -1) { - this.airVersion.selectedIndex = airVersions.indexOf(selected); - } - + AIR_VERSIONS.addItem({label:"AIR " + displayVersion, version: versionString, versionID: versionID, + path: airPath, file: airFile}); + } + + if (this.airVersion.selectedIndex == -1) { + this.airVersion.selectedIndex = airVersions.indexOf(selected); + } + var flexData:XMLList = data.products.children(); var selectedFlexVersion:int; for each (var productData:XML in flexData) @@ -803,182 +818,184 @@ variables are not required because the locations of these pieces are known. needsAIR: needsAIR, needsFlash: needsFlash, devBuild: devBuild, icon: icon}); } } - + FLEX_VERSIONS.filterFunction = devBuildFilterFunction; FLEX_VERSIONS.refresh(); flexVersion.validateNow(); - if (this.flexVersion.selectedIndex == -1) { - this.flexVersion.selectedIndex = selectedFlexVersion; - } + if (this.flexVersion.selectedIndex == -1) { + this.flexVersion.selectedIndex = selectedFlexVersion; + } + + var selectedFlexVersionObject:Object = this.flexVersion.selectedItem; + updateFlexVersionStrings(selectedFlexVersionObject); + + if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH) { + log(_viewResourceConstants.ERROR_INVALID_SDK_URL); + keepGoing = false; + } - var selectedFlexVersionObject:Object = this.flexVersion.selectedItem; - updateFlexVersionStrings(selectedFlexVersionObject); - - if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH) { - log(_viewResourceConstants.ERROR_INVALID_SDK_URL); - keepGoing = false; - } - var flashData:XMLList = data.flashsdk.versions; var flashVersionList:XMLList = flashData[0].children(); var flashPlayerVersions:Array = []; selected = flashData[0]["@default"].toString(); - for each (var flashVersion:XML in flashVersionList) { + for each (var flashVersion:XML in flashVersionList) { displayVersion = [email protected](); versionString = [email protected](); versionID = null; if ([email protected]() > 0) versionID = [email protected](); flashPlayerVersions.push(versionString); - if (!_os.isLinux() || Number(versionString) <= 11.2) { - var swfVersion:String = flashVersion.swfversion.toString(); + if (!_os.isLinux() || Number(versionString) <= 11.2) { + var swfVersion:String = flashVersion.swfversion.toString(); var flashPath:String = flashVersion.path.toString(); var flashFile:String = flashVersion.file.toString(); - FLASH_PLAYER_VERSIONS.addItem({label:"Flash Player " + displayVersion, version:versionString, swfVersion:swfVersion, + FLASH_PLAYER_VERSIONS.addItem({label:"Flash Player " + displayVersion, version:versionString, swfVersion:swfVersion, versionID: versionID, path: flashPath, file: flashFile}); - } - } - - if (this.flashPlayerVersion.selectedIndex == -1) { - this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected); - } - } - - ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version==AIR_VERSION).file.toString(); - ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version==AIR_VERSION).path.toString(); - if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL)) { - log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_WINDOWS); - keepGoing = false; - } - ADOBE_AIR_SDK_WIN_URL += ADOBE_AIR_SDK_WIN_FILE; - - ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version==AIR_VERSION).file.toString(); - ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version==AIR_VERSION).path.toString(); - if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL)) { - log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_MAC); - keepGoing = false; - } - ADOBE_AIR_SDK_MAC_URL += ADOBE_AIR_SDK_MAC_FILE; - - ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version==AIR_VERSION).file.toString(); - ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version==AIR_VERSION).path.toString(); - if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL)) { - log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_LINUX); - keepGoing = false; - } - ADOBE_AIR_SDK_LINUX_URL += ADOBE_AIR_SDK_LINUX_FILE; - - ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).file.toString(); - ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).path.toString(); - FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).swfversion.toString(); - if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL) { - log(_viewResourceConstants.ERROR_INVALID_FLASH_PLAYER_SWC_URL); - keepGoing = false; - } - ADOBE_FB_GLOBALPLAYER_SWC_URL += ADOBE_FB_GLOBALPLAYER_SWC_FILE; - - SWF_OBJECT_FILE = [email protected](); - SWF_OBJECT_URL = [email protected](); - - //Supporting OSMF 2.0 from 4.11 onwards. - if(APACHE_FLEX_BIN_DISTRO_VERSION == "4.9.1" || APACHE_FLEX_BIN_DISTRO_VERSION == "4.10.0" ) - { - OSMF_SWC_FILE = [email protected](); - OSMF_SWC_URL = [email protected](); - _useOSMF2 = false; - } - else - { - OSMF_SWC_FILE = data["OSMF_SWC_2.0"][email protected](); - OSMF_SWC_URL = data["OSMF_SWC_2.0"][email protected](); - _useOSMF2 = true; - } - - BLAZEDS_FILE = [email protected](); - BLAZEDS_URL = [email protected](); - - AFE_FILE = [email protected](); - AFE_URL = [email protected](); - - AGLJ40_FILE = [email protected](); - AGLJ40_URL = [email protected](); - - FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"][email protected](); - FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"][email protected](); - - RIDEAU_FILE = [email protected](); - RIDEAU_URL = [email protected](); - - - return keepGoing; - } - - protected function updateFlexVersionStrings(selectedFlexVersionObject:Object):void - { - APACHE_FLEX_BIN_DISTRO_FILE_SHORT = selectedFlexVersionObject.shortName; - APACHE_FLEX_BIN_DISTRO_VERSION = selectedFlexVersionObject.version; - APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = selectedFlexVersionObject.label; - - APACHE_FLEX_BIN_DISTRO_FILE = selectedFlexVersionObject.fileName; - APACHE_FLEX_BIN_DISTRO_PATH = selectedFlexVersionObject.path; - legacy = selectedFlexVersionObject.legacy; + } + } + + if (this.flashPlayerVersion.selectedIndex == -1) { + this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected); + } + } + + ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version==AIR_VERSION).file.toString(); + ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version==AIR_VERSION).path.toString(); + if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL)) { + log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_WINDOWS); + keepGoing = false; + } + ADOBE_AIR_SDK_WIN_URL += ADOBE_AIR_SDK_WIN_FILE; + + ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version==AIR_VERSION).file.toString(); + ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version==AIR_VERSION).path.toString(); + if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL)) { + log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_MAC); + keepGoing = false; + } + ADOBE_AIR_SDK_MAC_URL += ADOBE_AIR_SDK_MAC_FILE; + + ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version==AIR_VERSION).file.toString(); + ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version==AIR_VERSION).path.toString(); + if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL)) { + log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_LINUX); + keepGoing = false; + } + ADOBE_AIR_SDK_LINUX_URL += ADOBE_AIR_SDK_LINUX_FILE; + + ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).file.toString(); + ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).path.toString(); + FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).swfversion.toString(); + if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL) { + log(_viewResourceConstants.ERROR_INVALID_FLASH_PLAYER_SWC_URL); + keepGoing = false; + } + ADOBE_FB_GLOBALPLAYER_SWC_URL += ADOBE_FB_GLOBALPLAYER_SWC_FILE; + + SWF_OBJECT_FILE = [email protected](); + SWF_OBJECT_URL = [email protected](); + + //Supporting OSMF 2.0 from 4.11 onwards. + if(APACHE_FLEX_BIN_DISTRO_VERSION == "4.9.1" || APACHE_FLEX_BIN_DISTRO_VERSION == "4.10.0" ) + { + OSMF_SWC_FILE = [email protected](); + OSMF_SWC_URL = [email protected](); + _useOSMF2 = false; + } + else + { + OSMF_SWC_FILE = data["OSMF_SWC_2.0"][email protected](); + OSMF_SWC_URL = data["OSMF_SWC_2.0"][email protected](); + _useOSMF2 = true; + } + + BLAZEDS_FILE = [email protected](); + BLAZEDS_URL = [email protected](); + + AFE_FILE = [email protected](); + AFE_URL = [email protected](); + + AGLJ40_FILE = [email protected](); + AGLJ40_URL = [email protected](); + + FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"][email protected](); + FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"][email protected](); + + RIDEAU_FILE = [email protected](); + RIDEAU_URL = [email protected](); + + + return keepGoing; + } + + protected function updateFlexVersionStrings(selectedFlexVersionObject:Object):void + { + APACHE_FLEX_BIN_DISTRO_FILE_SHORT = selectedFlexVersionObject.shortName; + APACHE_FLEX_BIN_DISTRO_VERSION = selectedFlexVersionObject.version; + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = selectedFlexVersionObject.label; + + APACHE_FLEX_BIN_DISTRO_FILE = selectedFlexVersionObject.fileName; + APACHE_FLEX_BIN_DISTRO_PATH = selectedFlexVersionObject.path; + legacy = selectedFlexVersionObject.legacy; nocache = selectedFlexVersionObject.nocache; APACHE_FLEX_BIN_INSTALLER_FILE = selectedFlexVersionObject.prefix + "installer-config.xml"; - // ApacheFlex is full URL so download directly and dont use mirror useful for testing release candidates - if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0) { - _useMirror = false; - } - else - { - _useMirror = true; - } - } - - private function useMirrorPath(path:String):String { - if (_useMirror) { - return path; - } - - return ""; - } - - private function getMirrorURLResultHandler():void { - var logMessages:ArrayCollection = ILog(_mirrorURLUtil).log; - var i:int; - var n:int = logMessages.length; - for (i = 0; i < n; i++) { - log(String(logMessages.getItemAt(i))); - } - - if (_mirrorURLUtil.errorOccurred) { - abortInstallation("mirrorURLUtil.errorOccurred"); + // ApacheFlex is full URL so download directly and dont use mirror useful for testing release candidates + if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0) { + _useMirror = false; + } + else + { + _useMirror = true; + } + } + + private function useMirrorPath(path:String):String + { + if (_useMirror) { + return path; + } + + return ""; + } + + private function getMirrorURLResultHandler():void + { + var logMessages:ArrayCollection = ILog(_mirrorURLUtil).log; + var i:int; + var n:int = logMessages.length; + for (i = 0; i < n; i++) { + log(String(logMessages.getItemAt(i))); + } + + if (_mirrorURLUtil.errorOccurred) { + abortInstallation("mirrorURLUtil.errorOccurred"); main(); - } else { + } else { updatePaths(); - } - - } - + } + + } + protected function updatePaths():void { if (APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.URL_PREFIX.length) == Constants.URL_PREFIX || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.FILE_PREFIX.length) == Constants.FILE_PREFIX || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.HTTPS_PREFIX.length) == Constants.HTTPS_PREFIX) { APACHE_FLEX_BIN_DISTRO_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE; - if (stepsOverride != "") { - APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride; - } else { - APACHE_FLEX_BIN_INSTALLER_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE; - } + if (stepsOverride != "") { + APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride; + } else { + APACHE_FLEX_BIN_INSTALLER_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE; + } } else { APACHE_FLEX_BIN_DISTRO_URL = useMirrorPath(_mirrorURLUtil.mirrorURL) + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE; - if (stepsOverride != "") { - APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride; - } else { - APACHE_FLEX_BIN_INSTALLER_URL = MD5CompareUtil.MD5_DOMAIN + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE; - } + if (stepsOverride != "") { + APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride; + } else { + APACHE_FLEX_BIN_INSTALLER_URL = MD5CompareUtil.MD5_DOMAIN + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE; + } } if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX) { @@ -988,13 +1005,14 @@ variables are not required because the locations of these pieces are known. main(); } - protected function main():void { - - if (shouldUpdate()) { - doUpdate(); - } - } - + protected function main():void + { + + if (shouldUpdate()) { + doUpdate(); + } + } + private function logVersion():void { if (!loggedVersion) @@ -1003,90 +1021,96 @@ variables are not required because the locations of these pieces are known. var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor; var xmlns:Namespace = new Namespace(applicationDescriptor.namespace()); var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString(); - + // Log the Installer version to help with any support issues that arise. log("Installer version " + currentVersion + " (" + _os.os + ")", 0); loggedVersion = true; } } - protected function shouldUpdate():Boolean { - var shouldUpdate:Boolean = false; - //Current version - var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor; - var xmlns:Namespace = new Namespace(applicationDescriptor.namespace()); - var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString(); - + protected function shouldUpdate():Boolean + { + var shouldUpdate:Boolean = false; + //Current version + var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor; + var xmlns:Namespace = new Namespace(applicationDescriptor.namespace()); + var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString(); + logVersion(); - var availBuildNumbers:Array = _latestVersion.split("."); - var currentBuildNumbers:Array = currentVersion.split("."); - - if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0])) { - return true; - } else if (parseInt(availBuildNumbers[0]) == parseInt(currentBuildNumbers[0])) { - if (parseInt(availBuildNumbers[1]) > parseInt(currentBuildNumbers[1])) { - return true; - } else if (parseInt(availBuildNumbers[1]) == parseInt(currentBuildNumbers[1])) { - if (parseInt(availBuildNumbers[2]) > parseInt(currentBuildNumbers[2])) { - return true; - } - } - } - return false; - - } - - protected function doUpdate():void { - var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true)); - updaterDialog.addEventListener("close", handleUpdaterDialogClose); - updaterDialog.latestVersion = _latestVersion; - PopUpManager.centerPopUp(updaterDialog); - } - - protected function handleUpdaterDialogClose(event:Event):void { - PopUpManager.removePopUp(IFlexDisplayObject(event.target)); - } - - protected function handleInstallBtnClick(event:MouseEvent):void { - if (flexSDKTxtInput.text == "") { - log(_viewResourceConstants.INFO_ENTER_VALID_FLEX_SDK_PATH); - } else { - _langSelect.enabled = false; - _flexHome = flexSDKTxtInput.text; - resetInstallStepsActivity(); - addOptionalComponentsToInstallSteps(); - this.currentState = "installState"; - install(); - } - } - - protected function handleZeroStepNextBtnClick(event:MouseEvent):void { - directoryBtn.enabled = false; - - AIR_VERSION = airVersion.selectedItem.version; - var airVersionID:String = airVersion.selectedItem.versionID; - FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version; - var flashVersionID:String = flashPlayerVersion.selectedItem.versionID; - - setXMLVariables(); // as AIR and Flash version may of changed - - log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY); - - if (flexVersion.selectedItem.needsAIR) { - if (airVersionID) - log("AIR version " + airVersionID); - else - log("AIR version " + AIR_VERSION); - } - - if (flexVersion.selectedItem.needsFlash) { - if (flashVersionID) - log("Flash Player version " + flashVersionID); - else - log("Flash Player version " + FLASH_PLAYER_VERSION); - } - + var availBuildNumbers:Array = _latestVersion.split("."); + var currentBuildNumbers:Array = currentVersion.split("."); + + if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0])) { + return true; + } else if (parseInt(availBuildNumbers[0]) == parseInt(currentBuildNumbers[0])) { + if (parseInt(availBuildNumbers[1]) > parseInt(currentBuildNumbers[1])) { + return true; + } else if (parseInt(availBuildNumbers[1]) == parseInt(currentBuildNumbers[1])) { + if (parseInt(availBuildNumbers[2]) > parseInt(currentBuildNumbers[2])) { + return true; + } + } + } + return false; + + } + + protected function doUpdate():void + { + var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true)); + updaterDialog.addEventListener("close", handleUpdaterDialogClose); + updaterDialog.latestVersion = _latestVersion; + PopUpManager.centerPopUp(updaterDialog); + } + + protected function handleUpdaterDialogClose(event:Event):void + { + PopUpManager.removePopUp(IFlexDisplayObject(event.target)); + } + + protected function handleInstallBtnClick(event:MouseEvent):void + { + if (flexSDKTxtInput.text == "") { + log(_viewResourceConstants.INFO_ENTER_VALID_FLEX_SDK_PATH); + } else { + _langSelect.enabled = false; + _flexHome = flexSDKTxtInput.text; + resetInstallStepsActivity(); + addOptionalComponentsToInstallSteps(); + this.currentState = "installState"; + install(); + } + } + + protected function handleZeroStepNextBtnClick(event:MouseEvent):void + { + directoryBtn.enabled = false; + + AIR_VERSION = airVersion.selectedItem.version; + var airVersionID:String = airVersion.selectedItem.versionID; + FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version; + var flashVersionID:String = flashPlayerVersion.selectedItem.versionID; + + setXMLVariables(); // as AIR and Flash version may of changed + + log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY); + + if (flexVersion.selectedItem.needsAIR) { + + if (airVersionID) + log("AIR version " + airVersionID); + else + log("AIR version " + AIR_VERSION); + } + + if (flexVersion.selectedItem.needsFlash) { + if (flashVersionID) + log("Flash Player version " + flashVersionID); + else + log("Flash Player version " + FLASH_PLAYER_VERSION); + } + if (!legacy) { var req:URLRequest = new URLRequest(APACHE_FLEX_BIN_INSTALLER_URL); @@ -1120,7 +1144,8 @@ variables are not required because the locations of these pieces are known. showOptionsState(); } - protected function handleInstallerXMLLoaded(event:Event):void { + protected function handleInstallerXMLLoaded(event:Event):void + { var data:XML = XML(event.target.data); var localeList:Array = resourceManager.localeChain; _installerComponentsDataProvider = new ArrayCollection(); @@ -1184,7 +1209,8 @@ variables are not required because the locations of these pieces are known. return ""; } - protected function handleInstallerXMLError(event:Event):void { + protected function handleInstallerXMLError(event:Event):void + { log("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL); abortInstallation("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL); } @@ -1197,41 +1223,45 @@ variables are not required because the locations of these pieces are known. currentState = "directoryState"; } - protected function showOptionsState():void { - currentState = "optionsState"; - } - - protected function initiateInstallStepsActivity():void { - _installationSteps = new ArrayCollection(); - - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_FLEX_SDK)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT)); - _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF)); - } - - protected function resetInstallStepsActivity():void { - for each(var step:StepItem in _installationSteps) { - step.status = StepItem.NORMAL; - } - } - - protected function addOptionalComponentsToInstallSteps():void { + protected function showOptionsState():void + { + currentState = "optionsState"; + } + + protected function initiateInstallStepsActivity():void + { + _installationSteps = new ArrayCollection(); + + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_FLEX_SDK)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT)); + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF)); + } + + protected function resetInstallStepsActivity():void + { + for each(var step:StepItem in _installationSteps) { + step.status = StepItem.NORMAL; + } + } + + protected function addOptionalComponentsToInstallSteps():void + { if (usingXML) { _installationSteps = new ArrayCollection(); - + _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES)); _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK)); _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK)); _installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_FLEX_SDK)); - + for each (var stepData:XML in installStepsData) { var propName:String = [email protected](); if (!propName || InstallerComponentVO(licensePropertyMap[propName]).selected) @@ -1244,90 +1274,96 @@ variables are not required because the locations of these pieces are known. } return; } - for each (var obj:InstallerComponentVO in _installerComponentsDataProvider) { - if (!obj.required && obj.selected) { - _installationSteps.addItem(new StepItem(obj.label)); - } - } - } - - protected function initializeInstallerComponentsDataProvider():void { - _installerComponentsDataProvider = new ArrayCollection(); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, - _viewResourceConstants.ASK_APACHE_FLEX, _viewResourceConstants.LICENSE_APACHE_V2, - _viewResourceConstants.LICENSE_URL_APACHE_V2, - "STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK", true)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, - _viewResourceConstants.ASK_ADOBE_AIR_SDK, - _viewResourceConstants.LICENSE_ADOBE_AIR_SDK, - _viewResourceConstants.LICENSE_URL_ADOBE_AIR_SDK, - "STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK", true)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, - _viewResourceConstants.ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC, - _viewResourceConstants.LICENSE_ADOBE_SDK, - _viewResourceConstants.LICENSE_URL_ADOBE_SDK, - "STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC", true)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, - _viewResourceConstants.ASK_SWFOBJECT, _viewResourceConstants.LICENSE_SWFOBJECT, - _viewResourceConstants.LICENSE_URL_SWFOBJECT, "STEP_REQUIRED_INSTALL_SWFOBJECT", - true)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, - _viewResourceConstants.ASK_OSMF, _viewResourceConstants.LICENSE_OSMF, - _viewResourceConstants.LICENSE_URL_OSMF, "STEP_REQUIRED_INSTALL_OSMF", true)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, - _viewResourceConstants.ASK_FONTSWF, _viewResourceConstants.LICENSE_FONTSWF, - _viewResourceConstants.LICENSE_URL_FONTSWF, "STEP_OPTIONAL_INSTALL_FONTSWF", - false)); - _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, - _viewResourceConstants.ASK_BLAZEDS, _viewResourceConstants.LICENSE_BLAZEDS, - _viewResourceConstants.LICENSE_URL_BLAZEDS, "STEP_OPTIONAL_INSTALL_BLAZEDS", - false)); - } - - protected function install():void { - createDirectories(); - } - - protected function handleAirVersionChange(event:Event):void { - AIR_VERSION = airVersion.selectedItem.version; - - // Match AIR and Flash versions - if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex) { - flashPlayerVersion.selectedIndex = airVersion.selectedIndex; - FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version; - } - } - - protected function handleFlashPlayerVersionChange(event:Event):void { - FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version; - - // Match AIR and Flash versions - if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex) { - airVersion.selectedIndex = flashPlayerVersion.selectedIndex; - AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version; - } - } - - protected function handleFlexVersionChange(event:Event):void { - /*APACHE_FLEX_BIN_DISTRO_VERSION = flexVersion.selectedItem.version; - APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/ - var item:Object = flexVersion.selectedItem; - airVersion.enabled = item.needsAIR; - flashPlayerVersion.enabled = item.needsFlash; - updateFlexVersionStrings(item); - updatePaths(); - updateWindowTitle(); - InstallApacheFlexSkin(skin).textIcon.source = item.icon; - } - - protected function browseForSDK(event:MouseEvent):void { - var file:File = new File(); - - file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true); - file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY); - } - - protected function checkDirWritable(file:File):void + for each (var obj:InstallerComponentVO in _installerComponentsDataProvider) { + if (!obj.required && obj.selected) { + _installationSteps.addItem(new StepItem(obj.label)); + } + } + } + + protected function initializeInstallerComponentsDataProvider():void + { + _installerComponentsDataProvider = new ArrayCollection(); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, + _viewResourceConstants.ASK_APACHE_FLEX, _viewResourceConstants.LICENSE_APACHE_V2, + _viewResourceConstants.LICENSE_URL_APACHE_V2, + "STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK", true)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, + _viewResourceConstants.ASK_ADOBE_AIR_SDK, + _viewResourceConstants.LICENSE_ADOBE_AIR_SDK, + _viewResourceConstants.LICENSE_URL_ADOBE_AIR_SDK, + "STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK", true)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, + _viewResourceConstants.ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC, + _viewResourceConstants.LICENSE_ADOBE_SDK, + _viewResourceConstants.LICENSE_URL_ADOBE_SDK, + "STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC", true)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, + _viewResourceConstants.ASK_SWFOBJECT, _viewResourceConstants.LICENSE_SWFOBJECT, + _viewResourceConstants.LICENSE_URL_SWFOBJECT, "STEP_REQUIRED_INSTALL_SWFOBJECT", + true)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, + _viewResourceConstants.ASK_OSMF, _viewResourceConstants.LICENSE_OSMF, + _viewResourceConstants.LICENSE_URL_OSMF, "STEP_REQUIRED_INSTALL_OSMF", true)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, + _viewResourceConstants.ASK_FONTSWF, _viewResourceConstants.LICENSE_FONTSWF, + _viewResourceConstants.LICENSE_URL_FONTSWF, "STEP_OPTIONAL_INSTALL_FONTSWF", + false)); + _installerComponentsDataProvider.addItem(new InstallerComponentVO(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, + _viewResourceConstants.ASK_BLAZEDS, _viewResourceConstants.LICENSE_BLAZEDS, + _viewResourceConstants.LICENSE_URL_BLAZEDS, "STEP_OPTIONAL_INSTALL_BLAZEDS", + false)); + } + + protected function install():void + { + createDirectories(); + } + + protected function handleAirVersionChange(event:Event):void + { + AIR_VERSION = airVersion.selectedItem.version; + + // Match AIR and Flash versions + if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex) { + flashPlayerVersion.selectedIndex = airVersion.selectedIndex; + FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version; + } + } + + protected function handleFlashPlayerVersionChange(event:Event):void + { + FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version; + + // Match AIR and Flash versions + if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex) { + airVersion.selectedIndex = flashPlayerVersion.selectedIndex; + AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version; + } + } + + protected function handleFlexVersionChange(event:Event):void + { + /*APACHE_FLEX_BIN_DISTRO_VERSION = flexVersion.selectedItem.version; + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/ + var item:Object = flexVersion.selectedItem; + airVersion.enabled = item.needsAIR; + flashPlayerVersion.enabled = item.needsFlash; + updateFlexVersionStrings(item); + updatePaths(); + updateWindowTitle(); + InstallApacheFlexSkin(skin).textIcon.source = item.icon; + } + + protected function browseForSDK(event:MouseEvent):void + { + var file:File = new File(); + + file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true); + file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY); + } + + protected function checkDirWritable(file:File):void { var ba:ByteArray = new ByteArray(); ba.writeUTFBytes("1"); @@ -1337,10 +1373,10 @@ variables are not required because the locations of these pieces are known. protected function flexSDKDirSelected(event:Event):void { - var selectedDir:File = File(event.target); - var overlay:Boolean = flexVersion.selectedItem.overlay; + var selectedDir:File = File(event.target); + var overlay:Boolean = flexVersion.selectedItem.overlay; - // Quick check to see if the selected directory is writable + // Quick check to see if the selected directory is writable try { var f:File = new File(selectedDir.nativePath + File.separator + "flex.txt"); checkDirWritable(f); @@ -1355,21 +1391,21 @@ variables are not required because the locations of these pieces are known. } overlaying = overlay; - if (!overlay) + if (!overlay) { if (isDirectoryEmpty(selectedDir)) { - _flexHome = selectedDir.nativePath; - flexSDKTxtInput.text = _flexHome; - nextBtn.enabled = true; - _langSelect.enabled = true; - flexSDKTxtInput.errorString = ""; - flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT; - } else { - nextBtn.enabled = false; + _flexHome = selectedDir.nativePath; + flexSDKTxtInput.text = _flexHome; + nextBtn.enabled = true; + _langSelect.enabled = true; + flexSDKTxtInput.errorString = ""; + flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT; + } else { + nextBtn.enabled = false; flexSDKTxtInput.text = selectedDir.nativePath; flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_NOT_EMPTY + " : " + selectedDir.nativePath; - flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_NOT_EMPTY; - } + flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_NOT_EMPTY; + } } else { @@ -1378,196 +1414,205 @@ variables are not required because the locations of these pieces are known. nextBtn.enabled = true; _langSelect.enabled = true; flexSDKTxtInput.errorString = ""; - flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT; - } - } - - protected function handleFlexSDXTxtInputChange(event:TextOperationEvent):void { - var tempDir:File; - var path:String = flexSDKTxtInput.text; - - try { - tempDir = new File(path); - - if (isDirectoryEmpty(tempDir)) { - flexSDKTxtInput.errorString = ""; - _flexHome = path; - nextBtn.enabled = true; - _langSelect.enabled = true; - } else { - flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY; - nextBtn.enabled = false; - } - } catch (e:Error) { - flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY; - nextBtn.enabled = false; - } - } - - protected function createDirectories():void { - updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ACTIVE); - - try { + flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT; + } + } + + protected function handleFlexSDXTxtInputChange(event:TextOperationEvent):void + { + var tempDir:File; + var path:String = flexSDKTxtInput.text; + + try { + tempDir = new File(path); + + if (isDirectoryEmpty(tempDir)) { + flexSDKTxtInput.errorString = ""; + _flexHome = path; + nextBtn.enabled = true; + _langSelect.enabled = true; + } else { + flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY; + nextBtn.enabled = false; + } + } catch (e:Error) { + flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY; + nextBtn.enabled = false; + } + } + + protected function createDirectories():void + { + updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ACTIVE); + + try { if (!overlaying) - log(_viewResourceConstants.INFO_CREATING_FLEX_HOME); + log(_viewResourceConstants.INFO_CREATING_FLEX_HOME); _flexHomeDir = createFolder(_flexHome); - log(_viewResourceConstants.INFO_CREATING_TEMP_DIR); - _flexTemp = _flexHome + File.separator + "temp"; - _flexTempDir = createFolder(_flexTemp); - updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.COMPLETE); - downloadApacheFlexSDK(); - } catch (e:Error) { - updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR); - log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY); - abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY); - } - } - - protected function downloadApacheFlexSDK():void { - updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE); - - try { - log(_viewResourceConstants.INFO_DOWNLOADING_FLEX_SDK + APACHE_FLEX_BIN_DISTRO_URL); - _apacheFlexSDKCompressedFile = File.userDirectory.resolvePath(_flexTemp + File.separator + APACHE_FLEX_BIN_DISTRO_FILE); - copyOrDownload(APACHE_FLEX_BIN_DISTRO_URL, handleApacheFlexSDKDownload, _apacheFlexSDKCompressedFile, handleApacheFlexSDKDownloadError, nocache); - } catch (e:Error) { - updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); - log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message); - abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message); - } - - } - - protected function handleApacheFlexSDKDownload(event:Event):void { - try { - writeFileToDirectory(_apacheFlexSDKCompressedFile, event.target.data); - } catch (e:Error) { - updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); - abortInstallation("handleApacheFlexSDKDownload " + e.message); - } - - updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE); - - updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ACTIVE); - - log(_viewResourceConstants.STEP_VERIFY_FLEX_SDK); - - _md5CompareUtil.addEventListener(ProgressEvent.PROGRESS, md5VerificationProgressHandler); - _md5CompareUtil.verifyMD5(_apacheFlexSDKCompressedFile, APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE, uncompressApacheFlexSDK); - } - - protected function md5VerificationProgressHandler(event:ProgressEvent):void { + log(_viewResourceConstants.INFO_CREATING_TEMP_DIR); + _flexTemp = _flexHome + File.separator + "temp"; + _flexTempDir = createFolder(_flexTemp); + updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.COMPLETE); + downloadApacheFlexSDK(); + } catch (e:Error) { + updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR); + log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY); + abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY); + } + } + + protected function downloadApacheFlexSDK():void + { + updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE); + + try { + log(_viewResourceConstants.INFO_DOWNLOADING_FLEX_SDK + APACHE_FLEX_BIN_DISTRO_URL); + _apacheFlexSDKCompressedFile = File.userDirectory.resolvePath(_flexTemp + File.separator + APACHE_FLEX_BIN_DISTRO_FILE); + copyOrDownload(APACHE_FLEX_BIN_DISTRO_URL, handleApacheFlexSDKDownload, _apacheFlexSDKCompressedFile, handleApacheFlexSDKDownloadError, nocache); + } catch (e:Error) { + updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); + log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message); + abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message); + } + + } + + protected function handleApacheFlexSDKDownload(event:Event):void + { + try { + writeFileToDirectory(_apacheFlexSDKCompressedFile, event.target.data); + } catch (e:Error) { + updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); + abortInstallation("handleApacheFlexSDKDownload " + e.message); + } + + updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE); + + updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ACTIVE); + + log(_viewResourceConstants.STEP_VERIFY_FLEX_SDK); + + _md5CompareUtil.addEventListener(ProgressEvent.PROGRESS, md5VerificationProgressHandler); + _md5CompareUtil.verifyMD5(_apacheFlexSDKCompressedFile, APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE, uncompressApacheFlexSDK); + } + + protected function md5VerificationProgressHandler(event:ProgressEvent):void + { if (logProgressEvents) log("md5 progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false); if (event.bytesTotal > 0) - progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100); - } - - protected function handleApacheFlexSDKDownloadError(event:* = null):void { - updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); - log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK); - abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK); - } - - protected function uncompressApacheFlexSDK():void { - if (!_md5CompareUtil.fileIsVerified) { - updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR); - - log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK); - - abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK); - return; - } else { - updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE); - - log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE); - } - - updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ACTIVE); - - try { - log(_viewResourceConstants.INFO_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath); - - if (_os.isWindows()) { - unzip(_apacheFlexSDKCompressedFile, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError); - } else { - untar(_apacheFlexSDKCompressedFile, _flexTempDir, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError); - } - } catch (e:Error) { - updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ERROR); - abortInstallation(_viewResourceConstants.STEP_UNZIP_FLEX_SDK + " " + e.message); - } - } - - protected function handleApacheFlexSDKZipFileUnzipComplete(event:Event):void { - log(_viewResourceConstants.INFO_FINISHED_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath); - updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.COMPLETE); - - if (_os.isWindows()) { + progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100); + } + + protected function handleApacheFlexSDKDownloadError(event:* = null):void + { + updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR); + log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK); + abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK); + } + + protected function uncompressApacheFlexSDK():void + { + if (!_md5CompareUtil.fileIsVerified) { + updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR); + + log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK); + + abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK); + return; + } else { + updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE); + + log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE); + } +
<TRUNCATED>
