Merge remote-tracking branch 'origin/develop' into as3httpclient-work
Conflicts:
installer/src/InstallApacheFlex.mxml
diff --git a/installer/README b/installer/README
index 7a403fd..5a56ba7 100644
--- a/installer/README
+++ b/installer/README
@@ -135,8 +135,8 @@
2. In the installer directory run:
ant get-as3commons.swc
- This step downloads the required as3commons library and saves it in the libs
- directory.
+ ant get-as3httpdclient.swc
+ These step downloads the required libraries and saves it in the libs directory.
3. If using Adobe Flash Builder, add a linked resource called:
APACHE_FLEX_UTILITIES_ROOT
diff --git a/installer/build.xml b/installer/build.xml
index 24288dc..e052051 100644
--- a/installer/build.xml
+++ b/installer/build.xml
@@ -296,7 +296,20 @@
-->
</target>
- <target name="compile" depends="get-as3commons.swc"
+ <target name="check-as3httpclient.swc">
+ <available file="${LIBRARY_DIR}/as3httpclient.swc" property="as3httpclient.swc.present"/>
+ </target>
+
+ <!-- This has a BSD license which is a reciprocal license with the Apache v2 license. -->
+ <target name="get-as3httpclient.swc" depends="check-as3commons.swc" unless="as3httpclient.swc.present"
+ description="Download as3httpclient.swc">
+ <mkdir dir="${LIBRARY_DIR}"/>
+ <get src="https://github.com/quetwo/as3httpclient/releases/download/1.0/as3httpclient.swc"
+ dest="${LIBRARY_DIR}/as3httpclient.swc"
+ verbose="true"/>
+ </target>
+
+ <target name="compile" depends="get-as3commons.swc, get-as3httpclient.swc"
description="Compiles the AIR application to a SWF file and places SWF in a temp directory to be packaged.">
<mxmlc file="${SOURCE_DIR}/${APP_NAME}.${APP_EXTENSION}"
output="${BUILD_DIR}/${APP_NAME}.swf"
diff --git a/installer/src/InstallApacheFlex.mxml b/installer/src/InstallApacheFlex.mxml
index 0fd98ac..6c91555 100644
--- a/installer/src/InstallApacheFlex.mxml
+++ b/installer/src/InstallApacheFlex.mxml
@@ -51,38 +51,38 @@
<fx:Component className="CacheDialog" >
<s:TitleWindow title="Download Cache Configuration" width="400" height="130"
backgroundColor="0xDDDDDD" close="closeUp()">
- <fx:Script>
- <![CDATA[
- import mx.managers.PopUpManager;
-
- private function browseFolders():void
- {
- var file:File;
- if (folder.text.length > 0)
- file = File.applicationStorageDirectory.resolvePath(folder.text);
- else
- file = File.applicationStorageDirectory;
- file.browseForDirectory("Download Cache Folder");
- file.addEventListener(Event.SELECT, folderSelected);
- }
-
- private function folderSelected(event:Event):void
- {
- folder.text = event.target.nativePath;
- }
-
- private function closeUp():void
- {
- PopUpManager.removePopUp(this);
- }
-
- private function updateCache():void
- {
- dispatchEvent(new Event(Event.COMPLETE));
- closeUp();
- }
- ]]>
- </fx:Script>
+ <fx:Script>
+ <![CDATA[
+ import mx.managers.PopUpManager;
+
+ private function browseFolders():void
+ {
+ var file:File;
+ if (folder.text.length > 0)
+ file = File.applicationStorageDirectory.resolvePath(folder.text);
+ else
+ file = File.applicationStorageDirectory;
+ file.browseForDirectory("Download Cache Folder");
+ file.addEventListener(Event.SELECT, folderSelected);
+ }
+
+ private function folderSelected(event:Event):void
+ {
+ folder.text = event.target.nativePath;
+ }
+
+ private function closeUp():void
+ {
+ PopUpManager.removePopUp(this);
+ }
+
+ private function updateCache():void
+ {
+ dispatchEvent(new Event(Event.COMPLETE));
+ closeUp();
+ }
+ ]]>
+ </fx:Script>
<s:VGroup left="10" top="10" right="10">
<s:CheckBox id="cb" label="Cache Downloaded Files" />
<s:HGroup width="100%" verticalAlign="baseline">
@@ -98,3321 +98,3546 @@
</s:TitleWindow>
</fx:Component>
</fx:Declarations>
- <fx:Script><![CDATA[
- import flash.globalization.LocaleID;
- import flash.globalization.StringTools;
+ <fx:Script><![CDATA[
+ import flash.globalization.LocaleID;
+ import flash.globalization.StringTools;
- import mx.collections.ArrayCollection;
- import mx.core.IFlexDisplayObject;
- import mx.events.FlexEvent;
- import mx.events.PropertyChangeEvent;
- import mx.managers.CursorManager;
- import mx.managers.PopUpManager;
- import mx.resources.ResourceBundle;
- import mx.rpc.events.FaultEvent;
- import mx.rpc.events.ResultEvent;
- import mx.rpc.http.HTTPService;
- import mx.utils.StringUtil;
+ import mx.collections.ArrayCollection;
+ import mx.core.IFlexDisplayObject;
+ import mx.events.FlexEvent;
+ import mx.events.PropertyChangeEvent;
+ import mx.managers.CursorManager;
+ import mx.managers.PopUpManager;
+ import mx.resources.ResourceBundle;
+ import mx.rpc.events.FaultEvent;
+ import mx.rpc.events.ResultEvent;
+ import mx.rpc.http.HTTPService;
+ import mx.utils.StringUtil;
- // This force-links all of the ant task handlers into the Installer.
- // The Installer doesn't use most of them directly but some script
- // it runs might.
- import AntClasses; AntClasses;
- import org.apache.flex.ant.Ant;
- import org.apache.flex.packageflexsdk.model.InstallerComponentVO;
- import org.apache.flex.packageflexsdk.model.OS;
- import org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
- import org.apache.flex.packageflexsdk.util.CalcButtonWidth;
- import org.apache.flex.packageflexsdk.util.MD5CompareUtil;
- import org.apache.flex.packageflexsdk.view.UpdaterDialog;
- import org.apache.flex.packageflexsdk.view.components.AdobeLicense;
- import org.apache.flex.packageflexsdk.view.components.ConsoleWindow;
- import org.apache.flex.packageflexsdk.view.components.MPLLicense;
- import org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent;
- import org.apache.flex.utilities.common.Constants;
- import org.apache.flex.utilities.common.MirrorURLUtil;
- import org.apache.flex.utilities.common.interfaces.ILog;
- import org.apache.flex.utilities.common.vo.LogMessagesVO;
- import org.as3commons.zip.Zip;
- import org.as3commons.zip.ZipEvent;
- import org.as3commons.zip.ZipFile;
+ import org.apache.flex.packageflexsdk.util.ApacheURLLoader;
- import spark.events.IndexChangeEvent;
- import spark.events.TextOperationEvent;
+ import spark.events.IndexChangeEvent;
+ import spark.events.TextOperationEvent;
- import ws.tink.spark.controls.StepItem;
- import ws.tink.spark.skins.controls.InstallApacheFlexSkin;
+ // This force-links all of the ant task handlers into the Installer.
+ // The Installer doesn't use most of them directly but some script
+ // it runs might.
+ import AntClasses;
- // 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;
+ AntClasses;
- private var cleanedUp:Boolean;
+ import org.apache.flex.ant.Ant;
+ import org.apache.flex.ant.tags.Checksum;
+ import org.apache.flex.ant.tags.Copy;
+ import org.apache.flex.ant.tags.Get;
+ import org.apache.flex.packageflexsdk.model.InstallerComponentVO;
+ import org.apache.flex.packageflexsdk.model.OS;
+ import org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
+ import org.apache.flex.packageflexsdk.util.CalcButtonWidth;
+ import org.apache.flex.packageflexsdk.util.MD5CompareUtil;
+ import org.apache.flex.packageflexsdk.view.UpdaterDialog;
+ import org.apache.flex.packageflexsdk.view.components.AdobeLicense;
+ import org.apache.flex.packageflexsdk.view.components.ConsoleWindow;
+ import org.apache.flex.packageflexsdk.view.components.MPLLicense;
+ import org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent;
+ import org.apache.flex.utilities.common.Constants;
+ import org.apache.flex.utilities.common.MirrorURLUtil;
+ import org.apache.flex.utilities.common.interfaces.ILog;
+ import org.apache.flex.utilities.common.vo.LogMessagesVO;
+ import org.as3commons.zip.Zip;
+ import org.as3commons.zip.ZipEvent;
+ import org.as3commons.zip.ZipFile;
+ import org.osmf.utils.OSMFStrings;
- 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 showDevBuilds:Boolean = false;
- private var usingDownloadCache:Boolean;
- private var downloadCacheFolder:String;
- private var userDefaultLanguage:String;
- private var firstTime:Boolean = true;
- private var legacy:Boolean = true;
- private var nocache:Boolean = true;
- private var wasAborted:Boolean;
+ import ws.tink.spark.controls.StepItem;
+ import ws.tink.spark.skins.controls.InstallApacheFlexSkin;
- public var installerAppPath:String;
- public var installerAppFileName:String;
+ // 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;
- // 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;
+ private var cleanedUp:Boolean;
- /**
- * Utility Singleton Instances
- */
- private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance;
- private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance;
+ 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 showDevBuilds:Boolean = false;
+ private var usingDownloadCache:Boolean;
+ private var downloadCacheFolder:String;
+ private var userDefaultLanguage:String;
+ private var firstTime:Boolean = true;
+ private var legacy:Boolean = true;
+ private var nocache:Boolean = true;
+ private var wasAborted:Boolean;
+ private var newSDKSelected:Boolean = true;
- /**
- * 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_INSTALLER_URL:String;
- [Bindable]
- private var APACHE_FLEX_BIN_DISTRO_VERSION:String = "";
- [Bindable]
- private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = "";
+ public var installerAppPath:String;
+ public var installerAppFileName: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;
+ // 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:ApacheURLLoader;
- /**
- * 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;
+ /**
+ * Utility Singleton Instances
+ */
+ private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance;
+ private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance;
- /**
- * Apache Flex
- *
- * Values stored in sdk-installer-config.xml edit file to change
- *
- */
- [Bindable]
- private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
+ /**
+ * 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_INSTALLER_URL:String;
+ [Bindable]
+ private var APACHE_FLEX_BIN_DISTRO_VERSION:String = "";
+ [Bindable]
+ private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = "";
- /**
- *
- * SwfObject
- *
- */
- private var SWF_OBJECT_FILE:String;
- private var SWF_OBJECT_URL: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;
- /**
- * Optional installs
- *
- */
- private var OSMF_SWC_FILE:String;
- private var OSMF_SWC_URL:String;
- private var OSMF_SWF_FILE:String = "osmf.swf";
+ /**
+ * 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;
- private var BLAZEDS_FILE:String;
- private var BLAZEDS_URL:String;
+ /**
+ * Apache Flex
+ *
+ * Values stored in sdk-installer-config.xml edit file to change
+ *
+ */
+ [Bindable]
+ private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
- 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;
+ /**
+ *
+ * SwfObject
+ *
+ */
+ private var SWF_OBJECT_FILE:String;
+ private var SWF_OBJECT_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;
+ /**
+ * Optional installs
+ *
+ */
+ private var OSMF_SWC_FILE:String;
+ private var OSMF_SWC_URL:String;
+ private var OSMF_SWF_FILE:String = "osmf.swf";
- 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 BLAZEDS_FILE:String;
+ private var BLAZEDS_URL:String;
- private var languageOverride:String;
- private var configOverride:String = "";
- private var stepsOverride:String = "";
- private var installOverride: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;
- private var overlaying:Boolean;
- private var usingXML:Object;
- private var additionalProps: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;
+ [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 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");
+ private var _os:OS = new OS();
+ private var _loader:ApacheURLLoader;
+ 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;
- [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();
+ private var languageOverride:String;
+ private var configOverride:String = "";
+ private var stepsOverride:String = "";
+ private var installOverride:String = "";
- private var _lastTag:String;
- private var _lastPublicMessage:String;
- public function set lastPublicMessage(s:String):void
- {
- var tag:String;
- var c:int;
+ private var overlaying:Boolean;
+ private var usingXML:Object;
+ private var additionalProps:Object = {};
+ private var licensePropertyMap:Object = {};
+ private var progressLabels:XML;
+ private var installStepsData:XMLList;
+ private var compList:XMLList;
+ private var stepIDs:Vector.<String> = new Vector.<String>();
+ private var stepLabels:Vector.<String> = new Vector.<String>();
+ private var currentStep:int = 0;
- c = s.indexOf("[");
- if (c != -1)
- {
- var c2:int = s.indexOf("] ");
- if (c2 != -1)
- {
- tag = s.substring(c + 1, c2);
- s = s.substr(c2 + 2);
- }
- }
- if (tag && tag == _lastTag && tag == "get")
- _lastPublicMessage += "\n" + s;
- else
- _lastPublicMessage = s;
- _lastTag = tag;
- dispatchEvent(new Event("messageChanged"));
- }
+ private var lastLicenseItemSelected:int = 0;
- [Bindable("messageChanged")]
- public function get lastFilteredPublicMessage():String
- {
- return _lastPublicMessage;
- }
+ 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");
- private function getInvoke():void
- {
- var nativeApplication:NativeApplication = NativeApplication.nativeApplication;
- nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs);
- }
+ [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 _standardButtonWidth:Number = 88;
+ private var _lastTag:String;
+ private var _lastPublicMessage:String;
+ public function set lastPublicMessage(s:String):void
+ {
+ var tag:String;
+ var c:int;
- public function setButtonWidths():void
- {
- var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton);
+ c = s.indexOf("[");
+ if (c != -1)
+ {
+ var c2:int = s.indexOf("] ");
+ if (c2 != -1)
+ {
+ tag = s.substring(c + 1, c2);
+ s = s.substr(c2 + 2);
+ }
+ }
+ if (tag && tag == _lastTag && tag == "get")
+ {
+ _lastPublicMessage += "\n" + s;
+ }
+ else
+ {
+ _lastPublicMessage = s;
+ }
+ _lastTag = tag;
+ dispatchEvent(new Event("messageChanged"));
+ }
- calc.buttonWidth(installLogBtn);
- calc.buttonWidth(openApacheFlexFolderBtn);
+ [Bindable("messageChanged")]
+ public function get lastFilteredPublicMessage():String
+ {
+ return _lastPublicMessage;
+ }
- _standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn, firstStepBackBtn, secondStepBackBtn]);
- }
+ private function getInvoke():void
+ {
+ var nativeApplication:NativeApplication = NativeApplication.nativeApplication;
+ nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs);
+ }
- 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;
- }
- if (s.indexOf("-log=") == 0)
- {
- debugMode = true;
- logFile = s.substring(5);
- }
- }
- var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
- usingDownloadCache = so.data.usingDownloadCache;
- downloadCacheFolder = so.data.downloadCacheFolder;
- userDefaultLanguage = so.data.userDefaultLanguage;
- }
+ [Bindable]
+ private var _standardButtonWidth:Number = 88;
- protected function handleApplicationComplete(event:FlexEvent):void
- {
- CursorManager.setBusyCursor();
- 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();
- }
+ public function setButtonWidths():void
+ {
+ var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton);
- else
- {
- log("Internet connection unavailable");
- abortInstallation("Internet connection unavailable.");
- }
- logVersion();
- }
+ calc.buttonWidth(installLogBtn);
+ calc.buttonWidth(openApacheFlexFolderBtn);
- 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());
- }
- }
+ _standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn, firstStepBackBtn, secondStepBackBtn]);
+ }
- /**
- * 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 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;
+ }
+ if (s.indexOf("-log=") == 0)
+ {
+ debugMode = true;
+ logFile = s.substring(5);
+ }
+ }
+ var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
+ usingDownloadCache = so.data.usingDownloadCache;
+ downloadCacheFolder = so.data.downloadCacheFolder;
+ userDefaultLanguage = so.data.userDefaultLanguage;
+ }
- 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;
- }
+ protected function handleApplicationComplete(event:FlexEvent):void
+ {
+ CursorManager.setBusyCursor();
+ 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();
+ }
+ logVersion();
+ if (!hasInternet)
+ {
+ log("Internet connection unavailable");
+ abortInstallation("Internet connection unavailable.");
+ }
+ }
- private function updateWindowTitle():void
- {
- if (_viewResourceConstants)
- this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]);
- }
+ 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());
+ }
+ }
- protected function selectDefaultLanguageInEmergency():void
- {
- loadLanguage("en_US", loadUSInEmergencyComplete);
- }
+ /**
+ * 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 loadUSInEmergencyComplete():void
- {
- _viewResourceConstants = ViewResourceConstants.instance;
- _viewResourceConstants.update();
- }
+ 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;
+ }
- protected function selectDefaultLanguage():void
- {
- loadLanguage("en_US", loadUSComplete);
- }
+ private function updateWindowTitle():void
+ {
+ if (_viewResourceConstants)
+ {
+ this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]);
+ }
+ }
- private function loadUSComplete():void
- {
- var userLocale:String;
+ protected function selectDefaultLanguageInEmergency():void
+ {
+ loadLanguage("en_US", loadUSInEmergencyComplete);
+ }
- if (userDefaultLanguage)
- {
- userLocale = userDefaultLanguage;
- }
- else
- {
- userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
- }
+ private function loadUSInEmergencyComplete():void
+ {
+ _viewResourceConstants = ViewResourceConstants.instance;
+ _viewResourceConstants.update();
+ }
- if (languageOverride)
- {
- userLocale = languageOverride;
- }
+ protected function selectDefaultLanguage():void
+ {
+ loadLanguage("en_US", loadUSComplete);
+ }
- loadDefaultLanguage(userLocale);
- }
+ private function loadUSComplete():void
+ {
+ var userLocale:String;
- private function loadDefaultLanguage(userLocale:String):void
- {
- loadLanguage(userLocale, defaultLanguageLoaded);
- }
+ if (userDefaultLanguage)
+ {
+ userLocale = userDefaultLanguage;
+ }
+ else
+ {
+ userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
+ }
- private var languageURL:String;
- private var languageID:String;
+ if (languageOverride)
+ {
+ userLocale = languageOverride;
+ }
- private function loadLanguage(userLocale:String, completeFunction:Function):void
- {
- if (languageURL && loader) // busy loading another language
- loader.close();
+ loadDefaultLanguage(userLocale);
+ }
- if (userLocale == "en_US")
- {
- var ba:ByteArray = new en_US_Properties() as ByteArray;
- var data:String = ba.readUTFBytes(ba.bytesAvailable);
- installLanguage(userLocale, data);
- completeFunction();
- return;
- }
- var n:int = supportedLanguages.length;
- for (var i:int = 0; i < n; i++)
- {
- if (supportedLanguages[i].data == userLocale)
- {
- languageID = userLocale;
- languageURL = supportedLanguages[i].path;
- var url:URLRequest = new URLRequest(languageURL);
- loader = new URLLoader();
- loader.dataFormat = URLLoaderDataFormat.TEXT;
- loader.addEventListener(IOErrorEvent.IO_ERROR, languageLoadErrorHandler);
- loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, languageLoadErrorHandler);
- loader.addEventListener(Event.COMPLETE, function (e:Event):void
- {
- languageURL = null;
- installLanguage(userLocale, loader.data);
- completeFunction();
- });
- loader.load(url);
- return;
- }
- }
- completeFunction();
- }
+ private function loadDefaultLanguage(userLocale:String):void
+ {
+ loadLanguage(userLocale, defaultLanguageLoaded);
+ }
- private function installLanguage(userLocale:String, data:String):void
- {
- var resource:ResourceBundle = new ResourceBundle(userLocale, ViewResourceConstants.BUNDLE_NAME);
- var variables:Array;
- if (data.indexOf("\r\n") != -1)
- variables = data.split("\r\n");
- else
- variables = data.split("\n");
- for each (var p:String in variables)
- {
- if (p.charAt(0) == "#")
- continue;
+ private var languageURL:String;
+ private var languageID:String;
- var c:int = p.indexOf("=");
- if (c != -1)
- {
- var key:String = p.substr(0, c);
- var value:String = p.substr(c + 1);
- while (value.indexOf("\\n") != -1)
- value = value.replace("\\n", "\n");
- resource.content[key] = value;
- }
- }
+ private function loadLanguage(userLocale:String, completeFunction:Function):void
+ {
+ if (languageURL && loader) // busy loading another language
+ {
+ loader.close();
+ }
- resourceManager.addResourceBundle(resource);
- }
+ if (userLocale == "en_US")
+ {
+ var ba:ByteArray = new en_US_Properties() as ByteArray;
+ var data:String = ba.readUTFBytes(ba.bytesAvailable);
+ installLanguage(userLocale, data);
+ completeFunction();
+ return;
+ }
+ var n:int = supportedLanguages.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ if (supportedLanguages[i].data == userLocale)
+ {
+ languageID = userLocale;
+ languageURL = supportedLanguages[i].path;
+ var url:URLRequest = new URLRequest(languageURL);
+ loader = new ApacheURLLoader();
+ loader.dataFormat = URLLoaderDataFormat.TEXT;
+ loader.addEventListener(IOErrorEvent.IO_ERROR, languageLoadErrorHandler);
+ loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, languageLoadErrorHandler);
+ loader.addEventListener(Event.COMPLETE, function (e:Event):void
+ {
+ languageURL = null;
+ installLanguage(userLocale, loader.data);
+ completeFunction();
+ });
+ loader.load(url);
+ return;
+ }
+ }
+ completeFunction();
+ }
- private function languageLoadErrorHandler(event:Event):void
- {
- log("Unable to load language file " + languageURL);
- log(event.toString());
- abortInstallation("Unable to load language file " + languageURL);
- }
+ private function installLanguage(userLocale:String, data:String):void
+ {
+ var resource:ResourceBundle = new ResourceBundle(userLocale, ViewResourceConstants.BUNDLE_NAME);
+ var variables:Array;
+ if (data.indexOf("\r\n") != -1)
+ {
+ variables = data.split("\r\n");
+ }
+ else
+ {
+ variables = data.split("\n");
+ }
+ for each (var p:String in variables)
+ {
+ if (p.charAt(0) == "#")
+ {
+ continue;
+ }
- private function defaultLanguageLoaded():void
- {
- resourceManager.localeChain = [ViewResourceConstants.DEFAULT_LANGUAGE];
+ var c:int = p.indexOf("=");
+ if (c != -1)
+ {
+ var key:String = p.substr(0, c);
+ var value:String = p.substr(c + 1);
+ while (value.indexOf("\\n") != -1)
+ {
+ value = value.replace("\\n", "\n");
+ }
+ resource.content[key] = value;
+ }
+ }
- var userLocale:String;
+ resourceManager.addResourceBundle(resource);
+ }
- if (userDefaultLanguage)
- {
- userLocale = userDefaultLanguage;
- }
- else
- {
- userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
- }
+ private function languageLoadErrorHandler(event:Event):void
+ {
+ log("Unable to load language file " + languageURL);
+ log(event.toString());
+ abortInstallation("Unable to load language file " + languageURL);
+ }
- if (languageOverride)
- {
- userLocale = languageOverride;
- }
- log("Using Locale: " + userLocale);
+ private function defaultLanguageLoaded():void
+ {
+ resourceManager.localeChain = [ViewResourceConstants.DEFAULT_LANGUAGE];
- var n:int = supportedLanguages.length;
- for (var i:int = 0; i < n; i++)
- {
- if (supportedLanguages[i].data == userLocale)
- {
- _langSelect.selectedIndex = i;
+ var userLocale:String;
- resourceManager.localeChain = [userLocale, "en_US"];
+ if (userDefaultLanguage)
+ {
+ userLocale = userDefaultLanguage;
+ }
+ else
+ {
+ userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
+ }
- break;
- }
- }
- _viewResourceConstants = ViewResourceConstants.instance;
+ if (languageOverride)
+ {
+ userLocale = languageOverride;
+ }
+ log("Using Locale: " + userLocale);
- resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update);
+ var n:int = supportedLanguages.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ if (supportedLanguages[i].data == userLocale)
+ {
+ _langSelect.selectedIndex = i;
- _viewResourceConstants.update();
- setButtonWidths();
- directoryBtn.enabled = true;
+ resourceManager.localeChain = [userLocale, "en_US"];
- updateWindow();
+ break;
+ }
+ }
+ _viewResourceConstants = ViewResourceConstants.instance;
- _mirrorURLUtil.logMessages = new LogMessagesVO(_viewResourceConstants.FETCH_MIRROR_CGI, _viewResourceConstants.FETCH_MIRROR_CGI_DONE,
- _viewResourceConstants.FETCH_MIRROR_CGI_ERROR);
+ resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update);
- _mirrorURLUtil.getMirrorURL(Constants.APACHE_FLEX_URL + _mirrorURLCGI, getMirrorURLResultHandler);
- CursorManager.removeBusyCursor();
+ _viewResourceConstants.update();
+ setButtonWidths();
+ directoryBtn.enabled = true;
- checkValidOS();
- }
+ updateWindow();
- protected function updateWindow():void
- {
- updateWindowTitle();
+ _mirrorURLUtil.logMessages = new LogMessagesVO(_viewResourceConstants.FETCH_MIRROR_CGI, _viewResourceConstants.FETCH_MIRROR_CGI_DONE,
+ _viewResourceConstants.FETCH_MIRROR_CGI_ERROR);
- this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2;
- this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2;
- }
+ _mirrorURLUtil.getMirrorURL(Constants.APACHE_FLEX_URL + _mirrorURLCGI, getMirrorURLResultHandler);
+ CursorManager.removeBusyCursor();
- protected function loadXML():void
- {
- var request:URLRequest;
+ checkValidOS();
+ }
- if (configOverride != "")
- {
- request = new URLRequest(configOverride);
- }
- else
- {
- request = new URLRequest(Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
- }
+ protected function updateWindow():void
+ {
+ updateWindowTitle();
- _loader = new URLLoader();
+ this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2;
+ this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2;
+ }
- 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);
- }
+ protected function loadXML():void
+ {
+ var request:URLRequest;
- _loader.addEventListener(IOErrorEvent.IO_ERROR, xmlError, false, 0, true);
- _loader.addEventListener(Event.COMPLETE, xmlLoaded, false, 0, true);
- }
+ 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);
+ }
- 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());
- }
+ _loader = new ApacheURLLoader();
- protected function xmlLoaded(event:Event):void
- {
- if (setXMLVariables())
- {
- _langSelect.dataProvider = supportedLanguages;
- _langSelect.selectedIndex = getIndexOfEnUS();
- _langSelect.enabled = true;
- defineResourceManagerDefaultLanguage();
- }
- }
+ 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);
+ }
- protected function checkValidOS():void
- {
- if (_os.isOther())
- log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM);
- }
+ _loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, xmlLoadStatus, false, 0, true);
+ _loader.addEventListener(IOErrorEvent.IO_ERROR, xmlError, false, 0, true);
+ _loader.addEventListener(Event.COMPLETE, xmlLoaded, false, 0, true);
+ }
- private function devBuildFilterFunction(o:Object):Boolean
- {
- return !o.devBuild;
- }
+ protected function xmlLoadStatus(event:HTTPStatusEvent):void
+ {
+ if (event.status >= 400)
+ {
+ log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
+ log("\tServer Status: " + event.status);
+ }
+ }
- private function debugModeHandler(event:Event):void
- {
- debugMode = true;
- customMenuItem3.caption = "Verbose Logging Enabled";
- }
+ 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());
+ }
- private function debugProgressHandler(event:Event):void
- {
- logProgressEvents = true;
- customMenuItem4.caption = "Logging Progress Events";
- }
+ protected function xmlLoaded(event:Event):void
+ {
+ if (setXMLVariables())
+ {
+ _langSelect.dataProvider = supportedLanguages;
+ _langSelect.selectedIndex = getIndexOfEnUS();
+ _langSelect.enabled = true;
+ defineResourceManagerDefaultLanguage();
+ }
+ }
- private function devBuildShowHandler(event:Event):void
- {
- var item:Object = flexVersion.selectedItem;
- FLEX_VERSIONS.filterFunction = null;
- FLEX_VERSIONS.refresh();
- flexVersion.selectedItem = item;
- customMenuItem1.caption = "Showing Dev Builds";
- }
+ protected function checkValidOS():void
+ {
+ if (_os.isOther())
+ {
+ log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM);
+ }
+ }
- private function downloadCacheHandler(event:Event):void
- {
- var dlg:CacheDialog = new CacheDialog();
- dlg.addEventListener(Event.COMPLETE, updateDownloadCache);
- PopUpManager.addPopUp(dlg, this, true);
- PopUpManager.centerPopUp(dlg);
- dlg.cb.selected = usingDownloadCache;
- dlg.folder.text = downloadCacheFolder;
- }
+ private function devBuildFilterFunction(o:Object):Boolean
+ {
+ return !o.devBuild;
+ }
- private function updateDownloadCache(event:Event):void
- {
- downloadCacheFolder = event.target.folder.text;
- usingDownloadCache = event.target.cb.selected;
- var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
- so.data.usingDownloadCache = usingDownloadCache;
- so.data.downloadCacheFolder = downloadCacheFolder;
- so.flush();
- }
+ private function debugModeHandler(event:Event):void
+ {
+ debugMode = true;
+ customMenuItem3.caption = "Verbose Logging Enabled";
+ }
- protected function setXMLVariables():Boolean
- {
- try
- {
- var data:XML = XML(_loader.data);
- }
- catch (e:Error)
- {
- log("Error parsing configuration file");
- abortInstallation("Error parsing configuration file");
- return false;
- }
- var keepGoing:Boolean = true;
- if (firstTime)
- {
- firstTime = false;
+ private function debugProgressHandler(event:Event):void
+ {
+ logProgressEvents = true;
+ customMenuItem4.caption = "Logging Progress Events";
+ }
- _latestVersion = data.version.latest.toString();
+ private function devBuildShowHandler(event:Event):void
+ {
+ var item:Object = flexVersion.selectedItem;
+ FLEX_VERSIONS.filterFunction = null;
+ FLEX_VERSIONS.refresh();
+ flexVersion.selectedItem = item;
+ customMenuItem1.caption = "Showing Dev Builds";
+ }
- installerAppPath = data.installer.(@name == 'SDKInstallerApp').@path.toString();
- installerAppFileName = data.installer.(@name == 'SDKInstallerApp').@file.toString();
+ private function downloadCacheHandler(event:Event):void
+ {
+ var dlg:CacheDialog = new CacheDialog();
+ dlg.addEventListener(Event.COMPLETE, updateDownloadCache);
+ PopUpManager.addPopUp(dlg, this, true);
+ PopUpManager.centerPopUp(dlg);
+ dlg.cb.selected = usingDownloadCache;
+ dlg.folder.text = downloadCacheFolder;
+ }
- _mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI').@file.toString();
+ private function updateDownloadCache(event:Event):void
+ {
+ downloadCacheFolder = event.target.folder.text;
+ usingDownloadCache = event.target.cb.selected;
+ var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
+ so.data.usingDownloadCache = usingDownloadCache;
+ so.data.downloadCacheFolder = downloadCacheFolder;
+ so.flush();
+ }
- 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);
+ protected function setXMLVariables():Boolean
+ {
+ try
+ {
+ var data:XML = XML(_loader.data);
+ }
+ catch (e:Error)
+ {
+ log("Error parsing configuration file");
+ abortInstallation("Error parsing configuration file");
+ return false;
+ }
+ var keepGoing:Boolean = true;
+ if (firstTime)
+ {
+ firstTime = false;
- var contextMenuCustomItems:Array = ContextMenu(contextMenu).customItems;
- contextMenuCustomItems.push(customMenuItem1);
- contextMenuCustomItems.push(customMenuItem2);
- contextMenuCustomItems.push(customMenuItem3);
- contextMenuCustomItems.push(customMenuItem4);
+ _latestVersion = data.version.latest.toString();
- var name:String;
- var versionString:String;
- var versionID:String;
+ installerAppPath = data.installer.(@name == 'SDKInstallerApp').@path.toString();
+ installerAppFileName = data.installer.(@name == 'SDKInstallerApp').@file.toString();
- var languages:XMLList = data.languages.children();
- for each (var lang:XML in languages)
- {
- var item:Object = {
- label: lang.@name.toString(),
- data: lang.@id.toString(),
- path: lang.@path.toString()
- };
- supportedLanguages.addItem(item);
- }
+ _mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI').@file.toString();
- 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 displayVersion:String = airVersion.@displayVersion.toString();
- versionString = airVersion.@version.toString();
- versionID = null;
- if (airVersion.@versionID.length() > 0)
- versionID = airVersion.@versionID.toString();
- 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
- });
- }
+ 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);
- if (this.airVersion.selectedIndex == -1)
- {
- this.airVersion.selectedIndex = airVersions.indexOf(selected);
- }
+ var contextMenuCustomItems:Array = ContextMenu(contextMenu).customItems;
+ contextMenuCustomItems.push(customMenuItem1);
+ contextMenuCustomItems.push(customMenuItem2);
+ contextMenuCustomItems.push(customMenuItem3);
+ contextMenuCustomItems.push(customMenuItem4);
- var flexData:XMLList = data.products.children();
- var selectedFlexVersion:int;
- for each (var productData:XML in flexData)
- {
- var productName:String = productData.@name.toString();
- var productPrefix:String = productData.@prefix.toString();
- var productVersionList:XMLList = productData.versions.children();
- var isOverlay:Boolean = productData.@overlay.toString() == "true";
- var needsAIR:Boolean = productData.@needsAIR.toString() != "false";
- var needsFlash:Boolean = productData.@needsFlash.toString() != "false";
- var icon:String = productData.@icon.toString();
- for each (var productVersion:XML in productVersionList)
- {
- var shortName:String = productVersion.@file.toString();
- var fileName:String = shortName + (_os.isWindows() ? Constants.ARCHIVE_EXTENSION_WIN : Constants.ARCHIVE_EXTENSION_MAC);
- versionString = productVersion.@version.toString();
- var label:String = productName + " " + versionString;
- var ver:String = fileName.substr(productPrefix.length).split("-")[0];
- var path:String = productVersion.@path.toString();
- var devBuild:Boolean = productVersion.@dev.toString() == "true";
- var legacy:Boolean = productVersion.@legacy.toString() == "true";
- var nocache:Boolean = productVersion.@nocache.toString() == "true";
- if (productVersion["@default"].length() == 1)
- selectedFlexVersion = FLEX_VERSIONS.length;
- FLEX_VERSIONS.addItem({
- shortName: shortName, fileName: fileName, label: label, version: ver,
- path: path, overlay: isOverlay, prefix: productPrefix, legacy: legacy, nocache: nocache,
- needsAIR: needsAIR, needsFlash: needsFlash, devBuild: devBuild, icon: icon
- });
- }
- }
+ var name:String;
+ var versionString:String;
+ var versionID:String;
- FLEX_VERSIONS.filterFunction = devBuildFilterFunction;
- FLEX_VERSIONS.refresh();
- flexVersion.validateNow();
+ var languages:XMLList = data.languages.children();
+ for each (var lang:XML in languages)
+ {
+ var item:Object = {
+ label: lang.@name.toString(),
+ data: lang.@id.toString(),
+ path: lang.@path.toString()
+ };
+ supportedLanguages.addItem(item);
+ }
- if (this.flexVersion.selectedIndex == -1)
- {
- this.flexVersion.selectedIndex = selectedFlexVersion;
- }
+ 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 displayVersion:String = airVersion.@displayVersion.toString();
+ versionString = airVersion.@version.toString();
+ versionID = null;
+ if (airVersion.@versionID.length() > 0)
+ {
+ versionID = airVersion.@versionID.toString();
+ }
+ 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
+ });
+ }
- var selectedFlexVersionObject:Object = this.flexVersion.selectedItem;
- updateFlexVersionStrings(selectedFlexVersionObject);
+ if (this.airVersion.selectedIndex == -1)
+ {
+ this.airVersion.selectedIndex = airVersions.indexOf(selected);
+ }
- if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH)
- {
- log(_viewResourceConstants.ERROR_INVALID_SDK_URL);
- keepGoing = false;
- }
+ var flexData:XMLList = data.products.children();
+ var selectedFlexVersion:int;
+ for each (var productData:XML in flexData)
+ {
+ var productName:String = productData.@name.toString();
+ var productPrefix:String = productData.@prefix.toString();
+ var productVersionList:XMLList = productData.versions.children();
+ var isOverlay:Boolean = productData.@overlay.toString() == "true";
+ var needsAIR:Boolean = productData.@needsAIR.toString() != "false";
+ var needsFlash:Boolean = productData.@needsFlash.toString() != "false";
+ var icon:String = productData.@icon.toString();
+ for each (var productVersion:XML in productVersionList)
+ {
+ var shortName:String = productVersion.@file.toString();
+ var fileName:String = shortName + (_os.isWindows() ? Constants.ARCHIVE_EXTENSION_WIN : Constants.ARCHIVE_EXTENSION_MAC);
+ versionString = productVersion.@version.toString();
+ var label:String = productName + " " + versionString;
+ var ver:String = fileName.substr(productPrefix.length).split("-")[0];
+ var path:String = productVersion.@path.toString();
+ var devBuild:Boolean = productVersion.@dev.toString() == "true";
+ var legacy:Boolean = productVersion.@legacy.toString() == "true";
+ var nocache:Boolean = productVersion.@nocache.toString() == "true";
+ if (productVersion["@default"].length() == 1)
+ {
+ selectedFlexVersion = FLEX_VERSIONS.length;
+ }
+ FLEX_VERSIONS.addItem({
+ shortName: shortName, fileName: fileName, label: label, version: ver,
+ path: path, overlay: isOverlay, prefix: productPrefix, legacy: legacy, nocache: nocache,
+ needsAIR: needsAIR, needsFlash: needsFlash, devBuild: devBuild, icon: icon
+ });
+ }
+ }
- 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)
- {
- displayVersion = flashVersion.@displayVersion.toString();
- versionString = flashVersion.@version.toString();
- versionID = null;
- if (flashVersion.@versionID.length() > 0)
- versionID = flashVersion.@versionID.toString();
- flashPlayerVersions.push(versionString);
- 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,
- versionID: versionID, path: flashPath, file: flashFile
- });
- }
- }
+ FLEX_VERSIONS.filterFunction = devBuildFilterFunction;
+ FLEX_VERSIONS.refresh();
+ flexVersion.validateNow();
- if (this.flashPlayerVersion.selectedIndex == -1)
- {
- this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected);
- }
- }
+ if (this.flexVersion.selectedIndex == -1)
+ {
+ this.flexVersion.selectedIndex = selectedFlexVersion;
+ }
- 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;
+ var selectedFlexVersionObject:Object = this.flexVersion.selectedItem;
+ updateFlexVersionStrings(selectedFlexVersionObject);
- 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;
+ if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH)
+ {
+ log(_viewResourceConstants.ERROR_INVALID_SDK_URL);
+ keepGoing = false;
+ }
- 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;
+ 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)
+ {
+ displayVersion = flashVersion.@displayVersion.toString();
+ versionString = flashVersion.@version.toString();
+ versionID = null;
+ if (flashVersion.@versionID.length() > 0)
+ {
+ versionID = flashVersion.@versionID.toString();
+ }
+ flashPlayerVersions.push(versionString);
+ 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,
+ versionID: versionID, path: flashPath, file: flashFile
+ });
+ }
+ }
- 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;
+ if (this.flashPlayerVersion.selectedIndex == -1)
+ {
+ this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected);
+ }
+ }
- SWF_OBJECT_FILE = data.swfobject.@file.toString();
- SWF_OBJECT_URL = data.swfobject.@path.toString();
+ 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;
- //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 = data.OSMF_SWC.@file.toString();
- OSMF_SWC_URL = data.OSMF_SWC.@path.toString();
- _useOSMF2 = false;
- }
- else
- {
- OSMF_SWC_FILE = data["OSMF_SWC_2.0"].@file.toString();
- OSMF_SWC_URL = data["OSMF_SWC_2.0"].@path.toString();
- _useOSMF2 = true;
- }
+ 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;
- BLAZEDS_FILE = data.BlazeDS.@file.toString();
- BLAZEDS_URL = data.BlazeDS.@path.toString();
+ 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;
- AFE_FILE = data.fontswf.afe.@file.toString();
- AFE_URL = data.fontswf.afe.@path.toString();
+ 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;
- AGLJ40_FILE = data.fontswf.aglj40.@file.toString();
- AGLJ40_URL = data.fontswf.aglj40.@path.toString();
+ SWF_OBJECT_FILE = data.swfobject.@file.toString();
+ SWF_OBJECT_URL = data.swfobject.@path.toString();
- FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"].@file.toString();
- FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"].@path.toString();
+ //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 = data.OSMF_SWC.@file.toString();
+ OSMF_SWC_URL = data.OSMF_SWC.@path.toString();
+ _useOSMF2 = false;
+ }
+ else
+ {
+ OSMF_SWC_FILE = data["OSMF_SWC_2.0"].@file.toString();
+ OSMF_SWC_URL = data["OSMF_SWC_2.0"].@path.toString();
+ _useOSMF2 = true;
+ }
- RIDEAU_FILE = data.fontswf.rideau.@file.toString();
- RIDEAU_URL = data.fontswf.rideau.@path.toString();
+ BLAZEDS_FILE = data.BlazeDS.@file.toString();
+ BLAZEDS_URL = data.BlazeDS.@path.toString();
+ AFE_FILE = data.fontswf.afe.@file.toString();
+ AFE_URL = data.fontswf.afe.@path.toString();
- return keepGoing;
- }
+ AGLJ40_FILE = data.fontswf.aglj40.@file.toString();
+ AGLJ40_URL = data.fontswf.aglj40.@path.toString();
- 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;
+ FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"].@file.toString();
+ FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"].@path.toString();
- 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";
+ RIDEAU_FILE = data.fontswf.rideau.@file.toString();
+ RIDEAU_URL = data.fontswf.rideau.@path.toString();
- // 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 keepGoing;
+ }
- return "";
- }
+ 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;
- 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)));
- }
+ 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";
- if (_mirrorURLUtil.errorOccurred)
- {
- abortInstallation("mirrorURLUtil.errorOccurred");
- main();
- }
- else
- {
- updatePaths();
- }
+ // 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;
+ }
- }
+ newSDKSelected = true;
+ }
- 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;
- }
- }
- 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;
- }
- }
+ private function useMirrorPath(path:String):String
+ {
+ if (_useMirror)
+ {
+ return path;
+ }
- if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX)
- {
- installerAppPath = useMirrorPath(_mirrorURLUtil.mirrorURL) + installerAppPath;
- }
+ return "";
+ }
- main();
- }
+ 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)));
+ }
- protected function main():void
- {
+ if (_mirrorURLUtil.errorOccurred)
+ {
+ abortInstallation("mirrorURLUtil.errorOccurred");
+ main();
+ }
+ else
+ {
+ updatePaths();
+ }
- if (shouldUpdate())
- {
- doUpdate();
- }
- }
+ }
- private function logVersion():void
- {
- if (!loggedVersion)
- {
- //Current version
- var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
- var xmlns:Namespace = new Namespace(applicationDescriptor.namespace());
- var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString();
+ 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;
+ }
+ }
+ 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;
+ }
+ }
- // Log the Installer version to help with any support issues that arise.
- log("Installer version " + currentVersion + " (" + _os.os + ")", 0);
- loggedVersion = true;
- }
- }
+ if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX)
+ {
+ installerAppPath = useMirrorPath(_mirrorURLUtil.mirrorURL) + installerAppPath;
+ }
- 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();
+ main();
+ }
- logVersion();
+ protected function main():void
+ {
- var availBuildNumbers:Array = _latestVersion.split(".");
- var currentBuildNumbers:Array = currentVersion.split(".");
+ if (shouldUpdate())
+ {
+ doUpdate();
+ }
+ }
- 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;
+ private function logVersion():void
+ {
+ if (!loggedVersion)
+ {
+ //Current version
+ 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 doUpdate():void
- {
- var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true));
- updaterDialog.addEventListener("close", handleUpdaterDialogClose);
- updaterDialog.latestVersion = _latestVersion;
- PopUpManager.centerPopUp(updaterDialog);
- }
+ 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 handleUpdaterDialogClose(event:Event):void
- {
- PopUpManager.removePopUp(IFlexDisplayObject(event.target));
- }
+ logVersion();
- protected function handleInstallBtnClick(event:MouseEvent):void
- {
- var airVersionID:String = airVersion.selectedItem.versionID;
- var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
+ var availBuildNumbers:Array = _latestVersion.split(".");
+ var currentBuildNumbers:Array = currentVersion.split(".");
- log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY);
+ 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;
- 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);
- }
+ protected function doUpdate():void
+ {
+ var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true));
+ updaterDialog.addEventListener("close", handleUpdaterDialogClose);
+ updaterDialog.latestVersion = _latestVersion;
+ PopUpManager.centerPopUp(updaterDialog);
+ }
- 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 handleUpdaterDialogClose(event:Event):void
+ {
+ PopUpManager.removePopUp(IFlexDisplayObject(event.target));
+ }
- protected function handleZeroStepNextBtnClick(event:MouseEvent):void
- {
- directoryBtn.enabled = false;
+ protected function handleInstallBtnClick(event:MouseEvent):void
+ {
+ var airVersionID:String = airVersion.selectedItem.versionID;
+ var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
- AIR_VERSION = airVersion.selectedItem.version;
- var airVersionID:String = airVersion.selectedItem.versionID;
- FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
- var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
+ log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY);
- setXMLVariables(); // as AIR and Flash version may of changed
+ if (flexVersion.selectedItem.needsAIR)
+ {
+ if (airVersionID)
+ {
+ log("AIR version " + airVersionID);
+ }
+ else
+ {
+ log("AIR version " + AIR_VERSION);
+ }
+ }
- if (!legacy)
- {
- var req:URLRequest = new URLRequest(APACHE_FLEX_BIN_INSTALLER_URL);
- loader = new URLLoader();
- loader.dataFormat = URLLoaderDataFormat.TEXT;
- loader.addEventListener(Event.COMPLETE, handleInstallerXMLLoaded);
- loader.addEventListener(ErrorEvent.ERROR, handleInstallerXMLError);
- loader.addEventListener(IOErrorEvent.IO_ERROR, handleInstallIOXMLError);
+ if (flexVersion.selectedItem.needsFlash)
+ {
+ if (flashVersionID)
+ {
+ log("Flash Player version " + flashVersionID);
+ }
+ else
+ {
+ log("Flash Player version " + FLASH_PLAYER_VERSION);
+ }
+ }
- loader.load(req);
- }
- else
- {
- showDirectoryState();
- }
- }
+ 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 handleFirstStepBackBtnClick(event:MouseEvent):void
- {
- showDefaultState();
- }
+ protected function handleZeroStepNextBtnClick(event:MouseEvent):void
+ {
+ directoryBtn.enabled = false;
- protected function handleSecondStepBackBtnClick(event:MouseEvent):void
- {
- showDirectoryState();
- }
+ AIR_VERSION = airVersion.selectedItem.version;
+ var airVersionID:String = airVersion.selectedItem.versionID;
+ FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
+ var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
- protected function handleFirstStepNextBtnClick(event:MouseEvent):void
- {
- // Quick check to see if the selected directory is writable
- try
- {
- var f:File = new File(_flexHome + File.separator + "flex.txt");
- checkDirWritable(f);
- }
- catch (e:Error)
- {
- log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
- flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
- flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
- updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
- return;
- }
+ setXMLVariables(); // as AIR and Flash version may of changed
- showOptionsState();
- }
+ if (!legacy)
+ {
+ if (newSDKSelected)
+ {
+ var req:URLRequest = new URLRequest(APACHE_FLEX_BIN_INSTALLER_URL);
+ loader = new ApacheURLLoader();
+ loader.dataFormat = URLLoaderDataFormat.TEXT;
+ loader.addEventListener(Event.COMPLETE, handleInstallerXMLLoaded);
+ loader.addEventListener(ErrorEvent.ERROR, handleInstallerXMLError);
+ loader.addEventListener(IOErrorEvent.IO_ERROR, handleInstallerXMLError);
- protected function handleInstallerXMLLoaded(event:Event):void
- {
- var data:XML = XML(event.target.data);
- var localeList:Array = resourceManager.localeChain;
- _installerComponentsDataProvider = new ArrayCollection();
- var compList:XMLList = data.component;
- for each (var comp:XML in compList)
- {
- var vo:InstallerComponentVO = new InstallerComponentVO(getLocalizedString(comp, "label"),
- getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
- getLocalizedString(comp, "licenseURL"),
- comp.@id.toString(), comp.@required.toString() == "true");
- licensePropertyMap[comp.@property.toString()] = vo;
- _installerComponentsDataProvider.addItem(vo);
- }
- usingXML = true;
- installStepsData = data.steps.step;
- var strings:XMLList = data.strings.string;
- for each (var x:XML in strings)
- {
- var id:String = x.@id.toString();
- if (id in _viewResourceConstants)
- {
- var val:String = getLocalizedString(x, null);
- _viewResourceConstants[id] = val;
- var pce:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, id, "", val);
- _viewResourceConstants.dispatchEvent(pce);
- }
- }
- var props:XMLList = data.properties.property;
- for each (x in props)
- {
- additionalProps[x.@name.toString()] = x.@value.toString();
- }
- currentState = "directoryState";
- }
+ loader.load(req);
+ }
+ }
+ else
+ {
+ showDirectoryState();
+ }
+ }
- private function getLocalizedString(xml:XML, propName:String):String
- {
- var compBundle:XMLList;
- for each (var locale:String in resourceManager.localeChain)
- {
- compBundle = xml[locale];
- if (compBundle.length() == 1)
- {
- if (propName)
- {
- var xmlList:XMLList = compBundle[0][propName];
- if (xmlList.length() == 1)
- {
- return xmlList[0].toString();
- }
- }
- else
- {
- var s:String = compBundle[0].toString();
- if (s.length > 0)
- return s;
- }
- }
- }
- return "";
- }
+ protected function handleFirstStepBackBtnClick(event:MouseEvent):void
+ {
+ showDefaultState();
+ }
- protected function handleInstallerXMLError(event:Event):void
- {
- log("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
- abortInstallation("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
- }
+ protected function handleSecondStepBackBtnClick(event:MouseEvent):void
+ {
+ showDirectoryState();
+ }
- protected function handleInstallIOXMLError(event:IOErrorEvent):void
- {
- // Stream Error 2032 here means that the SSL connection can't be created. TLS/SSL error?
- log("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL + " with " + event.text);
- abortInstallation("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
- }
+ protected function handleFirstStepNextBtnClick(event:MouseEvent):void
+ {
+ // Quick check to see if the selected directory is writable
+ try
+ {
+ var f:File = new File(_flexHome + File.separator + "flex.txt");
+ checkDirWritable(f);
+ }
+ catch (e:Error)
+ {
+ log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
+ flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
+ flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS;
+ updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
+ return;
+ }
- protected function showDefaultState():void
- {
- zeroStepGroup.visible = true;
- directoryBtn.enabled = true;
- currentState = "default";
- }
+ showOptionsState();
+ }
- protected function showDirectoryState():void
- {
- initiateInstallStepsActivity();
- if (currentState != "optionsState")
- {
- initializeInstallerComponentsDataProvider();
- }
- currentState = "directoryState";
- }
+ protected function handleInstallerXMLLoaded(event:Event):void
+ {
+ var data:XML = XML(event.target.data);
+ var localeList:Array = resourceManager.localeChain;
+ _installerComponentsDataProvider = new ArrayCollection();
+ compList = data.component.copy();
+ for each (var comp:XML in compList)
+ {
+ var vo:InstallerComponentVO = new InstallerComponentVO(getLocalizedString(comp, "label"),
+ getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
+ getLocalizedString(comp, "licenseURL"),
+ comp.@id.toString(), comp.@required.toString() == "true");
+ licensePropertyMap[comp.@property.toString()] = vo;
+ _installerComponentsDataProvider.addItem(vo);
+ }
+ usingXML = true;
+ // progressLabels = data.progressLabels[0];
+ installStepsData = data.steps.step;
+ var strings:XMLList = data.strings.string;
+ for each (var x:XML in strings)
+ {
+ var id:String = x.@id.toString();
+ if (id in _viewResourceConstants)
+ {
+ var val:String = getLocalizedString(x, null);
+ _viewResourceConstants[id] = val;
+ var pce:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, id, "", val);
+ _viewResourceConstants.dispatchEvent(pce);
+ }
+ }
+ var props:XMLList = data.properties.property;
+ for each (x in props)
+ {
+ additionalProps[x.@name.toString()] = x.@value.toString();
+ }
+ currentState = "directoryState";
+ System.disposeXML(data);
+ }
- protected function showOptionsState():void
- {
- currentState = "optionsState";
- checkIfAllRequiredComponentsPromptsAnswered();
- }
+ private function getLocalizedString(xml:XML, propName:String):String
+ {
+ var compBundle:XMLList;
+ for each (var locale:String in resourceManager.localeChain)
+ {
+ compBundle = xml[locale];
+ if (compBundle.length() == 1)
+ {
+ if (propName)
+ {
+ var xmlList:XMLList = compBundle[0][propName];
+ if (xmlList.length() == 1)
+ {
+ return xmlList[0].toString();
+ }
+ }
+ else
+ {
+ var s:String = compBundle[0].toString();
+ if (s.length > 0)
+ {
+ return s;
+ }
+ }
+ }
+ }
+ return "";
+ }
- protected function initiateInstallStepsActivity():void
- {
- _installationSteps = new ArrayCollection();
+ protected function handleInstallerXMLError(event:Event):void
+ {
+ log("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
+ abortInstallation("Unable to load " + APACHE_FLEX_BIN_INSTALLER_URL);
+ }
- _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 showDefaultState():void
+ {
+ zeroStepGroup.visible = true;
+ directoryBtn.enabled = true;
+ currentState = "default";
+ }
- protected function resetInstallStepsActivity():void
- {
- for each(var step:StepItem in _installationSteps)
- {
- step.status = StepItem.NORMAL;
- }
- }
+ protected function showDirectoryState():void
+ {
+ initiateInstallStepsActivity();
+ if (currentState != "optionsState")
+ {
+ initializeInstallerComponentsDataProvider();
+ }
+ currentState = "directoryState";
+ }
- protected function addOptionalComponentsToInstallSteps():void
- {
- if (usingXML)
- {
- _installationSteps = new ArrayCollection();
+ protected function showOptionsState():void
+ {
+ currentState = "optionsState";
+ checkIfAllRequiredComponentsPromptsAnswered();
+ }
- _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));
+ protected function initiateInstallStepsActivity():void
+ {
+ _installationSteps = new ArrayCollection();
- for each (var stepData:XML in installStepsData)
- {
- var propName:String = stepData.@property.toString();
- if (!propName || InstallerComponentVO(licensePropertyMap[propName]).selected)
- {
- var si:StepItem = new StepItem(getLocalizedString(stepData, null));
- _installationSteps.addItem(si);
- stepIDs.push(stepData.@id.toString());
- stepLabels.push(si.label);
- }
- }
- return;
- }
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (!obj.required && obj.selected)
- {
- _installationSteps.addItem(new StepItem(obj.label));
- }
- }
- }
+ _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 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 resetInstallStepsActivity():void
+ {
+ for each(var step:StepItem in _installationSteps)
+ {
+ step.status = StepItem.NORMAL;
+ }
+ }
- protected function install():void
- {
- createDirectories();
- }
+ protected function addOptionalComponentsToInstallSteps():void
+ {
+ if (usingXML)
+ {
+ _installationSteps = new ArrayCollection();
- protected function handleAirVersionChange(event:Event):void
- {
- AIR_VERSION = airVersion.selectedItem.version;
+ _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));
- // Match AIR and Flash versions
- if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex)
- {
- flashPlayerVersion.selectedIndex = airVersion.selectedIndex;
- FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version;
- }
- }
+ for each (var stepData:XML in installStepsData)
+ {
+ var propName:String = stepData.@property.toString();
+ if (!propName || InstallerComponentVO(licensePropertyMap[propName]).selected)
+ {
+ var si:StepItem = new StepItem(getLocalizedString(stepData, null));
+ _installationSteps.addItem(si);
+ stepIDs.push(stepData.@id.toString());
+ stepLabels.push(si.label);
+ }
+ }
+ return;
+ }
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (!obj.required && obj.selected)
+ {
+ _installationSteps.addItem(new StepItem(obj.label));
+ }
+ }
+ }
- protected function handleFlashPlayerVersionChange(event:Event):void
- {
- FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
+ protected function initializeInstallerComponentsDataProvider():void
+ {
+ var versionNum:int = int(APACHE_FLEX_BIN_DISTRO_VERSION.split('.').join(''));
+ _installerComponentsDataProvider = new ArrayCollection();
+ /**
+ * version 4.13.0 of the SDK is when the installer started using the new xml based
+ * way of displaying/updating required or optional components of the installer
+ */
+ if (usingXML && (versionNum >= 4130))
+ {
+ for each (var comp:XML in compList)
+ {
+ var vo:InstallerComponentVO = new InstallerComponentVO(getLocalizedString(comp, "label"),
+ getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
+ getLocalizedString(comp, "licenseURL"),
+ comp.@id.toString(), comp.@required.toString() == "true");
+ licensePropertyMap[comp.@property.toString()] = vo;
+ _installerComponentsDataProvider.addItem(vo);
+ }
+ }
+ else
+ {
+ _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_BLAZEDS,
+ _viewResourceConstants.ASK_BLAZEDS,
+ _viewResourceConstants.LICENSE_BLAZEDS,
+ _viewResourceConstants.LICENSE_URL_BLAZEDS,
+ "STEP_OPTIONAL_INSTALL_BLAZEDS", false));
+ _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_REQUIRED_INSTALL_OFL_FONTS,
+// _viewResourceConstants.ASK_OFL_FONTS,
+// _viewResourceConstants.LICENSE_OFL_FONTS,
+// _viewResourceConstants.LICENSE_URL_OFL_FONTS,
+// "STEP_REQUIRED_INSTALL_OFL_FONTS", true));
+ }
+ }
- // Match AIR and Flash versions
- if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex)
- {
- airVersion.selectedIndex = flashPlayerVersion.selectedIndex;
- AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version;
- }
- }
+ protected function install():void
+ {
+ createDirectories();
+ }
- protected function handleFlexVersionChange(event:Event):void
- {
- 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 handleAirVersionChange(event:Event):void
+ {
+ AIR_VERSION = airVersion.selectedItem.version;
- protected function browseForSDK(event:MouseEvent):void
- {
- var file:File = new File();
+ // Match AIR and Flash versions
+ if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex)
+ {
+ flashPlayerVersion.selectedIndex = airVersion.selectedIndex;
+ FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version;
+ }
+ }
- file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true);
- file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY);
- }
+ protected function handleFlashPlayerVersionChange(event:Event):void
+ {
+ FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
- protected function checkDirWritable(file:File):void
- {
- var ba:ByteArray = new ByteArray();
- ba.writeUTFBytes("1");
- writeFileToDirectory(file, ba);
- file.deleteFile();
- }
+ // Match AIR and Flash versions
+ if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex)
+ {
+ airVersion.selectedIndex = flashPlayerVersion.selectedIndex;
+ AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version;
+ }
+ }
- protected function flexSDKDirSelected(event:Event):void
- {
- var selectedDir:File = File(event.target);
- var overlay:Boolean = flexVersion.selectedItem.overlay;
+ 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;
+ }
- // Quick check to see if the selected directory is writable
- try
- {
- var f:File = new File(selectedDir.nativePath + File.separator + "flex.txt");
- checkDirWritable(f);
- }
- catch (e:Error)
- {
- log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
- log(_viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS);
- flexSDKTxtInput.text = selectedDir.nativePath;
- flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS + " : " + selectedDir.nativePath; // tooltip
- flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS; // field
- updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
- return;
- }
+ protected function browseForSDK(event:MouseEvent):void
+ {
+ var file:File = new File();
- overlaying = 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;
- flexSDKTxtInput.text = selectedDir.nativePath;
- flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_NOT_EMPTY + " : " + selectedDir.nativePath;
- flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_NOT_EMPTY;
- }
- }
- else
- {
- _flexHome = selectedDir.nativePath;
- flexSDKTxtInput.text = _flexHome;
- nextBtn.enabled = true;
- _langSelect.enabled = true;
- flexSDKTxtInput.errorString = "";
- flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
- }
- }
+ file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true);
+ file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY);
+ }
- protected function handleFlexSDXTxtInputChange(event:TextOperationEvent):void
- {
- var tempDir:File;
- var path:String = flexSDKTxtInput.text;
+ protected function checkDirWritable(file:File):void
+ {
+ var ba:ByteArray = new ByteArray();
+ ba.writeUTFBytes("1");
+ writeFileToDirectory(file, ba);
+ file.deleteFile();
+ }
- try
- {
- tempDir = new File(path);
+ protected function flexSDKDirSelected(event:Event):void
+ {
+ var selectedDir:File = File(event.target);
+ var overlay:Boolean = flexVersion.selectedItem.overlay;
- 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;
- }
- }
+ // Quick check to see if the selected directory is writable
+ try
+ {
+ var f:File = new File(selectedDir.nativePath + File.separator + "flex.txt");
+ checkDirWritable(f);
+ }
+ catch (e:Error)
+ {
+ log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
+ log(_viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS);
+ flexSDKTxtInput.text = selectedDir.nativePath;
+ flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS + " : " + selectedDir.nativePath; // tooltip
+ flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS; // field
+ updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
+ return;
+ }
- protected function createDirectories():void
- {
- updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ACTIVE);
+ overlaying = 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;
+ flexSDKTxtInput.text = selectedDir.nativePath;
+ flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_NOT_EMPTY + " : " + selectedDir.nativePath;
+ flexSDKTxtInput.prompt = _viewResourceConstants.ERROR_DIR_NOT_EMPTY;
+ }
+ }
+ else
+ {
+ _flexHome = selectedDir.nativePath;
+ flexSDKTxtInput.text = _flexHome;
+ nextBtn.enabled = true;
+ _langSelect.enabled = true;
+ flexSDKTxtInput.errorString = "";
+ flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
+ }
+ }
- try
- {
- if (!overlaying)
- 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 handleFlexSDXTxtInputChange(event:TextOperationEvent):void
+ {
+ var tempDir:File;
+ var path:String = flexSDKTxtInput.text;
- protected function downloadApacheFlexSDK():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE);
+ try
+ {
+ tempDir = new File(path);
- 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);
- }
+ 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);
- 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);
- }
+ try
+ {
+ if (!overlaying)
+ {
+ 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);
+ }
+ }
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE);
+ protected function downloadApacheFlexSDK():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE);
- updateActivityStep(_viewResourceConstants.STEP_VERIFY_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);
+ }
- 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 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);
+ }
- 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);
- }
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE);
- 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);
- }
+ updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ACTIVE);
- protected function uncompressApacheFlexSDK():void
- {
- if (!_md5CompareUtil.fileIsVerified)
- {
- updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
+ log(_viewResourceConstants.STEP_VERIFY_FLEX_SDK);
- log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
+ _md5CompareUtil.addEventListener(ProgressEvent.PROGRESS, md5VerificationProgressHandler);
+ _md5CompareUtil.verifyMD5(_apacheFlexSDKCompressedFile, APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE, uncompressApacheFlexSDK);
+ }
- abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
- return;
- }
- else
- {
- updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
+ 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);
+ }
+ }
- log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
- }
+ 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);
+ }
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ACTIVE);
+ protected function uncompressApacheFlexSDK():void
+ {
+ if (_md5CompareUtil.validMD5)
+ {
+ if (!_md5CompareUtil.fileIsVerified)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
- try
- {
- log(_viewResourceConstants.INFO_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath);
+ log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
- 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);
- }
- }
+ abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
+ return;
+ }
+ else
+ {
+ updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
+ log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
+ }
+ }
+ else
+ {
+ updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
- protected function handleApacheFlexSDKZipFileUnzipComplete(event:Event):void
- {
- log(_viewResourceConstants.INFO_FINISHED_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath);
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.COMPLETE);
+ log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
+ }
- if (_os.isWindows())
- {
- if (usingXML)
- runInstallerScript();
- else
- downloadAIRRuntimeKitForWindows();
- }
- else
- {
- if (!overlaying)
- {
- /* Copy all files from the unarchived directory to the root */
- var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
- var files:Array = directory.getDirectoryListing();
- for each(var file:File in files)
- {
- file.copyTo(_flexHomeDir.resolvePath(file.name));
- }
- }
- if (usingXML)
- {
- runInstallerScript();
- }
- else
- {
- if (_os.isMac())
- {
- downloadAIRRuntimeKitForMac();
- }
- else
- {
- downloadAIRRuntimeKitForLinux();
- }
- }
- }
- }
+ 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())
+ {
+ if (usingXML)
+ {
+ runInstallerScript();
+ }
+ else
+ {
+ downloadAIRRuntimeKitForWindows();
+ }
+ }
+ else
+ {
+ if (!overlaying)
+ {
+ /* Copy all files from the unarchived directory to the root */
+ var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
+ var files:Array = directory.getDirectoryListing();
+ for each(var file:File in files)
+ {
+ file.copyTo(_flexHomeDir.resolvePath(file.name));
+ }
+ }
+ if (usingXML)
+ {
+ runInstallerScript();
+ }
+ else
+ {
+ if (_os.isMac())
+ {
+ downloadAIRRuntimeKitForMac();
+ }
+ else
+ {
+ downloadAIRRuntimeKitForLinux();
+ }
+ }
+ }
+ }
+
+ protected function handleApacheFlexSDKZipFileUnzipError(error:ErrorEvent = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ERROR);
+ abortInstallation(_viewResourceConstants.STEP_UNZIP_FLEX_SDK + " " + error.toString());
+ }
+
+ protected function runInstallerScript():void
+ {
+ ant = new Ant();
+ ant.output = output;
+
+ var file:File;
+ if (installOverride != "")
+ {
+ file = new File(installOverride);
+ }
+ else if (overlaying)
+ {
+ var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
+ if (_os.isWindows())
+ {
+ file = _flexTempDir.resolvePath("installer.xml");
+ }
+ else
+ {
+ file = directory.resolvePath("installer.xml");
+ }
+ }
+ else
+ {
+ file = _flexHomeDir.resolvePath("installer.xml");
+ }
+ addEventListener(Event.ENTER_FRAME, enterFrameHandler);
+ var context:Object = {installer: true};
+ if (usingDownloadCache)
+ {
+ context["usingDownloadCache"] = usingDownloadCache;
+ context["downloadCacheFolder"] = downloadCacheFolder;
+ }
+ if (configOverride != "")
+ {
+ context["xml.properties"] = configOverride;
+ }
+ if (resourceManager.localeChain.length > 1)
+ {
+ context["bundle"] = resourceManager.localeChain[0];
+ }
+ for (var p:String in licensePropertyMap)
+ {
+ if (InstallerComponentVO(licensePropertyMap[p]).selected)
+ {
+ context[p] = true;
+ }
+ }
+ for (p in additionalProps)
+ {
+ context[p] = additionalProps[p];
+ }
- protected function handleApacheFlexSDKZipFileUnzipError(error:ErrorEvent = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ERROR);
- abortInstallation(_viewResourceConstants.STEP_UNZIP_FLEX_SDK + " " + error.toString());
- }
+ context["air.sdk.version"] = AIR_VERSION;
+ if (airVersion.selectedItem.versionID)
+ {
+ context["air.sdk.versionID"] = airVersion.selectedItem.versionID;
+ }
+ context["air.sdk.url.path"] = airVersion.selectedItem.path;
+ context["air.sdk.url.file"] = airVersion.selectedItem.file;
+ context["flash.sdk.version"] = FLASH_PLAYER_VERSION;
+ if (flashPlayerVersion.selectedItem.versionID)
+ {
+ context["flash.sdk.versionID"] = flashPlayerVersion.selectedItem.versionID;
+ }
+ if (debugMode)
+ {
+ context["verbose"] = true;
+ }
+ if (flashPlayerVersion.selectedItem.path)
+ {
+ context["flash.sdk.url.path"] = flashPlayerVersion.selectedItem.path;
+ context["flash.sdk.url.file"] = flashPlayerVersion.selectedItem.file;
+ }
- protected function runInstallerScript():void
- {
- ant = new Ant();
- ant.output = output;
+ if (file.exists && !ant.processXMLFile(file, context, true))
+ {
+ ant.addEventListener(Event.COMPLETE, completeHandler);
+ ant.addEventListener(ProgressEvent.PROGRESS, progressEventHandler);
+ }
+ else
+ {
+ completeHandler(null);
+ }
+ }
- var file:File;
- if (installOverride != "")
+ private function progressEventHandler(event:ProgressEvent):void
+ {
+ if (logProgressEvents)
+ {
+ log("progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
+ }
+ if (event.bytesTotal > 0)
+ {
+ progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
+ }
+ /*
+ if (ant.progressClass is Copy)
{
- file = new File(installOverride);
+ progressBar.label = getLocalizedString(progressLabels, "Copy");
}
- else if (overlaying)
+ else if (ant.progressClass is Get)
{
- var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
- if (_os.isWindows())
- {
- file = _flexTempDir.resolvePath("installer.xml");
- }
- else
- {
- file = directory.resolvePath("installer.xml");
- }
+ progressBar.label = getLocalizedString(progressLabels, "Get");
}
- else
+ else if (ant.progressClass is Checksum)
{
- file = _flexHomeDir.resolvePath("installer.xml");
+ progressBar.label = getLocalizedString(progressLabels, "Checksum");
}
- addEventListener(Event.ENTER_FRAME, enterFrameHandler);
- var context:Object = {installer: true};
- if (usingDownloadCache)
- {
- context["usingDownloadCache"] = usingDownloadCache;
- context["downloadCacheFolder"] = downloadCacheFolder;
- }
- if (configOverride != "")
- {
- context["xml.properties"] = configOverride;
- }
- if (resourceManager.localeChain.length > 1)
- {
- context["bundle"] = resourceManager.localeChain[0];
- }
- for (var p:String in licensePropertyMap)
- {
- if (InstallerComponentVO(licensePropertyMap[p]).selected)
- context[p] = true;
- }
- for (p in additionalProps)
- context[p] = additionalProps[p];
+ */
+ }
- context["air.sdk.version"] = AIR_VERSION;
- if (airVersion.selectedItem.versionID)
- context["air.sdk.versionID"] = airVersion.selectedItem.versionID;
- context["air.sdk.url.path"] = airVersion.selectedItem.path;
- context["air.sdk.url.file"] = airVersion.selectedItem.file;
- context["flash.sdk.version"] = FLASH_PLAYER_VERSION;
- if (flashPlayerVersion.selectedItem.versionID)
- context["flash.sdk.versionID"] = flashPlayerVersion.selectedItem.versionID;
- if (debugMode)
- context["verbose"] = true;
- if (flashPlayerVersion.selectedItem.path)
- {
- context["flash.sdk.url.path"] = flashPlayerVersion.selectedItem.path;
- context["flash.sdk.url.file"] = flashPlayerVersion.selectedItem.file;
- }
+ private function completeHandler(event:Event):void
+ {
+ if (Ant.currentAnt && !Ant.currentAnt.project.status)
+ {
+ var msg:String = Ant.currentAnt.project.failureMessage;
+ log(msg ? msg : "no failure message provided");
+ if (currentStep > 0)
+ {
+ updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR);
+ }
+ }
+ else if (currentStep == stepLabels.length && currentStep > 0)
+ {
+ updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
+ }
- if (file.exists && !ant.processXMLFile(file, context, true))
- {
- ant.addEventListener(Event.COMPLETE, completeHandler);
- ant.addEventListener(ProgressEvent.PROGRESS, progressEventHandler);
- }
- else
- completeHandler(null);
- }
+ if (Ant.currentAnt)
+ {
+ if (Ant.currentAnt.project.status)
+ {
+ tracker.trackInstallerSuccess(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION, _os.os);
+ }
+ if (Ant.currentAnt.project.failureMessage)
+ {
+ cleanup(!Ant.currentAnt.project.status, "&info=" + escape(Ant.currentAnt.project.failureMessage));
+ }
+ else
+ {
+ cleanup(!Ant.currentAnt.project.status);
+ }
+ }
+ else
+ {
+ cleanup();
+ }
+ }
- private function progressEventHandler(event:ProgressEvent):void
- {
- if (logProgressEvents)
- log("progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
- if (event.bytesTotal > 0)
- progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
- /*
- if (ant.progressClass is Copy)
- {
- progressBar.label = getLocalizedString(progressLabels, "Copy");
- }
- else if (ant.progressClass is Get)
- {
- progressBar.label = getLocalizedString(progressLabels, "Get");
- }
- else if (ant.progressClass is Checksum)
- {
- progressBar.label = getLocalizedString(progressLabels, "Checksum");
- }
- */
- }
+ private var ant:Ant;
- private function completeHandler(event:Event):void
- {
- if (Ant.currentAnt && !Ant.currentAnt.project.status)
- {
- var msg:String = Ant.currentAnt.project.failureMessage;
- log(msg ? msg : "no failure message provided");
- if (currentStep > 0)
- updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR);
- }
- else if (currentStep == stepLabels.length && currentStep > 0)
- updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
+ private function output(s:String):void
+ {
+ var isPublic:Boolean = false;
+ var skipLog:Boolean = !debugMode;
+ if (s.indexOf(":") != -1 && s.charAt(0) == "\n")
+ {
+ // target output is a newline then the target name then a colon
+ if (currentStep < stepLabels.length && "\n" + stepIDs[currentStep] + ":" == s)
+ {
+ if (currentStep > 0)
+ {
+ updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
+ }
+ if (currentStep < stepLabels.length)
+ {
+ updateActivityStep(stepLabels[currentStep++], StepItem.ACTIVE);
+ }
+ }
+ isPublic = false;
+ }
+ else if (s.indexOf("[echo] ") != -1)
+ {
+ s = s.substr(s.indexOf("[echo] ") + 7);
+ isPublic = true;
+ skipLog = false;
+ }
+ else if (s.indexOf("[fail] ") != -1)
+ {
+ s = s.substr(s.indexOf("[fail] ") + 7);
+ isPublic = true;
+ skipLog = false;
+ }
+ log(s, -1, isPublic, skipLog);
+ }
- if (Ant.currentAnt)
- {
- if (Ant.currentAnt.project.status)
- tracker.trackInstallerSuccess(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION, _os.os);
- if (Ant.currentAnt.project.failureMessage)
- cleanup(!Ant.currentAnt.project.status, "&info=" + escape(Ant.currentAnt.project.failureMessage));
- else
- cleanup(!Ant.currentAnt.project.status);
- }
- else
- {
- cleanup();
- }
- }
+ private function enterFrameHandler(event:Event):void
+ {
+ ant.doCallback();
+ }
- private var ant:Ant;
+ protected function downloadAIRRuntimeKitForWindows():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
- private function output(s:String):void
- {
- var isPublic:Boolean = false;
- var skipLog:Boolean = !debugMode;
- if (s.indexOf(":") != -1 && s.charAt(0) == "\n")
- {
- // target output is a newline then the target name then a colon
- if (currentStep < stepLabels.length && "\n" + stepIDs[currentStep] + ":" == s)
- {
- if (currentStep > 0)
- updateActivityStep(stepLabels[currentStep - 1], StepItem.COMPLETE);
- if (currentStep < stepLabels.length)
- updateActivityStep(stepLabels[currentStep++], StepItem.ACTIVE);
- }
- isPublic = false;
- }
- else if (s.indexOf("[echo] ") != -1)
- {
- s = s.substr(s.indexOf("[echo] ") + 7);
- isPublic = true;
- skipLog = false;
- }
- else if (s.indexOf("[fail] ") != -1)
- {
- s = s.substr(s.indexOf("[fail] ") + 7);
- isPublic = true;
- skipLog = false;
- }
- log(s, -1, isPublic, skipLog);
- }
+ try
+ {
+ log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS + ADOBE_AIR_SDK_WIN_URL);
+ _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_WIN_FILE);
+ copyOrDownload(ADOBE_AIR_SDK_WIN_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- private function enterFrameHandler(event:Event):void
- {
- ant.doCallback();
- }
+ protected function downloadAIRRuntimeKitForMac():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
- protected function downloadAIRRuntimeKitForWindows():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
+ try
+ {
+ log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC + ADOBE_AIR_SDK_MAC_URL);
+ _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_MAC_FILE);
+ copyOrDownload(ADOBE_AIR_SDK_MAC_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- try
- {
- log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS + ADOBE_AIR_SDK_WIN_URL);
- _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_WIN_FILE);
- copyOrDownload(ADOBE_AIR_SDK_WIN_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
- abortInstallation();
- }
- }
+ protected function downloadAIRRuntimeKitForLinux():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
- protected function downloadAIRRuntimeKitForMac():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
+ try
+ {
+ log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC + ADOBE_AIR_SDK_LINUX_URL);
+ _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_LINUX_FILE);
+ copyOrDownload(ADOBE_AIR_SDK_LINUX_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- try
- {
- log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC + ADOBE_AIR_SDK_MAC_URL);
- _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_MAC_FILE);
- copyOrDownload(ADOBE_AIR_SDK_MAC_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
- abortInstallation();
- }
- }
+ protected function handleAIRSDKDownload(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_adobeAIRSDKZipFile, event.target.data);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
+ abortInstallation();
+ }
- protected function downloadAIRRuntimeKitForLinux():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.COMPLETE);
- try
- {
- log(_viewResourceConstants.INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC + ADOBE_AIR_SDK_LINUX_URL);
- _adobeAIRSDKZipFile = File.userDirectory.resolvePath(_flexTemp + File.separator + ADOBE_AIR_SDK_LINUX_FILE);
- copyOrDownload(ADOBE_AIR_SDK_LINUX_URL, handleAIRSDKDownload, _adobeAIRSDKZipFile, handleAIRSDKDownloadError);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
- abortInstallation();
- }
- }
+ unzipAdobeAIRSDK();
+ }
- protected function handleAIRSDKDownload(event:Event):void
- {
- try
- {
- writeFileToDirectory(_adobeAIRSDKZipFile, event.target.data);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
- abortInstallation();
- }
+ protected function handleAIRSDKDownloadError(error:* = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK);
+ abortInstallation();
+ }
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.COMPLETE);
+ protected function unzipAdobeAIRSDK():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ACTIVE);
- unzipAdobeAIRSDK();
- }
+ try
+ {
+ if (_os.isWindows())
+ {
+ unzipAdobeAIRSDKWindows()
+ }
+ else
+ {
+ unzipAdobeAIRSDKMac();
+ }
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- protected function handleAIRSDKDownloadError(error:* = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK);
- abortInstallation();
- }
+ protected function unzipAdobeAIRSDKWindows():void
+ {
+ log(_viewResourceConstants.INFO_UNZIPPING + _adobeAIRSDKZipFile.nativePath);
+ unzip(_adobeAIRSDKZipFile, handleAdobeAIRSDKWinZipFileUnzipComplete, handleAdobeAIRSDKWinZipFileUnzipError);
+ }
- protected function unzipAdobeAIRSDK():void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ACTIVE);
+ protected function unzipAdobeAIRSDKMac():void
+ {
+ if (NativeProcess.isSupported)
+ {
+ untar(_adobeAIRSDKZipFile, _flexHomeDir, handleAdobeAIRSDKMacUntarComplete, handleAdobeAIRSDKMacUntarError);
+ }
+ else
+ {
+ log(_viewResourceConstants.ERROR_NATIVE_PROCESS_NOT_SUPPORTED);
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
+ }
+ }
- try
- {
- if (_os.isWindows())
- {
- unzipAdobeAIRSDKWindows()
- }
- else
- {
- unzipAdobeAIRSDKMac();
- }
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
- abortInstallation();
- }
- }
+ protected function handleAdobeAIRSDKMacUntarError(error:ProgressEvent = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
+ abortInstallation();
+ }
- protected function unzipAdobeAIRSDKWindows():void
- {
- log(_viewResourceConstants.INFO_UNZIPPING + _adobeAIRSDKZipFile.nativePath);
- unzip(_adobeAIRSDKZipFile, handleAdobeAIRSDKWinZipFileUnzipComplete, handleAdobeAIRSDKWinZipFileUnzipError);
- }
+ protected function handleAdobeAIRSDKMacUntarComplete(event:Event):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.COMPLETE);
+ log(_viewResourceConstants.INFO_FINISHED_UNTARING + _adobeAIRSDKZipFile.nativePath);
+ downloadPlayerGlobalSWC();
+ }
- protected function unzipAdobeAIRSDKMac():void
- {
- if (NativeProcess.isSupported)
- {
- untar(_adobeAIRSDKZipFile, _flexHomeDir, handleAdobeAIRSDKMacUntarComplete, handleAdobeAIRSDKMacUntarError);
- }
- else
- {
- log(_viewResourceConstants.ERROR_NATIVE_PROCESS_NOT_SUPPORTED);
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
- }
- }
+ protected function handleAdobeAIRSDKWinZipFileUnzipComplete(event:Event):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.COMPLETE);
+ log(_viewResourceConstants.INFO_FINISHED_UNZIPPING + _adobeAIRSDKZipFile.nativePath);
+ downloadPlayerGlobalSWC();
+ }
- protected function handleAdobeAIRSDKMacUntarError(error:ProgressEvent = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
- abortInstallation();
- }
+ protected function handleAdobeAIRSDKWinZipFileUnzipError(error:ErrorEvent = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
+ }
- protected function handleAdobeAIRSDKMacUntarComplete(event:Event):void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.COMPLETE);
- log(_viewResourceConstants.INFO_FINISHED_UNTARING + _adobeAIRSDKZipFile.nativePath);
- downloadPlayerGlobalSWC();
- }
+ protected function downloadPlayerGlobalSWC():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ACTIVE);
- protected function handleAdobeAIRSDKWinZipFileUnzipComplete(event:Event):void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.COMPLETE);
- log(_viewResourceConstants.INFO_FINISHED_UNZIPPING + _adobeAIRSDKZipFile.nativePath);
- downloadPlayerGlobalSWC();
- }
+ try
+ {
+ log(_viewResourceConstants.INFO_INSTALLING_PLAYERGLOBAL_SWC + ADOBE_FB_GLOBALPLAYER_SWC_URL);
+ _fbGlobalPlayerDir = createFolder(_flexHome + File.separator + "frameworks" + File.separator + "libs" + File.separator + "player"
+ + File.separator + FLASH_PLAYER_VERSION);
+ _fbGlobalPlayerFile = File.userDirectory.resolvePath(_fbGlobalPlayerDir.nativePath + File.separator + "playerglobal.swc");
+ copyOrDownload(ADOBE_FB_GLOBALPLAYER_SWC_URL, handlePlayerGlobalDownload, _fbGlobalPlayerFile, handlePlayerGlobalDownloadError);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- protected function handleAdobeAIRSDKWinZipFileUnzipError(error:ErrorEvent = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_UNZIP_AIR_RUNTIME_KIT, StepItem.ERROR);
- }
+ protected function handlePlayerGlobalDownload(event:Event):void
+ {
+ try
+ {
+ var playerGlobalFile:File = File.userDirectory.resolvePath(_fbGlobalPlayerDir.nativePath + File.separator + "playerglobal.swc");
+ writeFileToDirectory(playerGlobalFile, event.target.data);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
+ abortInstallation();
+ }
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.COMPLETE);
+ copyConfigFiles();
+ }
- protected function downloadPlayerGlobalSWC():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ACTIVE);
+ protected function handlePlayerGlobalDownloadError(event:ErrorEvent = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC);
+ abortInstallation();
+ }
- try
- {
- log(_viewResourceConstants.INFO_INSTALLING_PLAYERGLOBAL_SWC + ADOBE_FB_GLOBALPLAYER_SWC_URL);
- _fbGlobalPlayerDir = createFolder(_flexHome + File.separator + "frameworks" + File.separator + "libs" + File.separator + "player"
- + File.separator + FLASH_PLAYER_VERSION);
- _fbGlobalPlayerFile = File.userDirectory.resolvePath(_fbGlobalPlayerDir.nativePath + File.separator + "playerglobal.swc");
- copyOrDownload(ADOBE_FB_GLOBALPLAYER_SWC_URL, handlePlayerGlobalDownload, _fbGlobalPlayerFile, handlePlayerGlobalDownloadError);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
- abortInstallation();
- }
- }
+ protected function changeConfig(frameworksDir:File, file:File, flashPlayerVersion:String, swfVersion:String):void
+ {
+ if (isValidConfigFile(file))
+ {
+ var configFile:FileStream = new FileStream();
+ configFile.open(file, FileMode.READ);
+ var contents:String = configFile.readMultiByte(configFile.bytesAvailable, "utf-8");
+ var playerVersion:RegExp = /<target-player>\d\d\.\d<\/target-player>/;
+ contents = contents.replace(playerVersion, "<target-player>" + flashPlayerVersion + "<\/target-player>");
+ var playerSwfVersion:RegExp = /<swf-version>\d\d<\/swf-version>/;
+ contents = contents.replace(playerSwfVersion, "<swf-version>" + swfVersion + "<\/swf-version>");
+ configFile.close();
+ configFile.open(file, FileMode.WRITE);
+ configFile.writeMultiByte(contents, "utf-8");
+ var copyToFile:File = frameworksDir.resolvePath(file.name);
+ configFile.close();
+ file.copyTo(copyToFile, true);
+ }
+ }
- protected function handlePlayerGlobalDownload(event:Event):void
- {
- try
- {
- var playerGlobalFile:File = File.userDirectory.resolvePath(_fbGlobalPlayerDir.nativePath + File.separator + "playerglobal.swc");
- writeFileToDirectory(playerGlobalFile, event.target.data);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
- abortInstallation();
- }
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.COMPLETE);
- copyConfigFiles();
- }
+ protected function copyConfigFiles():void
+ {
+ var aborted:Boolean = false;
- protected function handlePlayerGlobalDownloadError(event:ErrorEvent = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC);
- abortInstallation();
- }
+ updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.ACTIVE);
- protected function changeConfig(frameworksDir:File, file:File, flashPlayerVersion:String, swfVersion:String):void
- {
- if (isValidConfigFile(file))
- {
- var configFile:FileStream = new FileStream();
- configFile.open(file, FileMode.READ);
- var contents:String = configFile.readMultiByte(configFile.bytesAvailable, "utf-8");
- var playerVersion:RegExp = /<target-player>\d\d\.\d<\/target-player>/;
- contents = contents.replace(playerVersion, "<target-player>" + flashPlayerVersion + "<\/target-player>");
- var playerSwfVersion:RegExp = /<swf-version>\d\d<\/swf-version>/;
- contents = contents.replace(playerSwfVersion, "<swf-version>" + swfVersion + "<\/swf-version>");
- configFile.close();
- configFile.open(file, FileMode.WRITE);
- configFile.writeMultiByte(contents, "utf-8");
- var copyToFile:File = frameworksDir.resolvePath(file.name);
- configFile.close();
- file.copyTo(copyToFile, true);
- }
- }
+ try
+ {
+ //Config files
+ var configFilesDir:File = File.userDirectory.resolvePath(_flexHome + File.separator + "ide" + File.separator + "flashbuilder" + File.separator
+ + "config");
+ var configFiles:Array = configFilesDir.getDirectoryListing();
+ var flexHomeFrameworksDir:File = File.userDirectory.resolvePath(_flexHome + File.separator + "frameworks");
+ log(_viewResourceConstants.INFO_INSTALLING_CONFIG_FILES);
- protected function copyConfigFiles():void
- {
- var aborted:Boolean = false;
+ for each (var file:File in configFiles)
+ {
+ changeConfig(flexHomeFrameworksDir, file, FLASH_PLAYER_VERSION, FLASH_PLAYER_SWF_VERSION);
+ }
- updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.ACTIVE);
+ file = File.userDirectory.resolvePath(_flexHome + File.separator + "flex-sdk-description.xml");
+ var descriptionFile:FileStream = new FileStream();
+ descriptionFile.open(file, FileMode.READ);
+ var contents:String = descriptionFile.readMultiByte(descriptionFile.bytesAvailable, "utf-8");
+ var description:RegExp = /<name>[^<]*<\/name>/;
+ contents = contents.replace(description, "<name>Apache Flex " + APACHE_FLEX_BIN_DISTRO_VERSION + " FP " + FLASH_PLAYER_VERSION + " AIR " + AIR_VERSION + " en_US</name>");
+ descriptionFile.close();
+ descriptionFile.open(file, FileMode.WRITE);
+ descriptionFile.writeMultiByte(contents, "utf-8");
+ descriptionFile.close();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_INSTALL_CONFIG_FILES);
+ abortInstallation();
+ aborted = true;
+ }
- try
- {
- //Config files
- var configFilesDir:File = File.userDirectory.resolvePath(_flexHome + File.separator + "ide" + File.separator + "flashbuilder" + File.separator
- + "config");
- var configFiles:Array = configFilesDir.getDirectoryListing();
- var flexHomeFrameworksDir:File = File.userDirectory.resolvePath(_flexHome + File.separator + "frameworks");
- log(_viewResourceConstants.INFO_INSTALLING_CONFIG_FILES);
+ if (!aborted)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.COMPLETE);
+ downloadSwfObject();
+ }
+ }
- for each (var file:File in configFiles)
- {
- changeConfig(flexHomeFrameworksDir, file, FLASH_PLAYER_VERSION, FLASH_PLAYER_SWF_VERSION);
- }
+ protected function downloadSwfObject():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ACTIVE);
- file = File.userDirectory.resolvePath(_flexHome + File.separator + "flex-sdk-description.xml");
- var descriptionFile:FileStream = new FileStream();
- descriptionFile.open(file, FileMode.READ);
- var contents:String = descriptionFile.readMultiByte(descriptionFile.bytesAvailable, "utf-8");
- var description:RegExp = /<name>[^<]*<\/name>/;
- contents = contents.replace(description, "<name>Apache Flex " + APACHE_FLEX_BIN_DISTRO_VERSION + " FP " + FLASH_PLAYER_VERSION + " AIR " + AIR_VERSION + " en_US</name>");
- descriptionFile.close();
- descriptionFile.open(file, FileMode.WRITE);
- descriptionFile.writeMultiByte(contents, "utf-8");
- descriptionFile.close();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_INSTALL_CONFIG_FILES);
- abortInstallation();
- aborted = true;
- }
+ try
+ {
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [SWF_OBJECT_FILE, SWF_OBJECT_URL]));
+ copyOrDownload(SWF_OBJECT_URL + SWF_OBJECT_FILE, handlSWFObjectDownload, null, handleSWFObjectDownloadError);
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
+ abortInstallation();
+ }
+ }
- if (!aborted)
- {
- updateActivityStep(_viewResourceConstants.STEP_INSTALL_CONFIG_FILES, StepItem.COMPLETE);
- downloadSwfObject();
- }
- }
+ protected function handlSWFObjectDownload(event:Event):void
+ {
+ log(_viewResourceConstants.INFO_DOWNLOADED);
+ var swfObjectZipFile:File = File.userDirectory.resolvePath(_flexTemp + File.separator + SWF_OBJECT_FILE);
+ writeFileToDirectory(swfObjectZipFile, event.target.data);
+ unzip(swfObjectZipFile, handleSWFObjectUnzipComplete, handleSWFObjectZipFileUnzipError);
+ }
- protected function downloadSwfObject():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ACTIVE);
+ protected function handleSWFObjectDownloadError(event:ErrorEvent = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
+ abortInstallation();
+ }
- try
- {
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [SWF_OBJECT_FILE, SWF_OBJECT_URL]));
- copyOrDownload(SWF_OBJECT_URL + SWF_OBJECT_FILE, handlSWFObjectDownload, null, handleSWFObjectDownloadError);
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
- abortInstallation();
- }
- }
+ protected function handleSWFObjectUnzipComplete(event:Event):void
+ {
+ try
+ {
+ var expressInstallFile:File = File.userDirectory.resolvePath(_flexHome + File.separator + "swfobject" + File.separator + "expressInstall.swf");
+ expressInstallFile.copyTo(_flexHomeDir.resolvePath("templates" + File.separator + "swfobject" + File.separator + "expressInstall.swf"));
- protected function handlSWFObjectDownload(event:Event):void
- {
- log(_viewResourceConstants.INFO_DOWNLOADED);
- var swfObjectZipFile:File = File.userDirectory.resolvePath(_flexTemp + File.separator + SWF_OBJECT_FILE);
- writeFileToDirectory(swfObjectZipFile, event.target.data);
- unzip(swfObjectZipFile, handleSWFObjectUnzipComplete, handleSWFObjectZipFileUnzipError);
- }
+ var swfObjectJSFile:File = File.userDirectory.resolvePath(_flexHome + File.separator + "swfobject" + File.separator + "swfobject.js");
+ swfObjectJSFile.copyTo(_flexHomeDir.resolvePath("templates" + File.separator + "swfobject" + File.separator + "swfobject.js"));
- protected function handleSWFObjectDownloadError(event:ErrorEvent = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
- abortInstallation();
- }
+ swfObjectJSFile.copyTo(_flexHomeDir.resolvePath("javascript" + File.separator + "FABridge" + File.separator + "samples" + File.separator
+ + "fabridge" + File.separator + "swfobject" + File.separator + "swfobject.js"));
- protected function handleSWFObjectUnzipComplete(event:Event):void
- {
- try
- {
- var expressInstallFile:File = File.userDirectory.resolvePath(_flexHome + File.separator + "swfobject" + File.separator + "expressInstall.swf");
- expressInstallFile.copyTo(_flexHomeDir.resolvePath("templates" + File.separator + "swfobject" + File.separator + "expressInstall.swf"));
+ var swfObjectDir:File = _flexHomeDir.resolvePath("swfobject");
+ swfObjectDir.deleteDirectory(true);
- var swfObjectJSFile:File = File.userDirectory.resolvePath(_flexHome + File.separator + "swfobject" + File.separator + "swfobject.js");
- swfObjectJSFile.copyTo(_flexHomeDir.resolvePath("templates" + File.separator + "swfobject" + File.separator + "swfobject.js"));
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.COMPLETE);
+ installOSMF();
- swfObjectJSFile.copyTo(_flexHomeDir.resolvePath("javascript" + File.separator + "FABridge" + File.separator + "samples" + File.separator
- + "fabridge" + File.separator + "swfobject" + File.separator + "swfobject.js"));
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
+ abortInstallation();
+ }
- var swfObjectDir:File = _flexHomeDir.resolvePath("swfobject");
- swfObjectDir.deleteDirectory(true);
+ }
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.COMPLETE);
- installOSMF();
+ protected function handleSWFObjectZipFileUnzipError(event:Event):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
+ abortInstallation();
+ }
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
- abortInstallation();
- }
+ protected function installNextOptionalComponent():void
+ {
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (obj.selected && !obj.installed && !obj.aborted)
+ {
+ switch (obj.label)
+ {
+ case _viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS:
+ {
+ installBlazeDS();
+ return;
+ break;
+ }
+ case _viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF:
+ {
+ installFontSwf();
+ return;
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+ }
+ checkAndHandleAllOptionalComponentsInstalled();
+ }
- }
+ protected function installBlazeDS():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ACTIVE);
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [BLAZEDS_FILE, BLAZEDS_URL]));
+ _blazeDSJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + BLAZEDS_FILE);
+ copyOrDownload(BLAZEDS_URL + BLAZEDS_FILE, handleBlazeDSDownloadComplete, null, handleBlazeDSInstallError);
+ }
- protected function handleSWFObjectZipFileUnzipError(event:Event):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT, StepItem.ERROR);
- log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT);
- abortInstallation();
- }
+ protected function handleBlazeDSDownloadComplete(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_blazeDSJarFile, event.target.data);
+ copyFileToOptionalLibDir(_blazeDSJarFile);
+ updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, false);
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.COMPLETE);
+ clearData(ApacheURLLoader(event.target));
+ installNextOptionalComponent();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
+ installNextOptionalComponent();
+ }
+ }
- protected function installNextOptionalComponent():void
- {
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (obj.selected && !obj.installed && !obj.aborted)
- {
- switch (obj.label)
- {
- case _viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS:
- {
- installBlazeDS();
- return;
- break;
- }
- case _viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF:
- {
- installFontSwf();
- return;
- break;
- }
- default:
- {
- break;
- }
- }
- }
- }
- checkAndHandleAllOptionalComponentsInstalled();
- }
+ protected function installFontSwf():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ACTIVE);
+ downloadFontSwfAFEFile();
+ }
- protected function installBlazeDS():void
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ACTIVE);
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [BLAZEDS_FILE, BLAZEDS_URL]));
- _blazeDSJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + BLAZEDS_FILE);
- copyOrDownload(BLAZEDS_URL + BLAZEDS_FILE, handleBlazeDSDownloadComplete, null, handleBlazeDSInstallError);
- }
+ protected function downloadFontSwfAFEFile():void
+ {
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [AFE_FILE, AFE_URL]));
+ _afeJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + AFE_FILE);
+ copyOrDownload(AFE_URL + AFE_FILE, handleFontSWFAFEFileDownloaded, null, handleFontSWFInstallError);
+ }
- protected function handleBlazeDSDownloadComplete(event:Event):void
- {
- try
- {
- writeFileToDirectory(_blazeDSJarFile, event.target.data);
- copyFileToOptionalLibDir(_blazeDSJarFile);
- updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, false);
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.COMPLETE);
- clearData(URLLoader(event.target));
- installNextOptionalComponent();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
- installNextOptionalComponent();
- }
- }
+ protected function handleFontSWFAFEFileDownloaded(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_afeJarFile, event.target.data);
+ copyFileToOptionalLibDir(_afeJarFile);
+ clearData(ApacheURLLoader(event.target));
- protected function installFontSwf():void
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ACTIVE);
- downloadFontSwfAFEFile();
- }
+ downloadFontSwfAGLFile();
- protected function downloadFontSwfAFEFile():void
- {
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [AFE_FILE, AFE_URL]));
- _afeJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + AFE_FILE);
- copyOrDownload(AFE_URL + AFE_FILE, handleFontSWFAFEFileDownloaded, null, handleFontSWFInstallError);
- }
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ installNextOptionalComponent();
+ }
+ }
- protected function handleFontSWFAFEFileDownloaded(event:Event):void
- {
- try
- {
- writeFileToDirectory(_afeJarFile, event.target.data);
- copyFileToOptionalLibDir(_afeJarFile);
- clearData(URLLoader(event.target));
+ protected function downloadFontSwfAGLFile():void
+ {
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [AGLJ40_FILE, AGLJ40_URL]));
+ _aglj40JarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + AGLJ40_FILE);
+ copyOrDownload(AGLJ40_URL + AGLJ40_FILE, handleFontSWFAGLFileDownloaded, null, handleFontSWFInstallError);
+ }
- downloadFontSwfAGLFile();
+ protected function handleFontSWFAGLFileDownloaded(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_aglj40JarFile, event.target.data);
+ copyFileToOptionalLibDir(_aglj40JarFile);
+ clearData(ApacheURLLoader(event.target));
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- installNextOptionalComponent();
- }
- }
+ downloadFontSwfFlexFontKitFile();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ installNextOptionalComponent();
+ }
+ }
- protected function downloadFontSwfAGLFile():void
- {
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [AGLJ40_FILE, AGLJ40_URL]));
- _aglj40JarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + AGLJ40_FILE);
- copyOrDownload(AGLJ40_URL + AGLJ40_FILE, handleFontSWFAGLFileDownloaded, null, handleFontSWFInstallError);
- }
+ protected function downloadFontSwfFlexFontKitFile():void
+ {
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [FLEX_FONTKIT_FILE, FLEX_FONTKIT_URL]));
+ _flexFontKitJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + FLEX_FONTKIT_FILE);
+ copyOrDownload(FLEX_FONTKIT_URL + FLEX_FONTKIT_FILE, handleFontSWFFlexFontKitFileDownloaded, null, handleFontSWFInstallError);
+ }
- protected function handleFontSWFAGLFileDownloaded(event:Event):void
- {
- try
- {
- writeFileToDirectory(_aglj40JarFile, event.target.data);
- copyFileToOptionalLibDir(_aglj40JarFile);
- clearData(URLLoader(event.target));
+ protected function handleFontSWFFlexFontKitFileDownloaded(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_flexFontKitJarFile, event.target.data);
+ copyFileToOptionalLibDir(_flexFontKitJarFile);
+ clearData(ApacheURLLoader(event.target));
- downloadFontSwfFlexFontKitFile();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- installNextOptionalComponent();
- }
- }
+ downloadFontSwfRideauKitFile();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ installNextOptionalComponent();
+ }
+ }
- protected function downloadFontSwfFlexFontKitFile():void
- {
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [FLEX_FONTKIT_FILE, FLEX_FONTKIT_URL]));
- _flexFontKitJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + FLEX_FONTKIT_FILE);
- copyOrDownload(FLEX_FONTKIT_URL + FLEX_FONTKIT_FILE, handleFontSWFFlexFontKitFileDownloaded, null, handleFontSWFInstallError);
- }
+ protected function downloadFontSwfRideauKitFile():void
+ {
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [RIDEAU_FILE, RIDEAU_URL]));
+ _rideauJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + RIDEAU_FILE);
+ copyOrDownload(RIDEAU_URL + RIDEAU_FILE, handleFontSWFRideauFileDownloaded, null, handleFontSWFInstallError);
+ }
- protected function handleFontSWFFlexFontKitFileDownloaded(event:Event):void
- {
- try
- {
- writeFileToDirectory(_flexFontKitJarFile, event.target.data);
- copyFileToOptionalLibDir(_flexFontKitJarFile);
- clearData(URLLoader(event.target));
+ protected function handleFontSWFRideauFileDownloaded(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_rideauJarFile, event.target.data);
+ copyFileToOptionalLibDir(_rideauJarFile);
+ clearData(ApacheURLLoader(event.target));
- downloadFontSwfRideauKitFile();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- installNextOptionalComponent();
- }
- }
+ updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, false);
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.COMPLETE);
+ installNextOptionalComponent();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ installNextOptionalComponent();
+ }
+ }
- protected function downloadFontSwfRideauKitFile():void
- {
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [RIDEAU_FILE, RIDEAU_URL]));
- _rideauJarFile = File.userDirectory.resolvePath(_flexTemp + File.separator + RIDEAU_FILE);
- copyOrDownload(RIDEAU_URL + RIDEAU_FILE, handleFontSWFRideauFileDownloaded, null, handleFontSWFInstallError);
- }
+ protected function installOSMF():void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ACTIVE);
+ downloadOSMFFile();
+ }
- protected function handleFontSWFRideauFileDownloaded(event:Event):void
- {
- try
- {
- writeFileToDirectory(_rideauJarFile, event.target.data);
- copyFileToOptionalLibDir(_rideauJarFile);
- clearData(URLLoader(event.target));
+ protected function downloadOSMFFile():void
+ {
+ _osmfSWFFile = File.userDirectory.resolvePath(_flexTemp + File.separator + OSMF_SWF_FILE.toLowerCase());
- updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, false);
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.COMPLETE);
- installNextOptionalComponent();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- installNextOptionalComponent();
- }
- }
+ log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [OSMF_SWC_FILE, OSMF_SWC_URL]));
+ _osmfSWCFile = File.userDirectory.resolvePath(_flexTemp + File.separator + OSMF_SWC_FILE.toLowerCase());
+ if (_useOSMF2)
+ {
+ downloadOSMF2SWC();
+ }
+ else
+ {
+ copyOrDownload(OSMF_SWC_URL + OSMF_SWC_FILE, handleOSMFSWCFileDownloaded, null, handleOSMFSWCInstallError);
+ }
+ }
- protected function installOSMF():void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ACTIVE);
- downloadOSMFFile();
- }
+ protected function downloadOSMF2SWC():void
+ {
+ var url:String;
+ var httpService:HTTPService = new HTTPService();
+ httpService.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
+ url = httpService.url = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
+ if (usingDownloadCache)
+ {
+ var cacheURL:String;
+ if (url.indexOf("http") == 0)
+ {
+ var c:int = url.indexOf("/");
+ c = url.indexOf("/", c + 1);
+ c = url.indexOf("/", c + 1);
+ // that should find the slash after the server.
+ cacheURL = url.substr(c + 1);
+ if (debugMode)
+ {
+ log("http caching. url = " + cacheURL);
+ }
+ }
+ var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
+ cacheFile = cacheFile.resolvePath(escape(cacheURL));
+ if (debugMode)
+ {
+ log("searching cache for " + cacheFile.url);
+ }
+ if (cacheFile.exists)
+ {
+ if (debugMode)
+ {
+ log("found file in cache");
+ }
+ url = cacheFile.url;
+ actuallyDownloadOSMF2SWC(new URLRequest(url));
+ return;
+ }
+ }
+ httpService.addEventListener(ResultEvent.RESULT, getMirrorInfo);
+ httpService.addEventListener(FaultEvent.FAULT, handleOSMFSWCUnzipError);
+ httpService.send();
+ }
- protected function downloadOSMFFile():void
- {
- _osmfSWFFile = File.userDirectory.resolvePath(_flexTemp + File.separator + OSMF_SWF_FILE.toLowerCase());
+ protected function getMirrorInfo(event:ResultEvent):void
+ {
+ var mirror:String = String(event.result);
+ mirror = mirror.substr(mirror.indexOf('use_mirror=') + 'use_mirror='.length, mirror.length);
+ mirror = mirror.substring(0, mirror.indexOf('">'));
- log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [OSMF_SWC_FILE, OSMF_SWC_URL]));
- _osmfSWCFile = File.userDirectory.resolvePath(_flexTemp + File.separator + OSMF_SWC_FILE.toLowerCase());
- if (_useOSMF2)
- {
- downloadOSMF2SWC();
- }
- else
- {
- copyOrDownload(OSMF_SWC_URL + OSMF_SWC_FILE, handleOSMFSWCFileDownloaded, null, handleOSMFSWCInstallError);
- }
- }
+ var mirrorURL:String = 'http://' + mirror + Constants.SOURCEFORGE_DL_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
+ var refererURL:String = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + '/download?use_mirror=' + mirror;
- protected function downloadOSMF2SWC():void
- {
- var url:String;
- var httpService:HTTPService = new HTTPService();
- httpService.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
- url = httpService.url = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
- if (usingDownloadCache)
- {
- var cacheURL:String;
- if (url.indexOf("http") == 0)
- {
- var c:int = url.indexOf("/");
- c = url.indexOf("/", c + 1);
- c = url.indexOf("/", c + 1);
- // that should find the slash after the server.
- cacheURL = url.substr(c + 1);
- if (debugMode)
- log("http caching. url = " + cacheURL);
- }
- var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
- cacheFile = cacheFile.resolvePath(escape(cacheURL));
- if (debugMode)
- log("searching cache for " + cacheFile.url);
- if (cacheFile.exists)
- {
- if (debugMode)
- log("found file in cache");
- url = cacheFile.url;
- actuallyDownloadOSMF2SWC(new URLRequest(url));
- return;
- }
- }
- httpService.addEventListener(ResultEvent.RESULT, getMirrorInfo);
- httpService.addEventListener(FaultEvent.FAULT, handleOSMFSWCUnzipError);
- httpService.send();
- }
+ var req:URLRequest = new URLRequest(mirrorURL);
+ req.requestHeaders = [new URLRequestHeader('Referer', refererURL)];
- protected function getMirrorInfo(event:ResultEvent):void
- {
- var mirror:String = String(event.result);
- mirror = mirror.substr(mirror.indexOf('use_mirror=') + 'use_mirror='.length, mirror.length);
- mirror = mirror.substring(0, mirror.indexOf('">'));
+ actuallyDownloadOSMF2SWC(req);
+ }
- var mirrorURL:String = 'http://' + mirror + Constants.SOURCEFORGE_DL_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
- var refererURL:String = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + '/download?use_mirror=' + mirror;
+ protected function actuallyDownloadOSMF2SWC(req:URLRequest):void
+ {
+ loader = new ApacheURLLoader();
+ loader.dataFormat = URLLoaderDataFormat.BINARY;
+ if (usingDownloadCache)
+ {
+ loader.addEventListener(Event.COMPLETE, cacheOSMF2SWC);
+ }
+ loader.addEventListener(Event.COMPLETE, handleOSMFSWCFileDownloaded);
+ loader.addEventListener(ErrorEvent.ERROR, handleOSMFSWCInstallError);
+ loader.addEventListener(IOErrorEvent.IO_ERROR, handleOSMFSWCInstallError);
- var req:URLRequest = new URLRequest(mirrorURL);
- req.requestHeaders = [new URLRequestHeader('Referer', refererURL)];
+ loader.load(req);
+ }
- actuallyDownloadOSMF2SWC(req);
- }
+ protected function cacheOSMF2SWC(event:Event):void
+ {
+ var url:String;
+ url = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
+ var cacheURL:String;
+ if (url.indexOf("http") == 0)
+ {
+ var c:int = url.indexOf("/");
+ c = url.indexOf("/", c + 1);
+ c = url.indexOf("/", c + 1);
+ // that should find the slash after the server.
+ cacheURL = url.substr(c + 1);
+ if (debugMode)
+ {
+ log("http caching. url = " + cacheURL);
+ }
+ }
+ if (cacheURL)
+ {
+ var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
+ cacheFile = cacheFile.resolvePath(escape(cacheURL));
+ if (debugMode)
+ {
+ log("caching " + cacheFile.url);
+ }
+ if (!cacheFile.exists)
+ {
+ var fs:FileStream = new FileStream();
+ fs.open(cacheFile, FileMode.WRITE);
+ var srcData:ByteArray = ByteArray(loader.data);
+ srcData.position = 0;
+ var ba:ByteArray = new ByteArray();
+ srcData.readBytes(ba, 0, srcData.length);
+ ba.position = 0;
+ fs.writeBytes(ba, 0, ba.length);
+ fs.close();
+ }
+ else
+ {
+ if (debugMode)
+ {
+ log("file was already in cache");
+ }
+ }
+ }
+ }
- protected function actuallyDownloadOSMF2SWC(req:URLRequest):void
- {
- loader = new URLLoader();
- loader.dataFormat = URLLoaderDataFormat.BINARY;
- if (usingDownloadCache)
- loader.addEventListener(Event.COMPLETE, cacheOSMF2SWC);
- loader.addEventListener(Event.COMPLETE, handleOSMFSWCFileDownloaded);
- loader.addEventListener(ErrorEvent.ERROR, handleOSMFSWCInstallError);
- loader.addEventListener(IOErrorEvent.IO_ERROR, handleOSMFSWCInstallError);
+ protected function handleOSMFSWCFileDownloaded(event:Event):void
+ {
+ try
+ {
+ writeFileToDirectory(_osmfSWCFile, event.target.data);
+ copyFileToLibDir(_osmfSWCFile);
+ unzip(_osmfSWCFile, handleOSMFSWCUnzipped, handleOSMFSWCUnzipError);
+ clearData(ApacheURLLoader(event.target));
- loader.load(req);
- }
+ updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, false);
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.COMPLETE);
+ installNextOptionalComponent();
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ abortInstallation();
+ }
+ }
- protected function cacheOSMF2SWC(event:Event):void
- {
- var url:String;
- url = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
- var cacheURL:String;
- if (url.indexOf("http") == 0)
- {
- var c:int = url.indexOf("/");
- c = url.indexOf("/", c + 1);
- c = url.indexOf("/", c + 1);
- // that should find the slash after the server.
- cacheURL = url.substr(c + 1);
- if (debugMode)
- log("http caching. url = " + cacheURL);
- }
- if (cacheURL)
- {
- var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
- cacheFile = cacheFile.resolvePath(escape(cacheURL));
- if (debugMode)
- log("caching " + cacheFile.url);
- if (!cacheFile.exists)
- {
- var fs:FileStream = new FileStream();
- fs.open(cacheFile, FileMode.WRITE);
- var srcData:ByteArray = ByteArray(loader.data);
- srcData.position = 0;
- var ba:ByteArray = new ByteArray();
- srcData.readBytes(ba, 0, srcData.length);
- ba.position = 0;
- fs.writeBytes(ba, 0, ba.length);
- fs.close();
- }
- else
- {
- if (debugMode)
- log("file was already in cache");
- }
- }
- }
+ /**
+ * Unzip osmf.swc, extract library.swf from it and copy it into frameworks/rsls/osmf_<flexversion>.<buildnumber>
+ * Delete other files extracted from osmf.swc
+ */
+ protected function handleOSMFSWCUnzipped(event:Event):void
+ {
+ try
+ {
+ var osmfFileName:String = "osmf_" + getFlexVersionBuildString() + ".swf";
+ var copyToFile:File = _flexHomeDir.resolvePath("frameworks" + File.separator + "rsls" + File.separator + osmfFileName);
+ var osmfLibrarySwfFile:File = _flexHomeDir.resolvePath("library.swf");
+ osmfLibrarySwfFile.moveTo(copyToFile);
+ var catalogXMLFile:File = _flexHomeDir.resolvePath("catalog.xml");
+ if (catalogXMLFile.exists)
+ {
+ catalogXMLFile.deleteFile();
+ }
+ var manifestXMLFile:File = _flexHomeDir.resolvePath("manifest.xml");
+ if (manifestXMLFile.exists)
+ {
+ manifestXMLFile.deleteFile();
+ }
+ }
+ catch (e:Error)
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ abortInstallation();
+ }
+ }
- protected function handleOSMFSWCFileDownloaded(event:Event):void
- {
- try
- {
- writeFileToDirectory(_osmfSWCFile, event.target.data);
- copyFileToLibDir(_osmfSWCFile);
- unzip(_osmfSWCFile, handleOSMFSWCUnzipped, handleOSMFSWCUnzipError);
- clearData(URLLoader(event.target));
+ protected function handleOSMFSWCUnzipError(event:Event):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ abortInstallation();
+ }
- updateOptionalComponentInstallStatus(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, false);
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.COMPLETE);
- installNextOptionalComponent();
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- abortInstallation();
- }
- }
+ protected function copyFileToOptionalLibDir(file:File):void
+ {
+ //Copy to "${FLEX_HOME}/lib/external/optional"
+ var copyToFile:File = _flexHomeDir.resolvePath("lib" + File.separator + "external" + File.separator + "optional" + File.separator + file.name);
+ file.copyTo(copyToFile, true);
+ }
- /**
- * Unzip osmf.swc, extract library.swf from it and copy it into frameworks/rsls/osmf_<flexversion>.<buildnumber>
- * Delete other files extracted from osmf.swc
- */
- protected function handleOSMFSWCUnzipped(event:Event):void
- {
- try
- {
- var osmfFileName:String = "osmf_" + getFlexVersionBuildString() + ".swf";
- var copyToFile:File = _flexHomeDir.resolvePath("frameworks" + File.separator + "rsls" + File.separator + osmfFileName);
- var osmfLibrarySwfFile:File = _flexHomeDir.resolvePath("library.swf");
- osmfLibrarySwfFile.moveTo(copyToFile);
- var catalogXMLFile:File = _flexHomeDir.resolvePath("catalog.xml");
- if (catalogXMLFile.exists)
- {
- catalogXMLFile.deleteFile();
- }
- var manifestXMLFile:File = _flexHomeDir.resolvePath("manifest.xml");
- if (manifestXMLFile.exists)
- {
- manifestXMLFile.deleteFile();
- }
- }
- catch (e:Error)
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- abortInstallation();
- }
- }
+ protected function copyFileToLibDir(file:File):void
+ {
+ //Copy to "${FLEX_HOME}/frameworks/libs/"
+ var copyToFile:File = _flexHomeDir.resolvePath("frameworks" + File.separator + "libs" + File.separator + file.name);
+ file.copyTo(copyToFile, true);
+ }
- protected function handleOSMFSWCUnzipError(event:Event):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- abortInstallation();
- }
+ protected function handleBlazeDSInstallError(event:* = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
+ log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["BlazeDS"]));
+ installNextOptionalComponent();
+ }
+
+ protected function handleFontSWFInstallError(event:* = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
+ log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["FontSwf Utility"]));
+ installNextOptionalComponent();
+ }
- protected function copyFileToOptionalLibDir(file:File):void
- {
- //Copy to "${FLEX_HOME}/lib/external/optional"
- var copyToFile:File = _flexHomeDir.resolvePath("lib" + File.separator + "external" + File.separator + "optional" + File.separator + file.name);
- file.copyTo(copyToFile, true);
- }
+ protected function handleOSMFSWFInstallError(event:* = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["OSMF_SWF"]));
+ installNextOptionalComponent();
+ }
- protected function copyFileToLibDir(file:File):void
- {
- //Copy to "${FLEX_HOME}/frameworks/libs/"
- var copyToFile:File = _flexHomeDir.resolvePath("frameworks" + File.separator + "libs" + File.separator + file.name);
- file.copyTo(copyToFile, true);
- }
+ protected function handleOSMFSWCInstallError(event:* = null):void
+ {
+ updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
+ updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
+ log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["OSMF_SWC"]));
+ installNextOptionalComponent();
+ }
- protected function handleBlazeDSInstallError(event:* = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_BLAZEDS, true);
- log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["BlazeDS"]));
- installNextOptionalComponent();
- }
+ protected function updateOptionalComponentInstallStatus(label:String, isInstalled:Boolean):void
+ {
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (obj.label == label)
+ {
+ obj.installed = isInstalled;
+ }
+ }
+ }
- protected function handleFontSWFInstallError(event:* = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_OPTIONAL_INSTALL_FONTSWF, true);
- log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["FontSwf Utility"]));
- installNextOptionalComponent();
- }
+ protected function updateOptionalComponentInstallStatusAborted(label:String, isAborted:Boolean):void
+ {
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (obj.label == label)
+ {
+ obj.aborted = isAborted;
+ }
+ }
+ }
- protected function handleOSMFSWFInstallError(event:* = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["OSMF_SWF"]));
- installNextOptionalComponent();
- }
+ protected function checkAndHandleAllOptionalComponentsInstalled():void
+ {
+ var allComponentsInstalled:Boolean = true;
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (!obj.required && obj.selected && !(obj.installed || obj.aborted))
+ {
+ allComponentsInstalled = false;
+ }
+ }
+ if (allComponentsInstalled)
+ {
+ tracker.trackInstallerSuccess(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION, _os.os);
+ cleanup(false);
+ }
+ }
- protected function handleOSMFSWCInstallError(event:* = null):void
- {
- updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
- updateOptionalComponentInstallStatusAborted(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, true);
- log(StringUtil.substitute(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FILE, ["OSMF_SWC"]));
- installNextOptionalComponent();
- }
+ protected function cleanup(isAbort:Boolean = false, abortInfo:String = ""):void
+ {
+ if (cleanedUp)
+ {
+ return;
+ }
- protected function updateOptionalComponentInstallStatus(label:String, isInstalled:Boolean):void
- {
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (obj.label == label)
- {
- obj.installed = isInstalled;
- }
- }
- }
+ cleanedUp = true;
- protected function updateOptionalComponentInstallStatusAborted(label:String, isAborted:Boolean):void
- {
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (obj.label == label)
- {
- obj.aborted = isAborted;
- }
- }
- }
+ CursorManager.removeBusyCursor();
+ if (!_viewResourceConstants)
+ {
+ selectDefaultLanguageInEmergency();
+ }
+ try
+ {
+ if (_flexTempDir)
+ {
+ _flexTempDir.deleteDirectory(true);
+ }
+ }
+ catch (e:Error)
+ {
+ log(_viewResourceConstants.ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY);
+ }
- protected function checkAndHandleAllOptionalComponentsInstalled():void
- {
- var allComponentsInstalled:Boolean = true;
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (!obj.required && obj.selected && !(obj.installed || obj.aborted))
- {
- allComponentsInstalled = false;
- }
- }
- if (allComponentsInstalled)
- {
- tracker.trackInstallerSuccess(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION, _os.os);
- cleanup(false);
- }
- }
+ if (isAbort)
+ {
+ tracker.trackInstallerFailure(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION,
+ _os.os + "&info=" + abortInfo);
+ }
+ else if (!wasAborted)
+ {
+ log(_viewResourceConstants.INFO_INSTALLATION_COMPLETE);
+ updateUIHandleInstallationComplete();
+ }
- protected function cleanup(isAbort:Boolean = false, abortInfo:String = ""):void
- {
- if (cleanedUp)
- return;
+ saveLogToDisk();
+ }
- cleanedUp = true;
+ protected function saveLogToDisk():void
+ {
+ if (!_flexHomeDir)
+ {
+ return;
+ }
- CursorManager.removeBusyCursor();
- if (!_viewResourceConstants)
- {
- selectDefaultLanguageInEmergency();
- }
- try
- {
- if (_flexTempDir)
- {
- _flexTempDir.deleteDirectory(true);
- }
- }
- catch (e:Error)
- {
- log(_viewResourceConstants.ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY);
- }
+ var file:File = _flexHomeDir.resolvePath("installer.log");
+ var fs:FileStream = new FileStream();
- if (isAbort)
- {
- tracker.trackInstallerFailure(APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY, APACHE_FLEX_BIN_DISTRO_VERSION,
- _os.os + "&info=" + abortInfo);
- }
- else if (!wasAborted)
- {
- log(_viewResourceConstants.INFO_INSTALLATION_COMPLETE);
- updateUIHandleInstallationComplete();
- }
+ try
+ {
+ fs.open(file, FileMode.WRITE);
+ for each (var message:String in _messages)
+ {
+ fs.writeUTFBytes(message);
+ fs.writeUTFBytes("\n");
+ }
+ fs.close();
+ }
+ catch (e:Error)
+ {
+ // TODO log error?
+ }
+ }
- saveLogToDisk();
- }
+ protected function updateUIHandleInstallationComplete():void
+ {
+ browseBtn.enabled = true;
+ openApacheFlexFolderBtn.visible = true;
+ openApacheFlexFolderBtn.includeInLayout = true;
+ progressBar.visible = false;
+ progressBar.includeInLayout = false;
+ thirdStepGroup.title = _viewResourceConstants.INFO_INSTALLATION_COMPLETE;
+ }
- protected function saveLogToDisk():void
- {
- if (!_flexHomeDir)
- {
- return;
- }
+ protected function abortInstallation(reason:String = ""):void
+ {
+ if (currentState != "installState")
+ {
+ showConsole(null);
+ }
- var file:File = _flexHomeDir.resolvePath("installer.log");
- var fs:FileStream = new FileStream();
+ directoryBtn.enabled = false;
+ browseBtn.enabled = false;
+ installBtn.enabled = false;
+ wasAborted = true;
+ if (_viewResourceConstants)
+ {
+ log(_viewResourceConstants.INFO_ABORT_INSTALLATION);
+ }
+ cleanup(true, reason);
+ if (_viewResourceConstants)
+ {
+ firstStepGroup.title = secondStepGroup.title = thirdStepGroup.title = _viewResourceConstants.INFO_ABORT_INSTALLATION;
+ }
+ }
- try
- {
- fs.open(file, FileMode.WRITE);
- for each (var message:String in _messages)
- {
- fs.writeUTFBytes(message);
- fs.writeUTFBytes("\n");
- }
- fs.close();
- }
- catch (e:Error)
- {
- // TODO log error?
- }
- }
+ protected function _langSelect_changeHandler(event:IndexChangeEvent):void
+ {
+ var defaultLanguage:String = ViewResourceConstants.DEFAULT_LANGUAGE;
- protected function updateUIHandleInstallationComplete():void
- {
- browseBtn.enabled = true;
- openApacheFlexFolderBtn.visible = true;
- openApacheFlexFolderBtn.includeInLayout = true;
- progressBar.visible = false;
- progressBar.includeInLayout = false;
- thirdStepGroup.title = _viewResourceConstants.INFO_INSTALLATION_COMPLETE;
- }
+ var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
+ so.data.userDefaultLanguage = _langSelect.selectedItem["data"];
+ so.flush();
- protected function abortInstallation(reason:String = ""):void
- {
- if (currentState != "installState")
- showConsole(null);
+ if (_langSelect.selectedItem["data"] == defaultLanguage)
+ {
+ resourceManager.localeChain = [defaultLanguage];
+ resourceManager.update();
+ setButtonWidths();
+ }
+ else
+ {
+ loadLanguage(_langSelect.selectedItem["data"], _langSelect_changeCompleteHandler);
+ }
+ }
- directoryBtn.enabled = false;
- browseBtn.enabled = false;
- installBtn.enabled = false;
- wasAborted = true;
- if (_viewResourceConstants)
- log(_viewResourceConstants.INFO_ABORT_INSTALLATION);
- cleanup(true, reason);
- if (_viewResourceConstants)
- firstStepGroup.title = secondStepGroup.title = thirdStepGroup.title = _viewResourceConstants.INFO_ABORT_INSTALLATION;
- }
+ private function _langSelect_changeCompleteHandler():void
+ {
+ var defaultLanguage:String = ViewResourceConstants.DEFAULT_LANGUAGE;
+ resourceManager.localeChain = [languageID, defaultLanguage];
+ resourceManager.update();
+ log("Using Locale: " + languageID);
+ setButtonWidths();
+ }
- protected function _langSelect_changeHandler(event:IndexChangeEvent):void
- {
- var defaultLanguage:String = ViewResourceConstants.DEFAULT_LANGUAGE;
+ override protected function resourcesChanged():void
+ {
+ super.resourcesChanged();
- var so:SharedObject = SharedObject.getLocal("InstallApacheFlex");
- so.data.userDefaultLanguage = _langSelect.selectedItem["data"];
- so.flush();
+ if (_viewResourceConstants)
+ {
+ rememberInstallerComponents();
+ updateWindowTitle();
+ initiateInstallStepsActivity();
+ initializeInstallerComponentsDataProvider();
+ recallInstallerComponents();
- if (_langSelect.selectedItem["data"] == defaultLanguage)
- {
- resourceManager.localeChain = [defaultLanguage];
- resourceManager.update();
- setButtonWidths();
- }
- else
- {
- loadLanguage(_langSelect.selectedItem["data"], _langSelect_changeCompleteHandler);
- }
- }
+ // This makes sure to update the Title of the license being displayed if the user changes languages
+ _currentLicenseLabel = _installerComponentsDataProvider.getItemAt(lastLicenseItemSelected).licenseName;
- private function _langSelect_changeCompleteHandler():void
- {
- var defaultLanguage:String = ViewResourceConstants.DEFAULT_LANGUAGE;
- resourceManager.localeChain = [languageID, defaultLanguage];
- resourceManager.update();
- log("Using Locale: " + languageID);
- setButtonWidths();
- }
+ }
+ }
- override protected function resourcesChanged():void
- {
- super.resourcesChanged();
+ private var _selectedInstallerComponents:Vector.<InstallerComponentVO>;
- if (_viewResourceConstants)
- {
- rememberInstallerComponents();
- updateWindowTitle();
- initiateInstallStepsActivity();
- initializeInstallerComponentsDataProvider();
- recallInstallerComponents();
- }
- }
+ protected function rememberInstallerComponents():void
+ {
+ _selectedInstallerComponents = new Vector.<InstallerComponentVO>;
+ for each(var item:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (item.selected)
+ {
+ _selectedInstallerComponents.push(item);
+ }
+ }
+ }
- private var _selectedInstallerComponents:Vector.<InstallerComponentVO>;
+ protected function recallInstallerComponents():void
+ {
+ for each(var item:InstallerComponentVO in _selectedInstallerComponents)
+ {
+ getInstallerComponentFromLabel(item.key).selected = true;
+ }
+ }
- protected function rememberInstallerComponents():void
- {
- _selectedInstallerComponents = new Vector.<InstallerComponentVO>;
- for each(var item:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (item.selected)
- {
- _selectedInstallerComponents.push(item);
- }
- }
- }
+ protected function placeGroup(panel:Panel):void
+ {
+ panel.x = this.width / 2 - panel.width / 2;
+ }
- protected function recallInstallerComponents():void
- {
- for each(var item:InstallerComponentVO in _selectedInstallerComponents)
- {
- getInstallerComponentFromLabel(item.key).selected = true;
+ protected function handleOptionalInstallsChange(event:IndexChangeEvent):void
+ {
+ var selectedItem:InstallerComponentVO = InstallerComponentVO(event.target.selectedItem);
+ optionalInstallsTxtArea.text = selectedItem.message;
+ /*installChkBx.label = _viewResourceConstants.INSTALL_AGREE;
+ if (selectedItem.answered) {
+ if (selectedItem.selected) {
+ installChkBx.selected = true;
+ } else {
+ installChkBx.selected = false;
}
- }
+ } else {
+ installChkBx.selected = false;
+ }*/
- protected function placeGroup(panel:Panel):void
- {
- panel.x = this.width / 2 - panel.width / 2;
- }
+ // Store the current selected item in order to have the license title update if the language is changed
+ lastLicenseItemSelected = installComponentsList.selectedIndex;
- protected function handleOptionalInstallsChange(event:IndexChangeEvent):void
- {
- var selectedItem:InstallerComponentVO = InstallerComponentVO(event.target.selectedItem);
- optionalInstallsTxtArea.text = selectedItem.message;
- licenseLinkBtn.includeInLayout = true;
- _currentLicenseLabel = selectedItem.licenseName;
- _currentLicenseURL = selectedItem.licenseURL;
- checkIfAllRequiredComponentsPromptsAnswered();
+ licenseLinkBtn.includeInLayout = true;
+ _currentLicenseLabel = selectedItem.licenseName;
+ _currentLicenseURL = selectedItem.licenseURL;
+ checkIfAllRequiredComponentsPromptsAnswered();
- }
+ }
- protected function handleLicenceBtnClick(event:Event):void
- {
- navigateToURL(new URLRequest(_currentLicenseURL), "_blank");
- }
+ protected function handleLicenceBtnClick(event:Event):void
+ {
+ navigateToURL(new URLRequest(_currentLicenseURL), "_blank");
+ }
- protected function handleInstallPermissionChange(event:InstallItemSelectionEvent):void
- {
- if (installComponentsList.selectedItem != null)
- {
- installComponentsList.selectedItem.selected = (event.item.selected);
- installComponentsList.selectedItem.answered = true;
- }
- else
- {
- for (var i:int = 0; i < _installerComponentsDataProvider.length; i++)
- {
- _installerComponentsDataProvider.getItemAt(i).selected = event.item.selected;
- _installerComponentsDataProvider.getItemAt(i).answered = true;
- }
- }
- checkIfAllRequiredComponentsPromptsAnswered();
- }
+ protected function handleInstallPermissionChange(event:InstallItemSelectionEvent):void
+ {
+ if (installComponentsList.selectedItem != null)
+ {
+ installComponentsList.selectedItem.selected = (event.item.selected);
+ installComponentsList.selectedItem.answered = true;
+ }
+ else
+ {
+ for (var i:int = 0; i < _installerComponentsDataProvider.length; i++)
+ {
+ _installerComponentsDataProvider.getItemAt(i).selected = event.item.selected;
+ _installerComponentsDataProvider.getItemAt(i).answered = true;
+ }
+ }
+ checkIfAllRequiredComponentsPromptsAnswered();
+ }
- protected function checkIfAllRequiredComponentsPromptsAnswered():void
- {
- var success:Boolean = true;
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (obj.required && !obj.selected)
- {
- success = false;
- }
- }
- installBtn.enabled = success;
- }
+ protected function checkIfAllRequiredComponentsPromptsAnswered():void
+ {
+ var success:Boolean = true;
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (obj.required && !obj.selected)
+ {
+ success = false;
+ }
+ }
+ installBtn.enabled = success;
+ }
- /************************ Utility methods *****************/
+ /************************ Utility methods *****************/
- private function createFolder(path:String):File
- {
- var dir:File = new File(path);
+ private function createFolder(path:String):File
+ {
+ var dir:File = new File(path);
- if (!dir.exists)
- dir.createDirectory();
+ if (!dir.exists)
+ {
+ dir.createDirectory();
+ }
- return dir;
- }
+ return dir;
+ }
- private function copyOrDownload(url:String, handlerFunction:Function, dest:File = null, errorFunction:Function = null, nocache:Boolean = false):void
- {
- if (url.search("http") == 0)
- {
- download(url, handlerFunction, errorFunction, nocache);
- }
- else if (url.search("file://") == 0)
- {
- download(url, handlerFunction, errorFunction, nocache);
- }
- else
- {
- var source:File = new File(url);
+ private function copyOrDownload(url:String, handlerFunction:Function, dest:File = null, errorFunction:Function = null, nocache:Boolean = false):void
+ {
+ if (url.search("http") == 0)
+ {
+ download(url, handlerFunction, errorFunction, nocache);
+ }
+ else if (url.search("file://") == 0)
+ {
+ download(url, handlerFunction, errorFunction, nocache);
+ }
+ else
+ {
+ var source:File = new File(url);
- try
- {
- source.copyTo(dest, true);
- }
- catch (error:Error)
- {
- if (errorFunction != null)
- {
- errorFunction.call(null);
- }
- log(_viewResourceConstants.ERROR_UNABLE_TO_COPY_FILE + error.errorID + " " + error.message);
- }
- }
- }
+ try
+ {
+ source.copyTo(dest, true);
+ }
+ catch (error:Error)
+ {
+ if (errorFunction != null)
+ {
+ errorFunction.call(null);
+ }
+ log(_viewResourceConstants.ERROR_UNABLE_TO_COPY_FILE + error.errorID + " " + error.message);
+ }
+ }
+ }
- private function download(url:String, handlerFunction:Function, errorFunction:Function = null, nocache:Boolean = false):void
- {
- loader = new URLLoader();
- if (debugMode)
- {
- log("downloading " + url);
- if (usingDownloadCache)
- log("using download cache");
- if (nocache)
- log("not caching this download");
- }
- if (usingDownloadCache && !nocache)
- {
- var cacheURL:String;
- if (_useMirror && url.indexOf(useMirrorPath(_mirrorURLUtil.mirrorURL)) != -1)
- {
- cacheURL = url.substr(useMirrorPath(_mirrorURLUtil.mirrorURL).length);
- if (debugMode)
- log("mirror caching. url = " + cacheURL);
- }
- else
- {
- if (url.indexOf("http") == 0)
- {
- var c:int = url.indexOf("/");
- c = url.indexOf("/", c + 1);
- c = url.indexOf("/", c + 1);
- // that should find the slash after the server.
- cacheURL = url.substr(c + 1);
- if (debugMode)
- log("http caching. url = " + cacheURL);
- }
- }
- if (cacheURL)
- {
- var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
- cacheFile = cacheFile.resolvePath(escape(cacheURL));
- if (debugMode)
- log("searching cache for " + cacheFile.url);
- if (cacheFile.exists)
- {
- log(_viewResourceConstants.INFO_USING_CACHED_FILE + " " + cacheFile.url);
- url = cacheFile.url;
- }
- }
- }
- var req:URLRequest = new URLRequest(url);
- //Wait for 5 minutes before aborting download attempt. Adobe download sites as well as some Apache mirrors are extremely slow.
- req.idleTimeout = 300000;
+ private function download(url:String, handlerFunction:Function, errorFunction:Function = null, nocache:Boolean = false):void
+ {
+ loader = new ApacheURLLoader();
+ if (debugMode)
+ {
+ log("downloading " + url);
+ if (usingDownloadCache)
+ {
+ log("using download cache");
+ }
+ if (nocache)
+ {
+ log("not caching this download");
+ }
+ }
+ if (usingDownloadCache && !nocache)
+ {
+ var cacheURL:String;
+ if (_useMirror && url.indexOf(useMirrorPath(_mirrorURLUtil.mirrorURL)) != -1)
+ {
+ cacheURL = url.substr(useMirrorPath(_mirrorURLUtil.mirrorURL).length);
+ if (debugMode)
+ {
+ log("mirror caching. url = " + cacheURL);
+ }
+ }
+ else
+ {
+ if (url.indexOf("http") == 0)
+ {
+ var c:int = url.indexOf("/");
+ c = url.indexOf("/", c + 1);
+ c = url.indexOf("/", c + 1);
+ // that should find the slash after the server.
+ cacheURL = url.substr(c + 1);
+ if (debugMode)
+ {
+ log("http caching. url = " + cacheURL);
+ }
+ }
+ }
+ if (cacheURL)
+ {
+ var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
+ cacheFile = cacheFile.resolvePath(escape(cacheURL));
+ if (debugMode)
+ {
+ log("searching cache for " + cacheFile.url);
+ }
+ if (cacheFile.exists)
+ {
+ log(_viewResourceConstants.INFO_USING_CACHED_FILE + " " + cacheFile.url);
+ url = cacheFile.url;
+ }
+ }
+ }
+ var req:URLRequest = new URLRequest(url);
+ //Wait for 5 minutes before aborting download attempt. Adobe download sites as well as some Apache mirrors are extremely slow.
+ req.idleTimeout = 300000;
- loader.dataFormat = URLLoaderDataFormat.BINARY;
- if (usingDownloadCache)
- loader.addEventListener(Event.COMPLETE, function (event:Event):void
- {
- if (debugMode)
- log("download complete preparing to cache");
- var cacheURL:String;
- if (_useMirror && url.indexOf(useMirrorPath(_mirrorURLUtil.mirrorURL)) != -1)
- {
- cacheURL = url.substr(useMirrorPath(_mirrorURLUtil.mirrorURL).length);
- if (debugMode)
- log("mirror caching. url = " + cacheURL);
- }
- else
- {
- if (url.indexOf("http") == 0)
- {
- var c:int = url.indexOf("/");
- c = url.indexOf("/", c + 1);
- c = url.indexOf("/", c + 1);
- // that should find the slash after the server.
- cacheURL = url.substr(c + 1);
- if (debugMode)
- log("http caching. url = " + cacheURL);
- }
- }
- if (cacheURL && !nocache)
- {
- var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
- cacheFile = cacheFile.resolvePath(escape(cacheURL));
- if (debugMode)
- log("caching " + cacheFile.url);
- if (!cacheFile.exists)
- {
- var fs:FileStream = new FileStream();
- fs.open(cacheFile, FileMode.WRITE);
- var srcData:ByteArray = ByteArray(loader.data);
- srcData.position = 0;
- var ba:ByteArray = new ByteArray();
- srcData.readBytes(ba, 0, srcData.length);
- ba.position = 0;
- fs.writeBytes(ba, 0, ba.length);
- fs.close();
- }
- else
- {
- if (debugMode)
- log("file was already in cache");
- }
- }
+ loader.dataFormat = URLLoaderDataFormat.BINARY;
+ if (usingDownloadCache)
+ {
+ loader.addEventListener(Event.COMPLETE, function (event:Event):void
+ {
+ if (debugMode)
+ {
+ log("download complete preparing to cache");
+ }
+ var cacheURL:String;
+ if (_useMirror && url.indexOf(useMirrorPath(_mirrorURLUtil.mirrorURL)) != -1)
+ {
+ cacheURL = url.substr(useMirrorPath(_mirrorURLUtil.mirrorURL).length);
+ if (debugMode)
+ {
+ log("mirror caching. url = " + cacheURL);
+ }
+ }
+ else
+ {
+ if (url.indexOf("http") == 0)
+ {
+ var c:int = url.indexOf("/");
+ c = url.indexOf("/", c + 1);
+ c = url.indexOf("/", c + 1);
+ // that should find the slash after the server.
+ cacheURL = url.substr(c + 1);
+ if (debugMode)
+ {
+ log("http caching. url = " + cacheURL);
+ }
+ }
+ }
+ if (cacheURL && !nocache)
+ {
+ var cacheFile:File = File.applicationStorageDirectory.resolvePath(downloadCacheFolder);
+ cacheFile = cacheFile.resolvePath(escape(cacheURL));
+ if (debugMode)
+ {
+ log("caching " + cacheFile.url);
+ }
+ if (!cacheFile.exists)
+ {
+ var fs:FileStream = new FileStream();
+ fs.open(cacheFile, FileMode.WRITE);
+ var srcData:ByteArray = ByteArray(loader.data);
+ srcData.position = 0;
+ var ba:ByteArray = new ByteArray();
+ srcData.readBytes(ba, 0, srcData.length);
+ ba.position = 0;
+ fs.writeBytes(ba, 0, ba.length);
+ fs.close();
+ }
+ else
+ {
+ if (debugMode)
+ {
+ log("file was already in cache");
+ }
+ }
+ }
- });
- loader.addEventListener(Event.COMPLETE, handlerFunction, false, 0, true);
- loader.addEventListener(Event.COMPLETE, handleDownloadComplete, false, 0, true);
+ });
+ }
+ loader.addEventListener(Event.COMPLETE, handlerFunction, false, 0, true);
+ loader.addEventListener(Event.COMPLETE, handleDownloadComplete, false, 0, true);
- progressBar.percent = 0;
+ progressBar.percent = 0;
- if (errorFunction != null)
- {
- loader.addEventListener(ErrorEvent.ERROR, errorFunction, false, 0, true);
- loader.addEventListener(IOErrorEvent.IO_ERROR, errorFunction, false, 0, true);
- }
- loader.addEventListener(ProgressEvent.PROGRESS, handleDownloadProgress, false, 0, true);
+ if (errorFunction != null)
+ {
+ loader.addEventListener(ErrorEvent.ERROR, errorFunction, false, 0, true);
+ loader.addEventListener(IOErrorEvent.IO_ERROR, errorFunction, false, 0, true);
+ }
+ loader.addEventListener(ProgressEvent.PROGRESS, handleDownloadProgress, false, 0, true);
- loader.load(req);
- }
+ loader.load(req);
+ }
- private function handleDownloadProgress(event:ProgressEvent):void
- {
- var bytesTotal:int = event.bytesTotal;
- var bytesLoaded:int = event.bytesLoaded;
- if (event.bytesTotal > 0)
- {
- var percentLoaded:int = Math.round(bytesLoaded * 100 / bytesTotal);
- if (logProgressEvents)
- log("download progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
+ private function handleDownloadProgress(event:ProgressEvent):void
+ {
+ var bytesTotal:int = event.bytesTotal;
+ var bytesLoaded:int = event.bytesLoaded;
+ if (event.bytesTotal > 0)
+ {
+ var percentLoaded:int = Math.round(bytesLoaded * 100 / bytesTotal);
+ if (logProgressEvents)
+ {
+ log("download progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
+ }
- progressBar.percent = percentLoaded;
- }
- }
+ progressBar.percent = percentLoaded;
+ }
+ }
- private function handleDownloadComplete(event:Event):void
- {
- _previousDisplayedPercent = 0;
- clearData(URLLoader(event.target));
- }
+ private function handleDownloadComplete(event:Event):void
+ {
+ _previousDisplayedPercent = 0;
+ clearData(ApacheURLLoader(event.target));
+ }
- private function clearData(v:URLLoader):void
- {
- ByteArray(v.data).clear();
- System.gc();
- }
+ private function clearData(v:ApacheURLLoader):void
+ {
+ ByteArray(v.data).clear();
+ System.gc();
+ }
- private function unzip(fileToUnzip:File, unzipCompleteFunction:Function, unzipErrorFunction:Function = null):void
- {
- var zipFileBytes:ByteArray = new ByteArray();
- var fs:FileStream = new FileStream();
- var fzip:Zip = new Zip();
+ private function unzip(fileToUnzip:File, unzipCompleteFunction:Function, unzipErrorFunction:Function = null):void
+ {
+ var zipFileBytes:ByteArray = new ByteArray();
+ var fs:FileStream = new FileStream();
+ var fzip:Zip = new Zip();
- fs.open(fileToUnzip, FileMode.READ);
- fs.readBytes(zipFileBytes);
- fs.close();
+ fs.open(fileToUnzip, FileMode.READ);
+ fs.readBytes(zipFileBytes);
+ fs.close();
- fzip.addEventListener(ZipEvent.FILE_LOADED, onFileLoaded, false, 0, true);
- fzip.addEventListener(Event.COMPLETE, unzipCompleteFunction, false, 0, true);
- fzip.addEventListener(Event.COMPLETE, onUnzipComplete, false, 0, true);
- if (unzipErrorFunction != null)
- {
- fzip.addEventListener(ErrorEvent.ERROR, unzipErrorFunction, false, 0, true);
- _fileUnzipErrorFunction = unzipErrorFunction
- }
- fzip.loadBytes(zipFileBytes);
- }
+ fzip.addEventListener(ZipEvent.FILE_LOADED, onFileLoaded, false, 0, true);
+ fzip.addEventListener(Event.COMPLETE, unzipCompleteFunction, false, 0, true);
+ fzip.addEventListener(Event.COMPLETE, onUnzipComplete, false, 0, true);
+ if (unzipErrorFunction != null)
+ {
+ fzip.addEventListener(ErrorEvent.ERROR, unzipErrorFunction, false, 0, true);
+ _fileUnzipErrorFunction = unzipErrorFunction
+ }
+ fzip.loadBytes(zipFileBytes);
+ }
- private function onFileLoaded(e:ZipEvent):void
- {
- try
- {
- var fzf:ZipFile = e.file;
- var f:File;
- if (overlaying)
- f = _flexTempDir.resolvePath(fzf.filename);
- else
- f = _flexHomeDir.resolvePath(fzf.filename);
- var fs:FileStream = new FileStream();
+ private function onFileLoaded(e:ZipEvent):void
+ {
+ try
+ {
+ var fzf:ZipFile = e.file;
+ var f:File;
+ if (overlaying)
+ {
+ f = _flexTempDir.resolvePath(fzf.filename);
+ }
+ else
+ {
+ f = _flexHomeDir.resolvePath(fzf.filename);
+ }
+ var fs:FileStream = new FileStream();
- if (isDirectory(fzf))
- {
- // Is a directory, not a file. Dont try to write anything into it.
- return;
- }
+ if (isDirectory(fzf))
+ {
+ // Is a directory, not a file. Dont try to write anything into it.
+ return;
+ }
- fs.open(f, FileMode.WRITE);
- fs.writeBytes(fzf.content);
- fs.close();
+ fs.open(f, FileMode.WRITE);
+ fs.writeBytes(fzf.content);
+ fs.close();
- }
- catch (error:Error)
- {
- _fileUnzipErrorFunction.call();
- }
- }
+ }
+ catch (error:Error)
+ {
+ _fileUnzipErrorFunction.call();
+ }
+ }
- private function isDirectory(f:ZipFile):Boolean
- {
- if (f.filename.substr(f.filename.length - 1) == "/" || f.filename.substr(f.filename.length - 1) == "\\")
- {
- return true;
- }
- return false;
- }
+ private function isDirectory(f:ZipFile):Boolean
+ {
+ if (f.filename.substr(f.filename.length - 1) == "/" || f.filename.substr(f.filename.length - 1) == "\\")
+ {
+ return true;
+ }
+ return false;
+ }
- private function onUnzipComplete(event:Event):void
- {
- var fzip:Zip = event.target as Zip;
- fzip.close();
- fzip.removeEventListener(ZipEvent.FILE_LOADED, onFileLoaded);
- fzip.removeEventListener(Event.COMPLETE, onUnzipComplete);
- }
+ private function onUnzipComplete(event:Event):void
+ {
+ var fzip:Zip = event.target as Zip;
+ fzip.close();
+ fzip.removeEventListener(ZipEvent.FILE_LOADED, onFileLoaded);
+ fzip.removeEventListener(Event.COMPLETE, onUnzipComplete);
+ }
- private function untar(source:File, destination:File, unTarCompleteFunction:Function, unTarErrorFunction:Function):void
- {
- var tar:File;
- var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
- var arguments:Vector.<String> = new Vector.<String>();
+ private function untar(source:File, destination:File, unTarCompleteFunction:Function, unTarErrorFunction:Function):void
+ {
+ var tar:File;
+ var startupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
+ var arguments:Vector.<String> = new Vector.<String>();
- if (_os.isLinux())
- {
- tar = new File("/bin/tar");
- }
- else
- {
- tar = new File("/usr/bin/tar");
- }
+ if (_os.isLinux())
+ {
+ tar = new File("/bin/tar");
+ }
+ else
+ {
+ tar = new File("/usr/bin/tar");
+ }
- arguments.push("xf");
- arguments.push(source.nativePath);
- arguments.push("-C");
- arguments.push(destination.nativePath);
+ arguments.push("xf");
+ arguments.push(source.nativePath);
+ arguments.push("-C");
+ arguments.push(destination.nativePath);
- startupInfo.executable = tar;
- startupInfo.arguments = arguments;
+ startupInfo.executable = tar;
+ startupInfo.arguments = arguments;
- _process = new NativeProcess();
- _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, unTarFileProgress, false, 0, true);
- _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, unTarErrorFunction, false, 0, true);
- _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, unTarError, false, 0, true);
- _process.addEventListener(NativeProcessExitEvent.EXIT, unTarCompleteFunction, false, 0, true);
- _process.addEventListener(NativeProcessExitEvent.EXIT, unTarComplete, false, 0, true);
- _process.start(startupInfo);
- }
+ _process = new NativeProcess();
+ _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, unTarFileProgress, false, 0, true);
+ _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, unTarErrorFunction, false, 0, true);
+ _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, unTarError, false, 0, true);
+ _process.addEventListener(NativeProcessExitEvent.EXIT, unTarCompleteFunction, false, 0, true);
+ _process.addEventListener(NativeProcessExitEvent.EXIT, unTarComplete, false, 0, true);
+ _process.start(startupInfo);
+ }
- private function unTarError(event:Event):void
- {
- var output:String = _process.standardError.readUTFBytes(_process.standardError.bytesAvailable);
+ private function unTarError(event:Event):void
+ {
+ var output:String = _process.standardError.readUTFBytes(_process.standardError.bytesAvailable);
- log(_viewResourceConstants.ERROR_NATIVE_PROCESS_ERROR);
- log(output);
- }
+ log(_viewResourceConstants.ERROR_NATIVE_PROCESS_ERROR);
+ log(output);
+ }
- private function unTarFileProgress(event:Event):void
- {
- var output:String = _process.standardOutput.readUTFBytes(_process.standardOutput.bytesAvailable);
+ private function unTarFileProgress(event:Event):void
+ {
+ var output:String = _process.standardOutput.readUTFBytes(_process.standardOutput.bytesAvailable);
- log(output);
- }
+ log(output);
+ }
- private function unTarComplete(event:NativeProcessExitEvent):void
- {
- _process.closeInput();
- _process.exit(true);
- }
+ private function unTarComplete(event:NativeProcessExitEvent):void
+ {
+ _process.closeInput();
+ _process.exit(true);
+ }
- private function writeFileToDirectory(file:File, data:ByteArray):void
- {
- var fs:FileStream = new FileStream();
- fs.open(file, FileMode.WRITE);
- fs.writeBytes(data);
- fs.close();
- }
+ private function writeFileToDirectory(file:File, data:ByteArray):void
+ {
+ var fs:FileStream = new FileStream();
+ fs.open(file, FileMode.WRITE);
+ fs.writeBytes(data);
+ fs.close();
+ }
- private function isValidConfigFile(file:File):Boolean
- {
- var name:String = file.name;
+ private function isValidConfigFile(file:File):Boolean
+ {
+ var name:String = file.name;
- if (name.search("-config.xml") == -1)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
+ if (name.search("-config.xml") == -1)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
- private function isAirConfigFile(file:File):Boolean
- {
- var name:String = file.name;
+ private function isAirConfigFile(file:File):Boolean
+ {
+ var name:String = file.name;
- if (name.search("air") == 0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
+ if (name.search("air") == 0)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
- private function log(text:String, position:int = -1, isPublic:Boolean = true, skipLog:Boolean = false):void
- {
- if (text == null)
- text = "";
- if (position == -1)
- {
- if (!skipLog)
- _messages.addItem(text);
- if (isPublic)
- lastPublicMessage = text;
- }
- else
- {
- _messages.addItemAt(text, position);
- }
- if (debugMode)
- trace(text);
- if (logFile)
- {
- var f:File = new File(logFile);
- var fs:FileStream = new FileStream();
- fs.open(f, FileMode.APPEND);
- fs.writeUTFBytes(text + "\n");
- fs.close();
- }
- }
+ private function log(text:String, position:int = -1, isPublic:Boolean = true, skipLog:Boolean = false):void
+ {
+ if (text == null)
+ {
+ text = "";
+ }
+ if (position == -1)
+ {
+ if (!skipLog)
+ {
+ _messages.addItem(text);
+ }
+ if (isPublic)
+ {
+ lastPublicMessage = text;
+ }
+ }
+ else
+ {
+ _messages.addItemAt(text, position);
+ }
+ if (debugMode)
+ {
+ trace(text);
+ }
+ if (logFile)
+ {
+ var f:File = new File(logFile);
+ var fs:FileStream = new FileStream();
+ fs.open(f, FileMode.APPEND);
+ fs.writeUTFBytes(text + "\n");
+ fs.close();
+ }
+ }
- private var console:ConsoleWindow;
+ private var console:ConsoleWindow;
- private function showConsole(event:Event):void
- {
- if (!console || console.closed)
- console = new ConsoleWindow();
- else if (console)
- console.orderToFront();
+ private function showConsole(event:Event):void
+ {
+ if (!console || console.closed)
+ {
+ console = new ConsoleWindow();
+ }
+ else if (console)
+ {
+ console.orderToFront();
+ }
- console.messages = _messages;
- console.open();
- console.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - console.nativeWindow.width / 2;
- console.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - console.nativeWindow.height / 2;
- }
+ console.messages = _messages;
+ console.open();
+ console.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - console.nativeWindow.width / 2;
+ console.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - console.nativeWindow.height / 2;
+ }
- private function showMPLLicense(event:Event):void
- {
- var licenseWindow:MPLLicense = new MPLLicense();
- licenseWindow.open();
- licenseWindow.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - licenseWindow.nativeWindow.width / 2;
- licenseWindow.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - licenseWindow.nativeWindow.height / 2;
- }
+ private function showMPLLicense(event:Event):void
+ {
+ var licenseWindow:MPLLicense = new MPLLicense();
+ licenseWindow.open();
+ licenseWindow.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - licenseWindow.nativeWindow.width / 2;
+ licenseWindow.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - licenseWindow.nativeWindow.height / 2;
+ }
- private function showAdobeLicense(event:Event):void
- {
- var licenseWindow:AdobeLicense = new AdobeLicense();
- licenseWindow.open();
- licenseWindow.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - licenseWindow.nativeWindow.width / 2;
- licenseWindow.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - licenseWindow.nativeWindow.height / 2;
- }
+ private function showAdobeLicense(event:Event):void
+ {
+ var licenseWindow:AdobeLicense = new AdobeLicense();
+ licenseWindow.open();
+ licenseWindow.nativeWindow.x = this.nativeWindow.x + this.nativeWindow.width / 2 - licenseWindow.nativeWindow.width / 2;
+ licenseWindow.nativeWindow.y = this.nativeWindow.y + this.nativeWindow.height / 2 - licenseWindow.nativeWindow.height / 2;
+ }
- private function openApacheFlexFolder(event:Event):void
- {
- _flexHomeDir.openWithDefaultApplication();
- }
+ private function openApacheFlexFolder(event:Event):void
+ {
+ _flexHomeDir.openWithDefaultApplication();
+ }
- private function closeApplication(event:Event):void
- {
- removeEventListener(Event.CLOSING, closeApplication);
+ private function closeApplication(event:Event):void
+ {
+ removeEventListener(Event.CLOSING, closeApplication);
- if (currentState == "installState")
- {
- if (currentStep < stepLabels.length)
- {
- // User aborted the installation by closing the installer
- var activeStep:StepItem = getActiveStepItem();
- if (_viewResourceConstants)
- abortInstallation(_viewResourceConstants.INFO_USER_ABORT_INSTALLATION + activeStep.label);
- }
- }
+ if (currentState == "installState")
+ {
+ if (currentStep < stepLabels.length)
+ {
+ // User aborted the installation by closing the installer
+ var activeStep:StepItem = getActiveStepItem();
+ if (_viewResourceConstants)
+ {
+ abortInstallation(_viewResourceConstants.INFO_USER_ABORT_INSTALLATION + activeStep.label);
+ }
+ }
+ }
- // TODO only enable close button when finished or when an error occurs
- // TODO anything we need to clean up?
- if (console && !console.closed)
- console.closeWindow(null);
- cleanup();
- close();
- }
+ // TODO only enable close button when finished or when an error occurs
+ // TODO anything we need to clean up?
+ if (console && !console.closed)
+ {
+ console.closeWindow(null);
+ }
+ cleanup();
+ close();
+ }
- protected function getActiveStepItem():StepItem
- {
- for each (var s:StepItem in _installationSteps)
- {
- if (s.status == StepItem.ACTIVE)
- {
- return s;
- }
- }
- return null;
- }
+ protected function getActiveStepItem():StepItem
+ {
+ for each (var s:StepItem in _installationSteps)
+ {
+ if (s.status == StepItem.ACTIVE)
+ {
+ return s;
+ }
+ }
+ return null;
+ }
- protected function clickLogo(event:MouseEvent):void
- {
- navigateToURL(new URLRequest(Constants.APACHE_FLEX_URL));
- }
+ protected function clickLogo(event:MouseEvent):void
+ {
+ navigateToURL(new URLRequest(Constants.APACHE_FLEX_URL));
+ }
- protected function getStepItemFromStepLabel(stepLabel:String):StepItem
- {
- for each (var s:StepItem in _installationSteps)
- {
- if (s.label == stepLabel)
- {
- return s;
- }
- }
+ protected function getStepItemFromStepLabel(stepLabel:String):StepItem
+ {
+ for each (var s:StepItem in _installationSteps)
+ {
+ if (s.label == stepLabel)
+ {
+ return s;
+ }
+ }
- return null;
- }
+ return null;
+ }
- protected function getInstallerComponentFromLabel(key:String):InstallerComponentVO
- {
- for each (var s:InstallerComponentVO in _installerComponentsDataProvider)
- {
- if (s.key == key)
- {
- return s;
- }
- }
+ protected function getInstallerComponentFromLabel(key:String):InstallerComponentVO
+ {
+ for each (var s:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (s.key == key)
+ {
+ return s;
+ }
+ }
- return null;
- }
+ return null;
+ }
- protected function updateActivityStep(stepLabel:String, status:String):void
- {
- var step:StepItem = getStepItemFromStepLabel(stepLabel);
+ protected function updateActivityStep(stepLabel:String, status:String):void
+ {
+ var step:StepItem = getStepItemFromStepLabel(stepLabel);
- if (step)
- {
- step.status = status;
- }
- }
+ if (step)
+ {
+ step.status = status;
+ }
+ }
- private function isDirectoryEmpty(dir:File):Boolean
- {
- var result:Boolean;
+ private function isDirectoryEmpty(dir:File):Boolean
+ {
+ var result:Boolean;
- var filesArray:Array = dir.getDirectoryListing();
+ var filesArray:Array = dir.getDirectoryListing();
- var length:int = filesArray.length;
- result = length == 0;
- if (length == 1)
- {
- var explodedPath:Array = File(filesArray[0]).url.split("/");
+ var length:int = filesArray.length;
+ result = length == 0;
+ if (length == 1)
+ {
+ var explodedPath:Array = File(filesArray[0]).url.split("/");
- // the .DS_Store file doesn't bother anybody, so we can safely ignore it.
- // also ignore local.properties so you an override install settings
- result = explodedPath[explodedPath.length - 1] == ".DS_Store" ||
- explodedPath[explodedPath.length - 1] == "local.properties";
- }
+ // the .DS_Store file doesn't bother anybody, so we can safely ignore it.
+ // also ignore local.properties so you an override install settings
+ result = explodedPath[explodedPath.length - 1] == ".DS_Store" ||
+ explodedPath[explodedPath.length - 1] == "local.properties";
+ }
- return result;
- }
+ return result;
+ }
- protected function showDisclaimer():void
- {
- var request:URLRequest = new URLRequest(Constants.APACHE_FLEX_URL + Constants.DISCLAIMER_PATH);
+ protected function showDisclaimer():void
+ {
+ var request:URLRequest = new URLRequest(Constants.APACHE_FLEX_URL + Constants.DISCLAIMER_PATH);
- navigateToURL(request, "_blank");
- }
+ navigateToURL(request, "_blank");
+ }
- protected function installComponentsList_creationCompleteHandler(event:FlexEvent):void
- {
- installComponentsList.addEventListener(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED, handleInstallPermissionChange);
- }
+ protected function installComponentsList_creationCompleteHandler(event:FlexEvent):void
+ {
+ installComponentsList.addEventListener(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED, handleInstallPermissionChange);
+ }
- private function onMouseRoll(event:MouseEvent):void
- {
- if (event.type == MouseEvent.MOUSE_OVER)
- {
- event.target.styleName = "linkTextHover";
- }
- else
- {
- event.target.styleName = "linkText";
- }
- }
+ private function onMouseRoll(event:MouseEvent):void
+ {
+ if (event.type == MouseEvent.MOUSE_OVER)
+ {
+ event.target.styleName = "linkTextHover";
+ }
+ else
+ {
+ event.target.styleName = "linkText";
+ }
+ }
- private function getFlexVersionBuildString():String
- {
- var flexPropertiesFile:File = _flexHomeDir.resolvePath("flex-sdk-description.xml");
- var fs:FileStream = new FileStream();
- fs.open(flexPropertiesFile, FileMode.READ);
- var contents:XML = new XML(fs.readMultiByte(fs.bytesAvailable, "utf-8"));
- fs.close();
- return contents.version + "." + contents.build;
- }
- ]]></fx:Script>
+ private function getFlexVersionBuildString():String
+ {
+ var flexPropertiesFile:File = _flexHomeDir.resolvePath("flex-sdk-description.xml");
+ var fs:FileStream = new FileStream();
+ fs.open(flexPropertiesFile, FileMode.READ);
+ var contents:XML = new XML(fs.readMultiByte(fs.bytesAvailable, "utf-8"));
+ fs.close();
+ return contents.version + "." + contents.build;
+ }
+ ]]></fx:Script>
<fx:Declarations>
<s:Sine id="ease"/>
@@ -3514,7 +3739,15 @@
</s:layout>
</s:DropDownList>
</s:HGroup>
-
+ <!-- <s:Group width="100%" top="275">-->
+ <!-- <s:HGroup gap="0" horizontalCenter="0" top="30">
+ <s:Label text="apache" fontFamily="openSansBold" color="0x677084" fontSize="24" />
+ <s:Label text="Flex" right="0"
+ fontFamily="openSansBold"
+ color="0x172647" fontSize="70"
+ />
+ </s:HGroup>-->
+
<s:HGroup verticalAlign="middle" gap="5" horizontalCenter="0" top="300">
<s:Label text="{_viewResourceConstants.INFO_VERSION}" fontFamily="openSansBold" color="0x677084" fontSize="24" />
<s:Label text="{APACHE_FLEX_BIN_DISTRO_VERSION}" right="0"
@@ -3619,7 +3852,6 @@
styleName="mainBtnStyle"
width="{_standardButtonWidth}"
height="32"
- left="10"
label="{_viewResourceConstants.BTN_LABEL_BACK}"
enabled="true"
click="handleFirstStepBackBtnClick(event)"/>
@@ -3648,7 +3880,6 @@
styleName="mainBtnStyle"
width="{_standardButtonWidth}"
height="32"
- left="10"
label="{_viewResourceConstants.BTN_LABEL_BACK}"
enabled="true"
click="handleSecondStepBackBtnClick(event)"/>
@@ -3704,6 +3935,16 @@
editable="false"/>
</s:VGroup>
</s:HGroup>
+ <!-- <s:HGroup
+ width="100%"
+ height="20"
+ horizontalAlign="center"
+ verticalAlign="middle">
+ <s:CheckBox id="installChkBx"
+ label="{_viewResourceConstants.INSTALL_AGREE_ALL}"
+ selected="false"
+ visible="true"/>
+ </s:HGroup>-->
</s:Panel>
<s:Panel id="thirdStepGroup"
title="{_viewResourceConstants.INFO_INSTALLING}"
diff --git a/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as b/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
new file mode 100644
index 0000000..07a85c4
--- /dev/null
+++ b/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
@@ -0,0 +1,127 @@
+/**
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+
+/**
+ *
+ * This is a really hackey way to intercept all the HTTPS calls and send them via
+ * as3httpdclient instead of the browser-captured URLLoader. Don't follow this
+ * example -- refactor your application to avoid having to do this.
+ *
+ */
+package org.apache.flex.packageflexsdk.util
+{
+ import com.adobe.net.URI;
+
+ import flash.events.ErrorEvent;
+
+ import flash.events.Event;
+ import flash.events.HTTPStatusEvent;
+ import flash.events.IOErrorEvent;
+ import flash.events.SecurityErrorEvent;
+ import flash.net.URLLoader;
+ import flash.net.URLRequest;
+ import flash.utils.ByteArray;
+
+ import org.httpclient.HttpClient;
+ import org.httpclient.events.HttpDataListener;
+ import org.httpclient.events.HttpRequestEvent;
+ import org.httpclient.events.HttpResponseEvent;
+ import org.httpclient.events.HttpStatusEvent;
+
+ public class ApacheURLLoader extends URLLoader
+ {
+
+ private var httpsData:ByteArray = new ByteArray();
+
+ public function ApacheURLLoader(request:URLRequest = null)
+ {
+ super(request);
+ }
+
+ override public function load(request:URLRequest):void
+ {
+ if (request.url.indexOf("https://") != 0)
+ {
+ super.load(request);
+ }
+ else
+ {
+ var httpsClient:HttpClient = new HttpClient();
+ var httpsClientListener:HttpDataListener = new HttpDataListener();
+
+ httpsClientListener.onConnect = function(event:HttpRequestEvent):void
+ {
+ var e:Event = new Event(Event.OPEN);
+ dispatchEvent(e);
+ };
+
+ httpsClientListener.onComplete = function(event:HttpResponseEvent):void
+ {
+ var e:HTTPStatusEvent = new HTTPStatusEvent(HTTPStatusEvent.HTTP_RESPONSE_STATUS);
+ // we are unable to emulate the full event since the built-in event handlers for status and
+ // many others are marked as private on the set functions.
+ dispatchEvent(e);
+ };
+
+ httpsClientListener.onDataComplete = function(event:HttpResponseEvent, incomingData:ByteArray):void
+ {
+ data = new ByteArray();
+ data.writeBytes(incomingData);
+ data.position=0;
+ var e:Event = new Event(Event.COMPLETE);
+ dispatchEvent(e);
+ };
+
+ httpsClientListener.onStatus = function(event:HttpStatusEvent):void
+ {
+ var e:HTTPStatusEvent = new HTTPStatusEvent(HTTPStatusEvent.HTTP_STATUS);
+ // we are unable to emulate the full event since the built-in event handlers for status and
+ // many others are marked as private on the set functions.
+ dispatchEvent(e);
+ };
+
+ httpsClientListener.onError = function(event:ErrorEvent):void
+ {
+ var e:IOErrorEvent = new IOErrorEvent(IOErrorEvent.NETWORK_ERROR);
+ e.text = event.text;
+ dispatchEvent(e);
+ };
+
+ // ProgressEvent is not available in this manner.
+ // We can't emulate the HTTP Status Event. It is internal to the Flash Player and won't
+ // let us override the status item.
+
+ this.httpsData = new ByteArray();
+ httpsClient.get(new URI(request.url), httpsClientListener);
+ }
+
+ }
+
+ private function httpsSecurityError(event:SecurityErrorEvent):void
+ {
+ dispatchEvent(event.clone());
+ }
+
+ private function httpsIOError(event:IOErrorEvent):void
+ {
+ dispatchEvent(event.clone());
+ }
+
+ }
+
+}