You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by qu...@apache.org on 2015/06/01 00:26:44 UTC
[2/6] git commit: [flex-utilities] [refs/heads/develop] - Added
ApacheURLLoader component that extends URLLoader. This new component is only
different from URLLoader in that it looks for https connections and uses
as3httpclient for these connections to b
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd083afa/installer/src/InstallApacheFlex.mxml
----------------------------------------------------------------------
diff --git a/installer/src/InstallApacheFlex.mxml b/installer/src/InstallApacheFlex.mxml
index 830a223..6c91555 100644
--- a/installer/src/InstallApacheFlex.mxml
+++ b/installer/src/InstallApacheFlex.mxml
@@ -101,7 +101,7 @@ variables are not required because the locations of these pieces are known.
<fx:Script><![CDATA[
import flash.globalization.LocaleID;
import flash.globalization.StringTools;
-
+
import mx.collections.ArrayCollection;
import mx.core.IFlexDisplayObject;
import mx.events.FlexEvent;
@@ -113,15 +113,19 @@ variables are not required because the locations of these pieces are known.
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.utils.StringUtil;
-
+
+ import org.apache.flex.packageflexsdk.util.ApacheURLLoader;
+
import spark.events.IndexChangeEvent;
import spark.events.TextOperationEvent;
-
+
// 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 AntClasses;
+
+ AntClasses;
+
import org.apache.flex.ant.Ant;
import org.apache.flex.ant.tags.Checksum;
import org.apache.flex.ant.tags.Copy;
@@ -144,16 +148,16 @@ variables are not required because the locations of these pieces are known.
import org.as3commons.zip.ZipEvent;
import org.as3commons.zip.ZipFile;
import org.osmf.utils.OSMFStrings;
-
+
import ws.tink.spark.controls.StepItem;
import ws.tink.spark.skins.controls.InstallApacheFlexSkin;
-
+
// embed us strings so we can always have them if we can't get to the locale files
[Embed(source="properties/en_US.properties", mimeType="application/octet-stream")]
private var en_US_Properties:Class;
-
+
private var cleanedUp:Boolean;
-
+
private var _mirrorURLCGI:String;
private var _useMirror:Boolean = true;
private var _latestVersion:String;
@@ -170,21 +174,21 @@ variables are not required because the locations of these pieces are known.
private var nocache:Boolean = true;
private var wasAborted:Boolean;
private var newSDKSelected:Boolean = true;
-
+
public var installerAppPath:String;
public var installerAppFileName:String;
-
+
// loader needs to be in instance var otherwise it can get GC'd.
// We only load one thing at a time, so we can all share this
// var
- private var loader:URLLoader;
-
+ private var loader:ApacheURLLoader;
+
/**
* Utility Singleton Instances
*/
private var _md5CompareUtil:MD5CompareUtil = MD5CompareUtil.instance;
private var _mirrorURLUtil:MirrorURLUtil = MirrorURLUtil.instance;
-
+
/**
* Apache Flex binary distribution
*
@@ -197,16 +201,19 @@ variables are not required because the locations of these pieces are known.
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 = "";
-
+ [Bindable]
+ private var APACHE_FLEX_BIN_DISTRO_VERSION:String = "";
+ [Bindable]
+ private var APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY:String = "";
+
/**
* Adobe AIR SDK
*
* Values stored in sdk-installer-config.xml edit file to change
*
*/
- [Bindable] private var AIR_VERSIONS:ArrayCollection = new ArrayCollection();
+ [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;
@@ -214,27 +221,29 @@ variables are not required because the locations of these pieces are known.
private var ADOBE_AIR_SDK_MAC_URL:String;
private var ADOBE_AIR_SDK_LINUX_FILE:String;
private var ADOBE_AIR_SDK_LINUX_URL:String;
-
+
/**
* Adobe Flash Player
*
* Values stored in sdk-installer-config.xml edit file to change
*
*/
- [Bindable] private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection();
+ [Bindable]
+ private var FLASH_PLAYER_VERSIONS:ArrayCollection = new ArrayCollection();
private var FLASH_PLAYER_VERSION:String = "11.1";
private var FLASH_PLAYER_SWF_VERSION:String = "14";
private var ADOBE_FB_GLOBALPLAYER_SWC_FILE:String;
private var ADOBE_FB_GLOBALPLAYER_SWC_URL:String;
-
+
/**
* Apache Flex
*
* Values stored in sdk-installer-config.xml edit file to change
*
*/
- [Bindable] private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
-
+ [Bindable]
+ private var FLEX_VERSIONS:ArrayCollection = new ArrayCollection();
+
/**
*
* SwfObject
@@ -242,7 +251,7 @@ variables are not required because the locations of these pieces are known.
*/
private var SWF_OBJECT_FILE:String;
private var SWF_OBJECT_URL:String;
-
+
/**
* Optional installs
*
@@ -250,10 +259,10 @@ variables are not required because the locations of these pieces are known.
private var OSMF_SWC_FILE:String;
private var OSMF_SWC_URL:String;
private var OSMF_SWF_FILE:String = "osmf.swf";
-
+
private var BLAZEDS_FILE:String;
private var BLAZEDS_URL:String;
-
+
private var AFE_FILE:String;
private var AFE_URL:String;
private var AGLJ40_FILE:String;
@@ -262,7 +271,7 @@ variables are not required because the locations of these pieces are known.
private var FLEX_FONTKIT_URL:String;
private var RIDEAU_FILE:String;
private var RIDEAU_URL:String;
-
+
[Bindable]
private var _flexHome:String;
private var _flexTemp:String;
@@ -279,21 +288,21 @@ variables are not required because the locations of these pieces are known.
private var _rideauJarFile:File;
private var _osmfSWCFile:File;
private var _osmfSWFFile:File;
-
+
private var _os:OS = new OS();
- private var _loader:URLLoader;
+ 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;
-
+
private var languageOverride:String;
private var configOverride:String = "";
private var stepsOverride:String = "";
private var installOverride:String = "";
-
+
private var overlaying:Boolean;
private var usingXML:Object;
private var additionalProps:Object = {};
@@ -304,14 +313,14 @@ variables are not required because the locations of these pieces are known.
private var stepIDs:Vector.<String> = new Vector.<String>();
private var stepLabels:Vector.<String> = new Vector.<String>();
private var currentStep:int = 0;
-
+
private var lastLicenseItemSelected:int = 0;
-
+
private var customMenuItem1:ContextMenuItem = new ContextMenuItem("Show Dev Builds");
private var customMenuItem2:ContextMenuItem = new ContextMenuItem("Configure Download Cache...");
private var customMenuItem3:ContextMenuItem = new ContextMenuItem("Enable Verbose Logging");
private var customMenuItem4:ContextMenuItem = new ContextMenuItem("Enable Progress Logging");
-
+
[Bindable]
private var _viewResourceConstants:ViewResourceConstants;
[Bindable]
@@ -326,14 +335,14 @@ variables are not required because the locations of these pieces are known.
private var _currentLicenseLabel:String;
[Bindable]
public var _messages:ArrayCollection = new ArrayCollection();
-
+
private var _lastTag:String;
private var _lastPublicMessage:String;
public function set lastPublicMessage(s:String):void
{
var tag:String;
var c:int;
-
+
c = s.indexOf("[");
if (c != -1)
{
@@ -345,56 +354,68 @@ variables are not required because the locations of these pieces are known.
}
}
if (tag && tag == _lastTag && tag == "get")
+ {
_lastPublicMessage += "\n" + s;
+ }
else
+ {
_lastPublicMessage = s;
+ }
_lastTag = tag;
dispatchEvent(new Event("messageChanged"));
}
-
+
[Bindable("messageChanged")]
public function get lastFilteredPublicMessage():String
{
return _lastPublicMessage;
}
-
+
private function getInvoke():void
{
var nativeApplication:NativeApplication = NativeApplication.nativeApplication;
nativeApplication.addEventListener(InvokeEvent.INVOKE, parseArgs);
}
-
- [Bindable] private var _standardButtonWidth:Number = 88;
-
+
+ [Bindable]
+ private var _standardButtonWidth:Number = 88;
+
public function setButtonWidths():void
{
var calc:CalcButtonWidth = new CalcButtonWidth(hiddenButton);
-
+
calc.buttonWidth(installLogBtn);
calc.buttonWidth(openApacheFlexFolderBtn);
-
+
_standardButtonWidth = calc.maxButtonWidth([installBtn, browseBtn, closeBtn, nextBtn, firstStepBackBtn, secondStepBackBtn]);
}
-
+
private function parseArgs(event:InvokeEvent):void
{
- for each (var s:String in event.arguments) {
- if (s.indexOf("-language=") == 0) {
+ for each (var s:String in event.arguments)
+ {
+ if (s.indexOf("-language=") == 0)
+ {
languageOverride = s.substring(10);
}
- if (s.indexOf("-config=") == 0) {
+ if (s.indexOf("-config=") == 0)
+ {
configOverride = s.substring(8);
}
- if (s.indexOf("-install=") == 0) {
+ if (s.indexOf("-install=") == 0)
+ {
installOverride = s.substring(9);
}
- if (s.indexOf("-steps=") == 0) {
+ if (s.indexOf("-steps=") == 0)
+ {
stepsOverride = s.substring(7);
}
- if (s.indexOf("-debug") == 0) {
+ if (s.indexOf("-debug") == 0)
+ {
debugMode = true;
}
- if (s.indexOf("-log=") == 0) {
+ if (s.indexOf("-log=") == 0)
+ {
debugMode = true;
logFile = s.substring(5);
}
@@ -404,7 +425,7 @@ variables are not required because the locations of these pieces are known.
downloadCacheFolder = so.data.downloadCacheFolder;
userDefaultLanguage = so.data.userDefaultLanguage;
}
-
+
protected function handleApplicationComplete(event:FlexEvent):void
{
CursorManager.setBusyCursor();
@@ -432,11 +453,13 @@ variables are not required because the locations of these pieces are known.
abortInstallation("Internet connection unavailable.");
}
}
-
+
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
{
if (currentStep > 0)
+ {
updateActivityStep(stepLabels[currentStep - 1], StepItem.ERROR);
+ }
if (event.error is Error)
{
var error:Error = event.error as Error;
@@ -457,7 +480,7 @@ variables are not required because the locations of these pieces are known.
abortInstallation(event.toString());
}
}
-
+
/**
* Define on ResourceManager all keys for translation.
* If some key is not present on any other language selected by user, the default value will be displayed
@@ -467,7 +490,7 @@ variables are not required because the locations of these pieces are known.
{
selectDefaultLanguage();
}
-
+
private function getIndexOfEnUS():int
{
for (var i:int = 0; i < _langSelect.dataProvider.length; i++)
@@ -479,24 +502,26 @@ variables are not required because the locations of these pieces are known.
}
return -1;
}
-
+
private function updateWindowTitle():void
{
if (_viewResourceConstants)
+ {
this.nativeWindow.title = StringUtil.substitute(_viewResourceConstants.INFO_WINDOW_TITLE, [APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY]);
+ }
}
-
+
protected function selectDefaultLanguageInEmergency():void
{
loadLanguage("en_US", loadUSInEmergencyComplete);
}
-
+
private function loadUSInEmergencyComplete():void
{
_viewResourceConstants = ViewResourceConstants.instance;
_viewResourceConstants.update();
}
-
+
protected function selectDefaultLanguage():void
{
loadLanguage("en_US", loadUSComplete);
@@ -505,7 +530,7 @@ variables are not required because the locations of these pieces are known.
private function loadUSComplete():void
{
var userLocale:String;
-
+
if (userDefaultLanguage)
{
userLocale = userDefaultLanguage;
@@ -514,28 +539,30 @@ variables are not required because the locations of these pieces are known.
{
userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
}
-
+
if (languageOverride)
{
userLocale = languageOverride;
}
-
+
loadDefaultLanguage(userLocale);
}
-
+
private function loadDefaultLanguage(userLocale:String):void
{
loadLanguage(userLocale, defaultLanguageLoaded);
}
-
+
private var languageURL:String;
private var languageID:String;
-
+
private function loadLanguage(userLocale:String, completeFunction:Function):void
{
if (languageURL && loader) // busy loading another language
+ {
loader.close();
-
+ }
+
if (userLocale == "en_US")
{
var ba:ByteArray = new en_US_Properties() as ByteArray;
@@ -545,16 +572,19 @@ variables are not required because the locations of these pieces are known.
return;
}
var n:int = supportedLanguages.length;
- for (var i:int = 0; i < n; i++) {
- if (supportedLanguages[i].data == userLocale) {
+ 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 = 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 {
+ loader.addEventListener(Event.COMPLETE, function (e:Event):void
+ {
languageURL = null;
installLanguage(userLocale, loader.data);
completeFunction();
@@ -565,47 +595,55 @@ variables are not required because the locations of these pieces are known.
}
completeFunction();
}
-
+
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;
-
+ }
+
var c:int = p.indexOf("=");
if (c != -1)
{
var key:String = p.substr(0, c);
- var value:String = p.substr(c+1);
+ var value:String = p.substr(c + 1);
while (value.indexOf("\\n") != -1)
+ {
value = value.replace("\\n", "\n");
+ }
resource.content[key] = value;
}
}
-
+
resourceManager.addResourceBundle(resource);
}
-
+
private function languageLoadErrorHandler(event:Event):void
{
log("Unable to load language file " + languageURL);
log(event.toString());
abortInstallation("Unable to load language file " + languageURL);
}
-
+
private function defaultLanguageLoaded():void
{
- resourceManager.localeChain = [ ViewResourceConstants.DEFAULT_LANGUAGE ];
-
+ resourceManager.localeChain = [ViewResourceConstants.DEFAULT_LANGUAGE];
+
var userLocale:String;
-
+
if (userDefaultLanguage)
{
userLocale = userDefaultLanguage;
@@ -614,79 +652,85 @@ variables are not required because the locations of these pieces are known.
{
userLocale = new StringTools(LocaleID.DEFAULT).actualLocaleIDName.replace("-", "_");
}
-
+
if (languageOverride)
{
userLocale = languageOverride;
}
log("Using Locale: " + userLocale);
-
+
var n:int = supportedLanguages.length;
for (var i:int = 0; i < n; i++)
{
if (supportedLanguages[i].data == userLocale)
{
_langSelect.selectedIndex = i;
-
- resourceManager.localeChain = [ userLocale, "en_US" ];
-
+
+ resourceManager.localeChain = [userLocale, "en_US"];
+
break;
}
}
_viewResourceConstants = ViewResourceConstants.instance;
-
+
resourceManager.addEventListener(Event.CHANGE, _viewResourceConstants.update);
-
+
_viewResourceConstants.update();
setButtonWidths();
directoryBtn.enabled = true;
-
+
updateWindow();
-
+
_mirrorURLUtil.logMessages = new LogMessagesVO(_viewResourceConstants.FETCH_MIRROR_CGI, _viewResourceConstants.FETCH_MIRROR_CGI_DONE,
_viewResourceConstants.FETCH_MIRROR_CGI_ERROR);
-
+
_mirrorURLUtil.getMirrorURL(Constants.APACHE_FLEX_URL + _mirrorURLCGI, getMirrorURLResultHandler);
CursorManager.removeBusyCursor();
-
+
checkValidOS();
}
-
+
protected function updateWindow():void
{
updateWindowTitle();
-
+
this.nativeWindow.x = Screen.mainScreen.bounds.width / 2 - this.nativeWindow.width / 2;
this.nativeWindow.y = Screen.mainScreen.bounds.height / 2 - this.nativeWindow.height / 2;
}
-
+
protected function loadXML():void
{
var request:URLRequest;
-
- if (configOverride != "") {
+
+ if (configOverride != "")
+ {
request = new URLRequest(configOverride);
- } else {
+ }
+ else
+ {
request = new URLRequest(Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
//request = new URLRequest(Constants.CONFIG_XML_NAME);
}
-
- _loader = new URLLoader();
-
- try {
+
+ _loader = new ApacheURLLoader();
+
+ try
+ {
_loader.load(request);
- } catch (error:Error) {
+ }
+ catch (error:Error)
+ {
selectDefaultLanguageInEmergency();
log("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + error.errorID + " " + error.message);
abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME);
}
-
+
_loader.addEventListener(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);
}
-
+
protected function xmlLoadStatus(event:HTTPStatusEvent):void
{
if (event.status >= 400)
@@ -695,7 +739,7 @@ variables are not required because the locations of these pieces are known.
log("\tServer Status: " + event.status);
}
}
-
+
protected function xmlError(event:IOErrorEvent):void
{
selectDefaultLanguageInEmergency();
@@ -703,40 +747,43 @@ variables are not required because the locations of these pieces are known.
log(_viewResourceConstants.ERROR_CONFIG_XML_LOAD + event.errorID);
abortInstallation("Unable to load " + Constants.APACHE_FLEX_URL + Constants.CONFIG_XML_NAME + " " + event.toString());
}
-
+
protected function xmlLoaded(event:Event):void
{
- if (setXMLVariables()) {
+ if (setXMLVariables())
+ {
_langSelect.dataProvider = supportedLanguages;
_langSelect.selectedIndex = getIndexOfEnUS();
_langSelect.enabled = true;
defineResourceManagerDefaultLanguage();
}
}
-
+
protected function checkValidOS():void
{
if (_os.isOther())
+ {
log(_viewResourceConstants.ERROR_UNSUPPORTED_OPERATING_SYSTEM);
+ }
}
-
+
private function devBuildFilterFunction(o:Object):Boolean
{
return !o.devBuild;
}
-
+
private function debugModeHandler(event:Event):void
{
debugMode = true;
customMenuItem3.caption = "Verbose Logging Enabled";
}
-
+
private function debugProgressHandler(event:Event):void
{
logProgressEvents = true;
customMenuItem4.caption = "Logging Progress Events";
}
-
+
private function devBuildShowHandler(event:Event):void
{
var item:Object = flexVersion.selectedItem;
@@ -745,7 +792,7 @@ variables are not required because the locations of these pieces are known.
flexVersion.selectedItem = item;
customMenuItem1.caption = "Showing Dev Builds";
}
-
+
private function downloadCacheHandler(event:Event):void
{
var dlg:CacheDialog = new CacheDialog();
@@ -755,7 +802,7 @@ variables are not required because the locations of these pieces are known.
dlg.cb.selected = usingDownloadCache;
dlg.folder.text = downloadCacheFolder;
}
-
+
private function updateDownloadCache(event:Event):void
{
downloadCacheFolder = event.target.folder.text;
@@ -765,13 +812,13 @@ variables are not required because the locations of these pieces are known.
so.data.downloadCacheFolder = downloadCacheFolder;
so.flush();
}
-
+
protected function setXMLVariables():Boolean
{
- try
+ try
{
var data:XML = XML(_loader.data);
- }
+ }
catch (e:Error)
{
log("Error parsing configuration file");
@@ -782,57 +829,67 @@ variables are not required because the locations of these pieces are known.
if (firstTime)
{
firstTime = false;
-
+
_latestVersion = data.version.latest.toString();
-
+
installerAppPath = data.installer.(@name == 'SDKInstallerApp').@path.toString();
installerAppFileName = data.installer.(@name == 'SDKInstallerApp').@file.toString();
-
+
_mirrorURLCGI = data.mirror.(@name == 'MirrorURLCGI').@file.toString();
-
+
customMenuItem1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, devBuildShowHandler);
customMenuItem2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, downloadCacheHandler);
customMenuItem3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugModeHandler);
customMenuItem4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, debugProgressHandler);
-
+
var contextMenuCustomItems:Array = ContextMenu(contextMenu).customItems;
contextMenuCustomItems.push(customMenuItem1);
contextMenuCustomItems.push(customMenuItem2);
contextMenuCustomItems.push(customMenuItem3);
contextMenuCustomItems.push(customMenuItem4);
-
+
var name:String;
var versionString:String;
var versionID:String;
-
+
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() };
+ var item:Object = {
+ label: lang.@name.toString(),
+ data: lang.@id.toString(),
+ path: lang.@path.toString()
+ };
supportedLanguages.addItem(item);
}
-
+
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) {
+ 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});
+ AIR_VERSIONS.addItem({
+ label: "AIR " + displayVersion, version: versionString, versionID: versionID,
+ path: airPath, file: airFile
+ });
}
-
- if (this.airVersion.selectedIndex == -1) {
+
+ if (this.airVersion.selectedIndex == -1)
+ {
this.airVersion.selectedIndex = airVersions.indexOf(selected);
}
-
+
var flexData:XMLList = data.products.children();
var selectedFlexVersion:int;
for each (var productData:XML in flexData)
@@ -844,7 +901,8 @@ variables are not required because the locations of these pieces are known.
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) {
+ 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();
@@ -855,92 +913,109 @@ variables are not required because the locations of these pieces are known.
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});
+ }
+ 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
+ });
}
}
-
+
FLEX_VERSIONS.filterFunction = devBuildFilterFunction;
FLEX_VERSIONS.refresh();
flexVersion.validateNow();
-
- if (this.flexVersion.selectedIndex == -1) {
+
+ if (this.flexVersion.selectedIndex == -1)
+ {
this.flexVersion.selectedIndex = selectedFlexVersion;
}
-
+
var selectedFlexVersionObject:Object = this.flexVersion.selectedItem;
updateFlexVersionStrings(selectedFlexVersionObject);
-
- if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH) {
+
+ if (!APACHE_FLEX_BIN_DISTRO_FILE || !APACHE_FLEX_BIN_DISTRO_PATH)
+ {
log(_viewResourceConstants.ERROR_INVALID_SDK_URL);
keepGoing = false;
}
-
+
var flashData:XMLList = data.flashsdk.versions;
var flashVersionList:XMLList = flashData[0].children();
var flashPlayerVersions:Array = [];
selected = flashData[0]["@default"].toString();
- for each (var flashVersion:XML in flashVersionList) {
+ for each (var flashVersion:XML in flashVersionList)
+ {
displayVersion = 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) {
+ 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});
+ FLASH_PLAYER_VERSIONS.addItem({
+ label: "Flash Player " + displayVersion, version: versionString, swfVersion: swfVersion,
+ versionID: versionID, path: flashPath, file: flashFile
+ });
}
}
-
- if (this.flashPlayerVersion.selectedIndex == -1) {
+
+ if (this.flashPlayerVersion.selectedIndex == -1)
+ {
this.flashPlayerVersion.selectedIndex = flashPlayerVersions.indexOf(selected);
}
}
-
- ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version==AIR_VERSION).file.toString();
- ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version==AIR_VERSION).path.toString();
- if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL)) {
+
+ ADOBE_AIR_SDK_WIN_FILE = data.airsdk.windows.versions.children().(@version == AIR_VERSION).file.toString();
+ ADOBE_AIR_SDK_WIN_URL = data.airsdk.windows.versions.children().(@version == AIR_VERSION).path.toString();
+ if (_os.isWindows() && (!ADOBE_AIR_SDK_WIN_FILE || !ADOBE_AIR_SDK_WIN_URL))
+ {
log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_WINDOWS);
keepGoing = false;
}
ADOBE_AIR_SDK_WIN_URL += ADOBE_AIR_SDK_WIN_FILE;
-
- ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version==AIR_VERSION).file.toString();
- ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version==AIR_VERSION).path.toString();
- if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL)) {
+
+ ADOBE_AIR_SDK_MAC_FILE = data.airsdk.mac.versions.children().(@version == AIR_VERSION).file.toString();
+ ADOBE_AIR_SDK_MAC_URL = data.airsdk.mac.versions.children().(@version == AIR_VERSION).path.toString();
+ if (_os.isMac() && (!ADOBE_AIR_SDK_MAC_FILE || !ADOBE_AIR_SDK_MAC_URL))
+ {
log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_MAC);
keepGoing = false;
}
ADOBE_AIR_SDK_MAC_URL += ADOBE_AIR_SDK_MAC_FILE;
-
- ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version==AIR_VERSION).file.toString();
- ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version==AIR_VERSION).path.toString();
- if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL)) {
+
+ ADOBE_AIR_SDK_LINUX_FILE = data.airsdk.linux.versions.children().(@version == AIR_VERSION).file.toString();
+ ADOBE_AIR_SDK_LINUX_URL = data.airsdk.linux.versions.children().(@version == AIR_VERSION).path.toString();
+ if (_os.isLinux() && (!ADOBE_AIR_SDK_LINUX_FILE || !ADOBE_AIR_SDK_LINUX_URL))
+ {
log(_viewResourceConstants.ERROR_INVALID_AIR_SDK_URL_LINUX);
keepGoing = false;
}
ADOBE_AIR_SDK_LINUX_URL += ADOBE_AIR_SDK_LINUX_FILE;
-
- ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).file.toString();
- ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).path.toString();
- FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version==FLASH_PLAYER_VERSION).swfversion.toString();
- if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL) {
+
+ ADOBE_FB_GLOBALPLAYER_SWC_FILE = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).file.toString();
+ ADOBE_FB_GLOBALPLAYER_SWC_URL = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).path.toString();
+ FLASH_PLAYER_SWF_VERSION = data.flashsdk.versions.children().(@version == FLASH_PLAYER_VERSION).swfversion.toString();
+ if (!ADOBE_FB_GLOBALPLAYER_SWC_FILE || !ADOBE_FB_GLOBALPLAYER_SWC_URL)
+ {
log(_viewResourceConstants.ERROR_INVALID_FLASH_PLAYER_SWC_URL);
keepGoing = false;
}
ADOBE_FB_GLOBALPLAYER_SWC_URL += ADOBE_FB_GLOBALPLAYER_SWC_FILE;
-
+
SWF_OBJECT_FILE = data.swfobject.@file.toString();
SWF_OBJECT_URL = data.swfobject.@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" )
+ 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();
@@ -952,40 +1027,41 @@ variables are not required because the locations of these pieces are known.
OSMF_SWC_URL = data["OSMF_SWC_2.0"].@path.toString();
_useOSMF2 = true;
}
-
+
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();
-
+
AGLJ40_FILE = data.fontswf.aglj40.@file.toString();
AGLJ40_URL = data.fontswf.aglj40.@path.toString();
-
+
FLEX_FONTKIT_FILE = data.fontswf["flex-fontkit"].@file.toString();
FLEX_FONTKIT_URL = data.fontswf["flex-fontkit"].@path.toString();
-
+
RIDEAU_FILE = data.fontswf.rideau.@file.toString();
RIDEAU_URL = data.fontswf.rideau.@path.toString();
-
-
+
+
return keepGoing;
}
-
+
protected function updateFlexVersionStrings(selectedFlexVersionObject:Object):void
{
APACHE_FLEX_BIN_DISTRO_FILE_SHORT = selectedFlexVersionObject.shortName;
APACHE_FLEX_BIN_DISTRO_VERSION = selectedFlexVersionObject.version;
APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = selectedFlexVersionObject.label;
-
+
APACHE_FLEX_BIN_DISTRO_FILE = selectedFlexVersionObject.fileName;
APACHE_FLEX_BIN_DISTRO_PATH = selectedFlexVersionObject.path;
- legacy = selectedFlexVersionObject.legacy;
+ legacy = selectedFlexVersionObject.legacy;
nocache = selectedFlexVersionObject.nocache;
APACHE_FLEX_BIN_INSTALLER_FILE = selectedFlexVersionObject.prefix + "installer-config.xml";
-
+
// ApacheFlex is full URL so download directly and dont use mirror useful for testing release candidates
- if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0) {
+ if (APACHE_FLEX_BIN_DISTRO_PATH.indexOf("http") == 0)
+ {
_useMirror = false;
}
else
@@ -995,69 +1071,85 @@ variables are not required because the locations of these pieces are known.
newSDKSelected = true;
}
-
+
private function useMirrorPath(path:String):String
{
- if (_useMirror) {
+ if (_useMirror)
+ {
return path;
}
-
+
return "";
}
-
+
private function getMirrorURLResultHandler():void
{
var logMessages:ArrayCollection = ILog(_mirrorURLUtil).log;
var i:int;
var n:int = logMessages.length;
- for (i = 0; i < n; i++) {
+ for (i = 0; i < n; i++)
+ {
log(String(logMessages.getItemAt(i)));
}
-
- if (_mirrorURLUtil.errorOccurred) {
+
+ if (_mirrorURLUtil.errorOccurred)
+ {
abortInstallation("mirrorURLUtil.errorOccurred");
main();
- } else {
+ }
+ else
+ {
updatePaths();
}
-
+
}
-
+
protected function updatePaths():void
{
if (APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.URL_PREFIX.length) == Constants.URL_PREFIX
- || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.FILE_PREFIX.length) == Constants.FILE_PREFIX
- || APACHE_FLEX_BIN_DISTRO_PATH.substr(0, Constants.HTTPS_PREFIX.length) == Constants.HTTPS_PREFIX) {
+ || APACHE_FLEX_BIN_DISTRO_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 != "") {
+ if (stepsOverride != "")
+ {
APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride;
- } else {
+ }
+ else
+ {
APACHE_FLEX_BIN_INSTALLER_URL = APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE;
}
- } else {
+ }
+ else
+ {
APACHE_FLEX_BIN_DISTRO_URL = useMirrorPath(_mirrorURLUtil.mirrorURL) + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE;
- if (stepsOverride != "") {
+ if (stepsOverride != "")
+ {
APACHE_FLEX_BIN_INSTALLER_URL = stepsOverride;
- } else {
+ }
+ else
+ {
APACHE_FLEX_BIN_INSTALLER_URL = MD5CompareUtil.MD5_DOMAIN + APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_INSTALLER_FILE;
}
}
-
- if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX) {
+
+ if (installerAppPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX)
+ {
installerAppPath = useMirrorPath(_mirrorURLUtil.mirrorURL) + installerAppPath;
}
-
+
main();
}
-
+
protected function main():void
{
-
- if (shouldUpdate()) {
+
+ if (shouldUpdate())
+ {
doUpdate();
}
}
-
+
private function logVersion():void
{
if (!loggedVersion)
@@ -1066,13 +1158,13 @@ variables are not required because the locations of these pieces are known.
var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
var xmlns:Namespace = new Namespace(applicationDescriptor.namespace());
var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString();
-
+
// Log the Installer version to help with any support issues that arise.
log("Installer version " + currentVersion + " (" + _os.os + ")", 0);
loggedVersion = true;
}
}
-
+
protected function shouldUpdate():Boolean
{
var shouldUpdate:Boolean = false;
@@ -1080,27 +1172,34 @@ variables are not required because the locations of these pieces are known.
var applicationDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
var xmlns:Namespace = new Namespace(applicationDescriptor.namespace());
var currentVersion:String = applicationDescriptor.xmlns::versionNumber.toString();
-
+
logVersion();
-
+
var availBuildNumbers:Array = _latestVersion.split(".");
var currentBuildNumbers:Array = currentVersion.split(".");
-
- if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0])) {
+
+ if (parseInt(availBuildNumbers[0]) > parseInt(currentBuildNumbers[0]))
+ {
return true;
- } else if (parseInt(availBuildNumbers[0]) == parseInt(currentBuildNumbers[0])) {
- if (parseInt(availBuildNumbers[1]) > parseInt(currentBuildNumbers[1])) {
+ }
+ 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])) {
+ }
+ else if (parseInt(availBuildNumbers[1]) == parseInt(currentBuildNumbers[1]))
+ {
+ if (parseInt(availBuildNumbers[2]) > parseInt(currentBuildNumbers[2]))
+ {
return true;
}
}
}
return false;
-
+
}
-
+
protected function doUpdate():void
{
var updaterDialog:UpdaterDialog = UpdaterDialog(PopUpManager.createPopUp(this, UpdaterDialog, true));
@@ -1108,38 +1207,49 @@ variables are not required because the locations of these pieces are known.
updaterDialog.latestVersion = _latestVersion;
PopUpManager.centerPopUp(updaterDialog);
}
-
+
protected function handleUpdaterDialogClose(event:Event):void
{
PopUpManager.removePopUp(IFlexDisplayObject(event.target));
}
-
+
protected function handleInstallBtnClick(event:MouseEvent):void
{
var airVersionID:String = airVersion.selectedItem.versionID;
var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
-
+
log("SDK version " + APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY);
-
+
if (flexVersion.selectedItem.needsAIR)
{
if (airVersionID)
+ {
log("AIR version " + airVersionID);
+ }
else
+ {
log("AIR version " + AIR_VERSION);
+ }
}
-
+
if (flexVersion.selectedItem.needsFlash)
{
if (flashVersionID)
+ {
log("Flash Player version " + flashVersionID);
+ }
else
+ {
log("Flash Player version " + FLASH_PLAYER_VERSION);
+ }
}
-
- if (flexSDKTxtInput.text == "") {
+
+ if (flexSDKTxtInput.text == "")
+ {
log(_viewResourceConstants.INFO_ENTER_VALID_FLEX_SDK_PATH);
- } else {
+ }
+ else
+ {
_langSelect.enabled = false;
_flexHome = flexSDKTxtInput.text;
resetInstallStepsActivity();
@@ -1148,30 +1258,30 @@ variables are not required because the locations of these pieces are known.
install();
}
}
-
+
protected function handleZeroStepNextBtnClick(event:MouseEvent):void
{
directoryBtn.enabled = false;
-
+
AIR_VERSION = airVersion.selectedItem.version;
var airVersionID:String = airVersion.selectedItem.versionID;
FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
var flashVersionID:String = flashPlayerVersion.selectedItem.versionID;
-
+
setXMLVariables(); // as AIR and Flash version may of changed
-
+
if (!legacy)
{
if (newSDKSelected)
{
- 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, handleInstallerXMLError);
-
- loader.load(req);
+ 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);
+
+ loader.load(req);
}
}
else
@@ -1179,34 +1289,37 @@ variables are not required because the locations of these pieces are known.
showDirectoryState();
}
}
-
+
protected function handleFirstStepBackBtnClick(event:MouseEvent):void
{
showDefaultState();
}
-
+
protected function handleSecondStepBackBtnClick(event:MouseEvent):void
{
showDirectoryState();
}
-
+
protected function handleFirstStepNextBtnClick(event:MouseEvent):void
{
// Quick check to see if the selected directory is writable
- try {
+ try
+ {
var f:File = new File(_flexHome + File.separator + "flex.txt");
checkDirWritable(f);
- } catch (e:Error) {
+ }
+ 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;
}
-
+
showOptionsState();
}
-
+
protected function handleInstallerXMLLoaded(event:Event):void
{
var data:XML = XML(event.target.data);
@@ -1216,9 +1329,9 @@ variables are not required because the locations of these pieces are known.
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");
+ getLocalizedString(comp, "message"), getLocalizedString(comp, "license"),
+ getLocalizedString(comp, "licenseURL"),
+ comp.@id.toString(), comp.@required.toString() == "true");
licensePropertyMap[comp.@property.toString()] = vo;
_installerComponentsDataProvider.addItem(vo);
}
@@ -1245,7 +1358,7 @@ variables are not required because the locations of these pieces are known.
currentState = "directoryState";
System.disposeXML(data);
}
-
+
private function getLocalizedString(xml:XML, propName:String):String
{
var compBundle:XMLList;
@@ -1266,26 +1379,28 @@ variables are not required because the locations of these pieces are known.
{
var s:String = compBundle[0].toString();
if (s.length > 0)
+ {
return s;
+ }
}
}
}
return "";
}
-
+
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 showDefaultState():void
{
zeroStepGroup.visible = true;
directoryBtn.enabled = true;
currentState = "default";
}
-
+
protected function showDirectoryState():void
{
initiateInstallStepsActivity();
@@ -1295,17 +1410,17 @@ variables are not required because the locations of these pieces are known.
}
currentState = "directoryState";
}
-
+
protected function showOptionsState():void
{
currentState = "optionsState";
checkIfAllRequiredComponentsPromptsAnswered();
}
-
+
protected function initiateInstallStepsActivity():void
{
_installationSteps = new ArrayCollection();
-
+
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK));
@@ -1317,26 +1432,28 @@ variables are not required because the locations of these pieces are known.
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_SWFOBJECT));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF));
}
-
+
protected function resetInstallStepsActivity():void
{
- for each(var step:StepItem in _installationSteps) {
+ for each(var step:StepItem in _installationSteps)
+ {
step.status = StepItem.NORMAL;
}
}
-
+
protected function addOptionalComponentsToInstallSteps():void
{
if (usingXML)
{
_installationSteps = new ArrayCollection();
-
+
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_CREATE_DIRECTORIES));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_VERIFY_FLEX_SDK));
_installationSteps.addItem(new StepItem(_viewResourceConstants.STEP_UNZIP_FLEX_SDK));
-
- for each (var stepData:XML in installStepsData) {
+
+ for each (var stepData:XML in installStepsData)
+ {
var propName:String = stepData.@property.toString();
if (!propName || InstallerComponentVO(licensePropertyMap[propName]).selected)
{
@@ -1348,13 +1465,15 @@ variables are not required because the locations of these pieces are known.
}
return;
}
- for each (var obj:InstallerComponentVO in _installerComponentsDataProvider) {
- if (!obj.required && obj.selected) {
+ for each (var obj:InstallerComponentVO in _installerComponentsDataProvider)
+ {
+ if (!obj.required && obj.selected)
+ {
_installationSteps.addItem(new StepItem(obj.label));
}
}
}
-
+
protected function initializeInstallerComponentsDataProvider():void
{
var versionNum:int = int(APACHE_FLEX_BIN_DISTRO_VERSION.split('.').join(''));
@@ -1377,40 +1496,40 @@ variables are not required because the locations of these pieces are known.
}
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_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_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,
@@ -1418,38 +1537,40 @@ variables are not required because the locations of these pieces are known.
// "STEP_REQUIRED_INSTALL_OFL_FONTS", true));
}
}
-
+
protected function install():void
{
createDirectories();
}
-
+
protected function handleAirVersionChange(event:Event):void
{
AIR_VERSION = airVersion.selectedItem.version;
-
+
// Match AIR and Flash versions
- if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex) {
+ if (flashPlayerVersion.selectedIndex != airVersion.selectedIndex)
+ {
flashPlayerVersion.selectedIndex = airVersion.selectedIndex;
FLASH_PLAYER_VERSION = FLASH_PLAYER_VERSIONS[airVersion.selectedIndex].version;
}
}
-
+
protected function handleFlashPlayerVersionChange(event:Event):void
{
FLASH_PLAYER_VERSION = flashPlayerVersion.selectedItem.version;
-
+
// Match AIR and Flash versions
- if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex) {
+ if (airVersion.selectedIndex != flashPlayerVersion.selectedIndex)
+ {
airVersion.selectedIndex = flashPlayerVersion.selectedIndex;
AIR_VERSION = AIR_VERSIONS[flashPlayerVersion.selectedIndex].version;
}
}
-
+
protected function handleFlexVersionChange(event:Event):void
{
/*APACHE_FLEX_BIN_DISTRO_VERSION = flexVersion.selectedItem.version;
- APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/
+ APACHE_FLEX_BIN_DISTRO_VERSION_DISPLAY = flexVersion.selectedItem.label;*/
var item:Object = flexVersion.selectedItem;
airVersion.enabled = item.needsAIR;
flashPlayerVersion.enabled = item.needsFlash;
@@ -1458,15 +1579,15 @@ variables are not required because the locations of these pieces are known.
updateWindowTitle();
InstallApacheFlexSkin(skin).textIcon.source = item.icon;
}
-
+
protected function browseForSDK(event:MouseEvent):void
{
var file:File = new File();
-
+
file.addEventListener(Event.SELECT, flexSDKDirSelected, false, 0, true);
file.browseForDirectory(_viewResourceConstants.INFO_SELECT_DIRECTORY);
}
-
+
protected function checkDirWritable(file:File):void
{
var ba:ByteArray = new ByteArray();
@@ -1474,17 +1595,20 @@ variables are not required because the locations of these pieces are known.
writeFileToDirectory(file, ba);
file.deleteFile();
}
-
+
protected function flexSDKDirSelected(event:Event):void
{
var selectedDir:File = File(event.target);
var overlay:Boolean = flexVersion.selectedItem.overlay;
-
+
// Quick check to see if the selected directory is writable
- try {
+ try
+ {
var f:File = new File(selectedDir.nativePath + File.separator + "flex.txt");
checkDirWritable(f);
- } catch (e:Error) {
+ }
+ catch (e:Error)
+ {
log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
log(_viewResourceConstants.ERROR_DIR_REQUIRE_ADMIN_RIGHTS);
flexSDKTxtInput.text = selectedDir.nativePath;
@@ -1493,18 +1617,21 @@ variables are not required because the locations of these pieces are known.
updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
return;
}
-
+
overlaying = overlay;
if (!overlay)
{
- if (isDirectoryEmpty(selectedDir)) {
+ if (isDirectoryEmpty(selectedDir))
+ {
_flexHome = selectedDir.nativePath;
flexSDKTxtInput.text = _flexHome;
nextBtn.enabled = true;
_langSelect.enabled = true;
flexSDKTxtInput.errorString = "";
flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
- } else {
+ }
+ else
+ {
nextBtn.enabled = false;
flexSDKTxtInput.text = selectedDir.nativePath;
flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_DIR_NOT_EMPTY + " : " + selectedDir.nativePath;
@@ -1521,153 +1648,194 @@ variables are not required because the locations of these pieces are known.
flexSDKTxtInput.prompt = _viewResourceConstants.SELECT_PATH_PROMPT;
}
}
-
+
protected function handleFlexSDXTxtInputChange(event:TextOperationEvent):void
{
var tempDir:File;
var path:String = flexSDKTxtInput.text;
-
- try {
+
+ try
+ {
tempDir = new File(path);
-
- if (isDirectoryEmpty(tempDir)) {
+
+ if (isDirectoryEmpty(tempDir))
+ {
flexSDKTxtInput.errorString = "";
_flexHome = path;
nextBtn.enabled = true;
_langSelect.enabled = true;
- } else {
+ }
+ else
+ {
flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY;
nextBtn.enabled = false;
}
- } catch (e:Error) {
+ }
+ catch (e:Error)
+ {
flexSDKTxtInput.errorString = _viewResourceConstants.ERROR_INVALID_FLEX_SDK_DIRECTORY;
nextBtn.enabled = false;
}
}
-
+
protected function createDirectories():void
{
updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ACTIVE);
-
- try {
+
+ 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) {
+ }
+ catch (e:Error)
+ {
updateActivityStep(_viewResourceConstants.STEP_CREATE_DIRECTORIES, StepItem.ERROR);
log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY);
}
}
-
+
protected function downloadApacheFlexSDK():void
{
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ACTIVE);
-
- try {
+
+ 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) {
+ }
+ catch (e:Error)
+ {
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
log(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message);
abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY + "(error: " + e.message);
}
-
+
}
-
+
protected function handleApacheFlexSDKDownload(event:Event):void
{
- try {
+ try
+ {
writeFileToDirectory(_apacheFlexSDKCompressedFile, event.target.data);
- } catch (e:Error) {
+ }
+ catch (e:Error)
+ {
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
abortInstallation("handleApacheFlexSDKDownload " + e.message);
}
-
+
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.COMPLETE);
-
+
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ACTIVE);
-
+
log(_viewResourceConstants.STEP_VERIFY_FLEX_SDK);
-
+
_md5CompareUtil.addEventListener(ProgressEvent.PROGRESS, md5VerificationProgressHandler);
_md5CompareUtil.verifyMD5(_apacheFlexSDKCompressedFile, APACHE_FLEX_BIN_DISTRO_PATH + APACHE_FLEX_BIN_DISTRO_FILE, uncompressApacheFlexSDK);
}
-
+
protected function md5VerificationProgressHandler(event:ProgressEvent):void
{
if (logProgressEvents)
+ {
log("md5 progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
+ }
if (event.bytesTotal > 0)
+ {
progressBar.percent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
+ }
}
-
+
protected function handleApacheFlexSDKDownloadError(event:* = null):void
{
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK, StepItem.ERROR);
log(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK);
abortInstallation(_viewResourceConstants.ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK);
}
-
+
protected function uncompressApacheFlexSDK():void
{
- if (_md5CompareUtil.validMD5) {
- if (!_md5CompareUtil.fileIsVerified) {
+ if (_md5CompareUtil.validMD5)
+ {
+ if (!_md5CompareUtil.fileIsVerified)
+ {
updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.ERROR);
-
+
log(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
-
+
abortInstallation(_viewResourceConstants.ERROR_VERIFY_FLEX_SDK);
return;
- } else {
- updateActivityStep(_viewResourceConstants.STEP_VERIFY_FLEX_SDK, StepItem.COMPLETE);
- log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
- }
- } else {
+ }
+ 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);
-
+
log(_viewResourceConstants.INFO_VERIFY_FLEX_SDK_DONE);
}
-
+
updateActivityStep(_viewResourceConstants.STEP_UNZIP_FLEX_SDK, StepItem.ACTIVE);
-
- try {
+
+ try
+ {
log(_viewResourceConstants.INFO_UNZIPPING + _apacheFlexSDKCompressedFile.nativePath);
-
- if (_os.isWindows()) {
+
+ if (_os.isWindows())
+ {
unzip(_apacheFlexSDKCompressedFile, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError);
- } else {
+ }
+ else
+ {
untar(_apacheFlexSDKCompressedFile, _flexTempDir, handleApacheFlexSDKZipFileUnzipComplete, handleApacheFlexSDKZipFileUnzipError);
}
- } catch (e:Error) {
+ }
+ 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 (_os.isWindows())
+ {
if (usingXML)
+ {
runInstallerScript();
+ }
else
+ {
downloadAIRRuntimeKitForWindows();
- } else {
+ }
+ }
+ 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) {
+ for each(var file:File in files)
+ {
file.copyTo(_flexHomeDir.resolvePath(file.name));
}
}
@@ -1677,52 +1845,59 @@ variables are not required because the locations of these pieces are known.
}
else
{
- if (_os.isMac()) {
+ if (_os.isMac())
+ {
downloadAIRRuntimeKitForMac();
}
- else {
+ 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 != "") {
+ if (installOverride != "")
+ {
file = new File(installOverride);
}
else if (overlaying)
{
var directory:File = _flexTempDir.resolvePath(APACHE_FLEX_BIN_DISTRO_FILE_SHORT);
- if (_os.isWindows()) {
+ if (_os.isWindows())
+ {
file = _flexTempDir.resolvePath("installer.xml");
}
- else {
+ else
+ {
file = directory.resolvePath("installer.xml");
}
}
- else {
+ else
+ {
file = _flexHomeDir.resolvePath("installer.xml");
}
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
- var context:Object = { installer: true };
+ var context:Object = {installer: true};
if (usingDownloadCache)
{
context["usingDownloadCache"] = usingDownloadCache;
context["downloadCacheFolder"] = downloadCacheFolder;
}
- if (configOverride != "") {
+ if (configOverride != "")
+ {
context["xml.properties"] = configOverride;
}
if (resourceManager.localeChain.length > 1)
@@ -1732,58 +1907,74 @@ variables are not required because the locations of these pieces are known.
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;
}
-
+
if (file.exists && !ant.processXMLFile(file, context, true))
{
ant.addEventListener(Event.COMPLETE, completeHandler);
ant.addEventListener(ProgressEvent.PROGRESS, progressEventHandler);
}
else
+ {
completeHandler(null);
+ }
}
-
+
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");
+ log("progress " + event.bytesLoaded + " " + event.bytesTotal, -1, false);
}
- else if (ant.progressClass is Checksum)
+ if (event.bytesTotal > 0)
{
- progressBar.label = getLocalizedString(progressLabels, "Checksum");
+ 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 function completeHandler(event:Event):void
{
if (Ant.currentAnt && !Ant.currentAnt.project.status)
@@ -1791,26 +1982,38 @@ variables are not required because the locations of these pieces are known.
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 (Ant.currentAnt) {
+ }
+
+ 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 {
+ else
+ {
cleanup();
}
}
-
+
private var ant:Ant;
-
+
private function output(s:String):void
{
var isPublic:Boolean = false;
@@ -1821,9 +2024,13 @@ variables are not required because the locations of these pieces are known.
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;
}
@@ -1841,205 +2048,235 @@ variables are not required because the locations of these pieces are known.
}
log(s, -1, isPublic, skipLog);
}
-
+
private function enterFrameHandler(event:Event):void
{
ant.doCallback();
}
-
+
protected function downloadAIRRuntimeKitForWindows():void
{
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
-
- try {
+
+ 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) {
+ }
+ catch (e:Error)
+ {
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ERROR);
abortInstallation();
}
}
-
+
protected function downloadAIRRuntimeKitForMac():void
{
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK, StepItem.ACTIVE);
-
- try {
+
+ 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) {
+ }
+ catch (e:Error)
+ {
<TRUNCATED>