http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as new file mode 100644 index 0000000..540afb7 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as @@ -0,0 +1,60 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.model +{ + [Bindable] + public class InstallerComponentVO + { + public var label:String; + public var message:String; + public var required:Boolean; + public var selected:Boolean; + public var installed:Boolean=false; + public var aborted:Boolean=false; + public var answered:Boolean = false; + public var licenseName:String; + public var licenseURL:String; + public var key:String; + + public function InstallerComponentVO(label:String, + message:String, + licenseName:String, + licenseURL:String, + key:String, + required:Boolean, + selected:Boolean=false, + installed:Boolean=false, + aborted:Boolean=false, + answered:Boolean=false + ) + { + this.label = label; + this.message = message; + this.key = key; + this.required = required; + this.selected = selected; + this.installed = installed; + this.aborted = aborted; + this.answered = answered; + this.licenseName = licenseName; + this.licenseURL = licenseURL; + } + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as new file mode 100644 index 0000000..ccdde59 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as @@ -0,0 +1,67 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.model +{ + import flash.system.Capabilities; + + import org.apache.flex.packageflexsdk.resource.ViewResourceConstants; + + public class OS + { + public const WINDOWS:String = "windows"; + public const MAC:String = "mac"; + public const LINUX:String = "linux"; + + public var os:String = null; + + public function OS() + { + setOS(); + } + + public function isWindows():Boolean { + return os == WINDOWS; + } + + public function isMac():Boolean { + return os == MAC; + } + + public function isLinux():Boolean { + return os == LINUX; + } + + public function isOther():Boolean { + return !(isWindows() || isMac() || isLinux()); + } + + private function setOS():void { + var operatingSystem:String = Capabilities.os; + + if (operatingSystem.search("Mac OS") != -1) { + os = MAC; + } else if (operatingSystem.search("Windows") != -1) { + os = WINDOWS; + } else if (operatingSystem.search("Linux") != -1) { + os = LINUX; + } + } + } +} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as new file mode 100644 index 0000000..8743ac1 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as @@ -0,0 +1,222 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.resource +{ + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.events.IEventDispatcher; +import flash.utils.Dictionary; +import flash.utils.Proxy; +import flash.utils.flash_proxy; + +import mx.collections.ArrayCollection; +import mx.events.PropertyChangeEvent; +import mx.resources.IResourceManager; +import mx.resources.ResourceManager; + +[Bindable(event="propertyChange")] +public dynamic class ViewResourceConstants extends Proxy implements IEventDispatcher +{ + + //-------------------------------------------------------------------------- + // + // Class constants + // + //-------------------------------------------------------------------------- + + public static const BUNDLE_NAME:String = "resourceStrings"; + + public static const DEFAULT_LANGUAGE:String = "en_US"; + + //-------------------------------------------------------------------------- + // + // Class properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // instance + //---------------------------------- + + private static var _instance:ViewResourceConstants; + + public static function get instance():ViewResourceConstants + { + if (!_instance) + _instance = new ViewResourceConstants(new SE()); + + return _instance; + } + + //-------------------------------------------------------------------------- + // + // Constructor + // + //-------------------------------------------------------------------------- + + public function ViewResourceConstants(se:SE) + { + _eventDispatcher = new EventDispatcher(); + + //RuntimeLocale.instance.installResources(); + } + + //-------------------------------------------------------------------------- + // + // Variables + // + //-------------------------------------------------------------------------- + + private var _content:Dictionary; + + private var _eventDispatcher:EventDispatcher; + + private var _resourceManager:IResourceManager = ResourceManager.getInstance(); + + //-------------------------------------------------------------------------- + // + // Methods + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // addEventListener + //---------------------------------- + + public function addEventListener(type:String, listener:Function, + useCapture:Boolean = false, priority:int = 0, + useWeakReference:Boolean = false):void + { + _eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference); + } + + //---------------------------------- + // dispatchEvent + //---------------------------------- + + public function dispatchEvent(event:Event):Boolean + { + return _eventDispatcher.dispatchEvent(event); + } + + //---------------------------------- + // hasProperty + //---------------------------------- + + override flash_proxy function hasProperty(name:*):Boolean + { + return _content[name] != null; + } + + //---------------------------------- + // getProperty + //---------------------------------- + + override flash_proxy function getProperty(name:*):* + { + if (!_content[name]) + { + var errorString:String = "The key was not found in the resource strings (key: '" + name + "')."; + + trace(errorString); + + throw new Error(errorString); + } + + return _content[name]; + } + + //---------------------------------- + // setProperty + //---------------------------------- + + override flash_proxy function setProperty(name:*, value:*):void + { + _content[name] = value; + } + + //---------------------------------- + // hasEventListener + //---------------------------------- + + public function hasEventListener(type:String):Boolean + { + return _eventDispatcher.hasEventListener(type); + } + + //---------------------------------- + // removeEventListener + //---------------------------------- + + public function removeEventListener(type:String, listener:Function, + useCapture:Boolean = false):void + { + _eventDispatcher.removeEventListener(type, listener, useCapture); + } + + //---------------------------------- + // update + //---------------------------------- + + public function update(event:Event = null):void + { + _content = new Dictionary(); + + var messageStringsContentDefault:Object; + var messageStringsContentLocalized:Object; + + var n:int = _resourceManager.localeChain.length; + messageStringsContentDefault = + _resourceManager.getResourceBundle(_resourceManager.localeChain[n - 1], BUNDLE_NAME).content; + + if (n > 1) + messageStringsContentLocalized = + _resourceManager.getResourceBundle(_resourceManager.localeChain[0], BUNDLE_NAME).content; + + var useLocalizedString:Boolean; + var event:Event; + for (var key:String in messageStringsContentDefault) + { + useLocalizedString = messageStringsContentLocalized && + messageStringsContentLocalized[key] && + messageStringsContentLocalized[key] != ""; + + _content[key] = (useLocalizedString) ? + messageStringsContentLocalized[key] : messageStringsContentDefault[key]; + + event = PropertyChangeEvent.createUpdateEvent(this, key, "", _content[key]); + dispatchEvent(event); + } + } + + //---------------------------------- + // willTrigger + //---------------------------------- + + public function willTrigger(type:String):Boolean + { + return _eventDispatcher.willTrigger(type); + } + +} +} + +class SE {} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as new file mode 100644 index 0000000..07a85c4 --- /dev/null +++ b/flex-installer/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()); + } + + } + +} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as new file mode 100644 index 0000000..bf0a371 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as @@ -0,0 +1,61 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.util +{ + import flash.events.Event; + + import spark.components.Button; + + public class CalcButtonWidth + { + protected static var PADDING:int = 20; + + protected var hiddenButton:Button; + + public function CalcButtonWidth(hiddenButton:Button) + { + this.hiddenButton = hiddenButton; + } + + public function buttonWidth(button:Button):int { + var width:int = 0; + + hiddenButton.label = button.label; + hiddenButton.validateNow(); + width = hiddenButton.measuredWidth + PADDING; + + if (button.width != width) { + button.width = width; + } + + return width; + } + + public function maxButtonWidth(buttons:Array):int { + var width:int = 0; + + for each (var button:Button in buttons) { + width = Math.max(width, buttonWidth(button)); + } + + return width; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as new file mode 100644 index 0000000..2a2602c --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as @@ -0,0 +1,94 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.util +{ + import flash.desktop.NativeProcess; + import flash.desktop.NativeProcessStartupInfo; + import flash.events.ErrorEvent; + import flash.events.Event; + import flash.events.IOErrorEvent; + import flash.events.NativeProcessExitEvent; + import flash.events.ProgressEvent; + import flash.filesystem.File; + import flash.net.URLLoader; + import flash.net.URLLoaderDataFormat; + import flash.net.URLRequest; + import flash.system.Capabilities; + + public class DownloadUtil + { + public static function download(url:String, completeFunction:Function, errorFunction:Function=null, progressFunction:Function=null):void + { + var loader:URLLoader = new URLLoader(); + var req:URLRequest = new URLRequest(url); + req.idleTimeout = 60000; + + loader.dataFormat = URLLoaderDataFormat.BINARY; + loader.addEventListener(Event.COMPLETE, completeFunction,false,0,true); + + if (errorFunction != null) + { + loader.addEventListener(ErrorEvent.ERROR,errorFunction,false,0,true); + loader.addEventListener(IOErrorEvent.IO_ERROR,errorFunction,false,0,true); + } + if(progressFunction != null) + { + loader.addEventListener(ProgressEvent.PROGRESS, progressFunction,false,0,true); + } + + loader.load(req); + } + + public static function invokeNativeProcess(args:Vector.<String>):void + { + var os:String = Capabilities.os.toLowerCase(); + var info:NativeProcessStartupInfo = new NativeProcessStartupInfo(); + var cmdExe:File = (os.indexOf("win") > -1) ? new File("C:\\Windows\\System32\\cmd.exe") : null; + if (cmdExe && cmdExe.exists) + { + info.executable = cmdExe; + info.arguments = args; + } + var installProcess:NativeProcess = new NativeProcess(); + installProcess.start(info); + } + + public static function executeFile(file:File,completeFunction:Function=null):void + { + var os:String = Capabilities.os.toLowerCase(); + var info:NativeProcessStartupInfo = new NativeProcessStartupInfo(); + info.executable = file; + var process:NativeProcess = new NativeProcess(); + if(completeFunction != null) + { + process.addEventListener(NativeProcessExitEvent.EXIT, completeFunction,false,0,true); + } + process.addEventListener(NativeProcessExitEvent.EXIT, handleNativeProcessComplete,false,0,true); + process.start(info); + } + + protected static function handleNativeProcessComplete(event:NativeProcessExitEvent):void + { + var process:NativeProcess = NativeProcess(event.target); + process.closeInput(); + process.exit(true); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as new file mode 100644 index 0000000..2dc601b --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as @@ -0,0 +1,264 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.util +{ + +import flash.events.Event; +import flash.events.EventDispatcher; +import flash.events.IOErrorEvent; +import flash.events.OutputProgressEvent; +import flash.events.ProgressEvent; +import flash.filesystem.File; +import flash.filesystem.FileMode; +import flash.filesystem.FileStream; +import flash.net.URLLoader; +import flash.net.URLLoaderDataFormat; +import flash.net.URLRequest; +import flash.utils.ByteArray; + +import org.apache.flex.crypto.MD5Stream; +import org.apache.flex.utilities.common.Constants; + +[Event(name="progress", type="flash.events.ProgressEvent")] + +public class MD5CompareUtil extends EventDispatcher +{ + + //-------------------------------------------------------------------------- + // + // Class constants + // + //-------------------------------------------------------------------------- + + public static const MD5_DOMAIN:String = "https://www.apache.org/dist/"; + + public static const MD5_POSTFIX:String = ".md5"; + + public static const CHUNK_SIZE:int = 2 * 1024 * 1024; + + //-------------------------------------------------------------------------- + // + // Class properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // instance + //---------------------------------- + + private static var _instance:MD5CompareUtil; + + public static function get instance():MD5CompareUtil + { + if (!_instance) + _instance = new MD5CompareUtil(new SE()); + + return _instance; + } + + //-------------------------------------------------------------------------- + // + // Constructor + // + //-------------------------------------------------------------------------- + + public function MD5CompareUtil(se:SE) {} + + //-------------------------------------------------------------------------- + // + // Variables + // + //-------------------------------------------------------------------------- + + private var _callback:Function; + + private var _file:File; + + private var _fileStream:FileStream; + + private var _remoteMD5Value:String; + + private var _md5Stream:MD5Stream; + + private var _urlLoader:URLLoader; + + //-------------------------------------------------------------------------- + // + // Properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // errorMessage + //---------------------------------- + + private var _errorMessage:String = ""; + + public function get errorMessage():String + { + return _errorMessage; + } + + //---------------------------------- + // errorOccurred + //---------------------------------- + + private var _errorOccurred:Boolean; + + public function get errorOccurred():Boolean + { + return _errorOccurred; + } + + //---------------------------------- + // fileIsVerified + //---------------------------------- + + private var _fileIsVerified:Boolean; + + public function get fileIsVerified():Boolean + { + return _fileIsVerified; + } + + private var _validMD5:Boolean; + + public function get validMD5():Boolean + { + return _validMD5; + } + + //-------------------------------------------------------------------------- + // + // Methods + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // compareSignatures + //---------------------------------- + + private function compareSignatures():void + { + _md5Stream = new MD5Stream(); + + _fileStream = new FileStream(); + _fileStream.readAhead = CHUNK_SIZE; + _fileStream.addEventListener(Event.COMPLETE, fileStreamOpenHandler); + _fileStream.addEventListener(ProgressEvent.PROGRESS, fileStreamOpenHandler); + _fileStream.addEventListener(OutputProgressEvent.OUTPUT_PROGRESS, fileStreamOpenHandler); + _fileStream.openAsync(_file, FileMode.READ); + } + + //---------------------------------- + // fileStreamOpenHandler + //---------------------------------- + + private function fileStreamOpenHandler(event:Event):void + { + if (event is ProgressEvent) + { + _md5Stream.update(_fileStream, Math.floor(_fileStream.bytesAvailable / 64) * 64); + + dispatchEvent(event.clone()); + } + else + { + if (event.type == Event.COMPLETE) + { + _fileIsVerified = (_md5Stream.complete(_fileStream, _file.size) == _remoteMD5Value); + _fileStream.close(); + + removeEventListeners(); + _callback(); + } + } + } + + //---------------------------------- + // urlLoaderResultHandler + //---------------------------------- + + private function urlLoaderResultHandler(event:Event):void + { + _errorOccurred = event is IOErrorEvent; + + if (!_errorOccurred) + { + _remoteMD5Value = String(_urlLoader.data); + + /** + * We need only the first line; split for both Unix and Windows + * style line delimiters + */ + _remoteMD5Value = _remoteMD5Value.split("\n")[0]; + _remoteMD5Value = _remoteMD5Value.split("\r")[0]; + + // Valid MD5 hashes are 32 hexidecimal characters + _validMD5 = (_remoteMD5Value.search(new RegExp("[a-fA-F0-9]{32}")) == 0); + + compareSignatures(); + } + else + { + _errorMessage = String(IOErrorEvent(event).text); + } + } + + //---------------------------------- + // verifyMD5 + //---------------------------------- + + public function verifyMD5(localSDKZipFile:File, remoteSDKZipPath:String, + onVerificationComplete:Function):void + { + _file = localSDKZipFile; + + _callback = onVerificationComplete; + + _urlLoader = new URLLoader(); + _urlLoader.dataFormat = URLLoaderDataFormat.TEXT; + _urlLoader.addEventListener(Event.COMPLETE, urlLoaderResultHandler); + _urlLoader.addEventListener(IOErrorEvent.IO_ERROR, urlLoaderResultHandler); + if (remoteSDKZipPath.substr(0, Constants.URL_PREFIX.length) != Constants.URL_PREFIX && + remoteSDKZipPath.substr(0, Constants.FILE_PREFIX.length) != Constants.FILE_PREFIX && + remoteSDKZipPath.search("http") != 0) + { + _urlLoader.load(new URLRequest(MD5_DOMAIN + remoteSDKZipPath + MD5_POSTFIX)); + } + else + { + _urlLoader.load(new URLRequest(remoteSDKZipPath + MD5_POSTFIX)); + } + } + + private function removeEventListeners():void + { + _fileStream.removeEventListener(Event.COMPLETE, fileStreamOpenHandler); + _fileStream.removeEventListener(ProgressEvent.PROGRESS, fileStreamOpenHandler); + _fileStream.removeEventListener(OutputProgressEvent.OUTPUT_PROGRESS, fileStreamOpenHandler); + _urlLoader.removeEventListener(Event.COMPLETE, urlLoaderResultHandler); + _urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, urlLoaderResultHandler); + } + +} +} + +class SE {} http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml new file mode 100644 index 0000000..b055286 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + 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. + +--> +<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" + width="600" height="412" + title="Update available" + xmlns:controls="ws.tink.spark.controls.*" + skinClass="ws.tink.spark.skins.controls.UpdaterDialogSkin"> + + <fx:Script><![CDATA[ + + import air.update.events.DownloadErrorEvent; + import air.update.events.StatusUpdateEvent; + import air.update.events.UpdateEvent; + + import com.riaspace.nativeApplicationUpdater.utils.HdiutilHelper; + + import mx.controls.Alert; + import mx.core.Application; + import mx.core.FlexGlobals; + import mx.events.CloseEvent; + import mx.utils.DisplayUtil; + + import org.apache.flex.packageflexsdk.util.DownloadUtil; + import org.apache.flex.utilities.common.Constants; + import org.apache.flex.utilities.common.Tools; + + [Bindable] + private var _newVersion:String; + + private var _fileWindows:File; + private var _fileMac:File; + + protected function handleYesBtnClick(event:MouseEvent):void + { + currentState = "downloading"; + downloadUpdater(); + } + + protected function downloadUpdater():void + { + var applicationExtension:String = Tools.getApplicationExtension(); + var downloadCompleteHandler:Function = + (applicationExtension == Constants.APPLICATION_EXTENSION_WIN) ? + handleWindowsInstallerDownloadComplete : handleMacInstallerDownloadComplete; + + var main:Object = FlexGlobals.topLevelApplication; + + var url:String = + main.installerAppPath + main.installerAppFileName + applicationExtension; + + DownloadUtil.download(url, downloadCompleteHandler, handleDownloadError, handleDownloadProgress); + } + + protected function handleWindowsInstallerDownloadComplete(event:Event):void + { + _fileWindows = File.createTempFile(); + writeFileToDirectory(_fileWindows,event.target.data); + installFromFile(_fileWindows); + } + + protected function installFromFile(file:File):void + { + DownloadUtil.executeFile(file); + setTimeout(NativeApplication.nativeApplication.exit, 200); + } + + protected function handleMacInstallerDownloadComplete(event:Event):void + { + _fileMac = File.createTempFile(); + writeFileToDirectory(_fileMac,event.target.data); + var hdiutilHelper:HdiutilHelper = new HdiutilHelper(_fileMac); + hdiutilHelper.addEventListener(Event.COMPLETE, handleHdiutilHelperComplete); + hdiutilHelper.addEventListener(ErrorEvent.ERROR, handleHdiutilHelperError); + hdiutilHelper.attach(); + } + + private function handleHdiutilHelperComplete(event:Event):void + { + var hdiutilHelper:HdiutilHelper = event.target as HdiutilHelper; + hdiutilHelper.removeEventListener(Event.COMPLETE, handleHdiutilHelperComplete); + hdiutilHelper.removeEventListener(ErrorEvent.ERROR, handleHdiutilHelperError); + + var attachedDmg:File = new File(hdiutilHelper.mountPoint); + var files:Array = attachedDmg.getDirectoryListing(); + + if (files.length == 1) + { + var installFileFolder:File = File(files[0]).resolvePath("Contents/MacOS"); + var installFiles:Array = installFileFolder.getDirectoryListing(); + + if (installFiles.length == 1) + { + installFromFile(installFiles[0]); + } + else + dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, + "Contents/MacOS folder should contain only 1 install file!")); + } + else + { + dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, + "Mounted volume should contain only 1 install file!")); + } + } + + private function handleHdiutilHelperError(event:ErrorEvent):void + { + var hdiutilHelper:HdiutilHelper = event.target as HdiutilHelper; + hdiutilHelper.removeEventListener(Event.COMPLETE, handleHdiutilHelperComplete); + hdiutilHelper.removeEventListener(ErrorEvent.ERROR, handleHdiutilHelperError); + + dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, + "Error attaching dmg file!")); + } + + protected function handleDownloadProgress(event:ProgressEvent):void + { + var bytesTotal:int = event.bytesTotal; + var bytesLoaded:int = event.bytesLoaded; + var percentLoaded:int = Math.round(bytesLoaded*100/bytesTotal); + progressBar.percent = percentLoaded; + } + + + private function handleDownloadError(event:Event):void + { + Alert.show("Error downloading update file, try again later."); + } + + public function set latestVersion(value:String):void + { + _newVersion = value; + } + + private function writeFileToDirectory(file:File,data:ByteArray):void + { + var fs:FileStream = new FileStream(); + fs.open(file, FileMode.WRITE); + fs.writeBytes(data); + fs.close(); + } + + protected function handleNoBtnClick(event:MouseEvent):void + { + dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); + } + + ]]></fx:Script> + + <s:states> + <s:State name="normal" /> + <s:State name="downloading" /> + </s:states> + + <s:HGroup width="100%" + top="210" + horizontalCenter="0" + verticalAlign="top"> + <s:VGroup width="100%" + horizontalAlign="center"> + <s:Label text="New version ({_newVersion}) is available." + fontSize="14"/> + <s:Label text="Do you want to download and install it?" + fontSize="14"/> + <controls:ProgressBar id="progressBar" + width="80%" + height="21" /> + <s:Spacer height="20" /> + <s:HGroup> + <s:Button id="btnYes" + height="30" + styleName="mainBtnStyle" + label="UPDATE" + click="handleYesBtnClick(event)" + enabled.downloading="false" /> + <s:Button id="btnNo" + height="30" + styleName="negativeBtnStyle" + label="DON'T UPDATE" + click="handleNoBtnClick(event)" + enabled.downloading="false" /> + </s:HGroup> + </s:VGroup> + </s:HGroup> +</s:TitleWindow> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml new file mode 100644 index 0000000..1ac829e --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> + <fx:Declarations> + <!-- Place non-visual elements (e.g., services, value objects) here --> + </fx:Declarations> +</s:Window> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml new file mode 100644 index 0000000..1fe3731 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + 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. + +--> +<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" width="810" height="800" showStatusBar="false" + title="Adobe Flex SDK License Agreement"> + <fx:Script> + <![CDATA[ + import org.apache.flex.packageflexsdk.resource.ViewResourceConstants; + + import spark.events.IndexChangeEvent; + [Bindable]private var adobelicenseTextStr:String = "Adobe Flex SDK License Agreement: All files contained in this Adobe Flex SDK download are subject to and governed by the " + + "Adobe Flex SDK License Agreement specified here: http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf, " + + "By downloading, modifying, distributing, using and/or accessing any files in this Adobe Flex SDK, " + + "you agree to the terms and conditions of the applicable end user license agreement. " + + "In addition to the Adobe license terms, you also agree to be bound by the third-party terms specified here: " + + "http://www.adobe.com/products/eula/third_party/. " + + "Adobe recommends that you review these third-party terms." + + protected function tabbar1_changeHandler(event:IndexChangeEvent):void + { + if(event.target.selectedItem.toString() == "Adobe Flex SDK License Agreement" ) + { + htmlTabs.selectedChild = adobeLicenseHTML; + } + else if(event.target.selectedItem.toString() == "Third Party Terms" ) + { + htmlTabs.selectedChild = thirdPartyHTML; + } + } + + ]]> + </fx:Script> + <s:layout> + <s:VerticalLayout /> + </s:layout> + <s:TextArea + width="100%" + height="75" + fontSize="12" + text="{adobelicenseTextStr}" + verticalScrollPolicy="off" + editable="false"/> + <s:TabBar change="tabbar1_changeHandler(event)"> + <s:ArrayCollection> + <fx:String>Adobe Flex SDK License Agreement</fx:String> + <fx:String>Third Party Terms</fx:String> + </s:ArrayCollection> + </s:TabBar> + <mx:ViewStack id="htmlTabs" width="100%" height="100%"> + <s:NavigatorContent id="adobeLicenseHTML" width="100%" height="100%"> + <mx:HTML width="100%" height="100%" location="http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf" /> + </s:NavigatorContent> + <s:NavigatorContent id="thirdPartyHTML" width="100%" height="100%"> + <mx:HTML width="100%" height="100%" location="http://www.adobe.com/products/eula/third_party/pdfs/flex4_5_sdk_opensource_legal_notices.pdf" /> + </s:NavigatorContent> + </mx:ViewStack> + <s:HGroup width="100%" height="50" verticalAlign="middle" paddingRight="15"> + <s:Spacer width="100%" /> + <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}" click="close()" styleName="genericBtnStyle" /> + </s:HGroup> +</s:Window> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml new file mode 100644 index 0000000..977d149 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" + title="Install Log" width="600" height="300" showStatusBar="false" + > + + <fx:Script> + <![CDATA[ + import mx.binding.utils.BindingUtils; + import mx.binding.utils.ChangeWatcher; + import mx.collections.ArrayCollection; + + import org.apache.flex.packageflexsdk.resource.ViewResourceConstants; + + [Bindable] + public var messages:ArrayCollection = new ArrayCollection(); + + public function closeWindow(event:MouseEvent):void { + close(); + } + + private function handleCopyBtnClick(event:MouseEvent):void { + var logText:String = ""; + + for each (var str:Object in messages) { + logText += str.toString() + "\n"; + } + + Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, logText); + } + + private function logTxtArea_copyHandler(event:Event):void { + var message:String = ""; + var messages:List = event.currentTarget as List; + var clipBoardData:String; + + for each (message in messages.selectedItems) { + clipBoardData += message + "\n"; + } + if (clipBoardData) { + Clipboard.generalClipboard.clear(); + Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, clipBoardData, false); + } + } + ]]> + </fx:Script> + + <s:List id="logTxtArea" dataProvider="{messages}" + allowMultipleSelection="true" + copy="logTxtArea_copyHandler(event)" + top="0" + bottom="35" + left="0" + right="0" + fontFamily="openSansSemibold" + fontSize="14"> + <s:layout> + <s:VerticalLayout gap="0" horizontalAlign="justify" /> + </s:layout> + </s:List> + <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_COPY_LOG}" + click="handleCopyBtnClick(event)" + styleName="genericBtnStyle" + left="7.5" + bottom="7.5"/> + <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}" + click="closeWindow(event)" + right="7.5" + bottom="7.5" + styleName="genericBtnStyle" /> +</s:Window> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml new file mode 100644 index 0000000..5b48716 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" width="600" height="300" showStatusBar="false" + title="Mozilla Public License Version 1.1"> + <fx:Script> + <![CDATA[ + import org.apache.flex.packageflexsdk.resource.ViewResourceConstants; + [Bindable]private var mplTextStr:String = "Mozilla Public License Version 1.1:" + + "The contents of the file(s) are subject to the Mozilla Public License Version 1.1." + + "You may not use the file(s) except in compliance with the License. " + + "You may obtain a copy of the License here: http://www.mozilla.org/MPL/. " + + "By downloading, modifying, distributing, using and/or accessing the file(s), " + + "you agree to the terms and conditions of the applicable license agreement."; + ]]> + </fx:Script> + <s:layout> + <s:VerticalLayout /> + </s:layout> + <s:TextArea + width="100%" + height="100%" + fontSize="14" + text="{mplTextStr}" + editable="false"/> + <s:HGroup width="100%" height="50" verticalAlign="middle" paddingRight="15" > + <s:Spacer width="100%" /> + <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}" click="close()" styleName="genericBtnStyle" /> + </s:HGroup> +</s:Window> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml new file mode 100644 index 0000000..4838882 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> + <fx:Script> + <![CDATA[ + import org.apache.flex.utilities.common.Constants; + public function trackInstallerSuccess(sdkLabel:String=null,version:String=null,os:String=null):void + { + if(version == null && os == null) + { + trackInstallerHTML.location = Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_SUCCESS; + } + else + { + trackInstallerHTML.location = Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_SUCCESS + "?label=" + sdkLabel + "&version=" + version + "&os=" + os; + } + } + + public function trackInstallerFailure(sdkLabel:String=null,version:String=null,os:String=null):void + { + if(version == null && os == null) + { + trackInstallerHTML.location = Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_FAILURE; + } + else + { + trackInstallerHTML.location = Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_FAILURE + "&label=" + sdkLabel + "&version=" + version + "&os=" + os; + } + } + + ]]> + </fx:Script> + <mx:HTML id="trackInstallerHTML" width="100%" height="100%" /> +</s:Group> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml new file mode 100644 index 0000000..4469d26 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx"> + <fx:Declarations> + <!-- Place non-visual elements (e.g., services, value objects) here --> + </fx:Declarations> + <fx:Script> + <![CDATA[ + import mx.collections.ArrayCollection; + [Bindable] public var steps:ArrayCollection; + ]]> + </fx:Script> + <s:DataGroup dataProvider="{steps}" itemRenderer="ws.tink.spark.controls.StepRenderer"> + <s:layout> + <s:HorizontalLayout gap="12"/> + </s:layout> + </s:DataGroup> +</s:Group> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as new file mode 100644 index 0000000..ab02321 --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as @@ -0,0 +1,36 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.flex.packageflexsdk.view.events +{ + import flash.events.Event; + + import org.apache.flex.packageflexsdk.model.InstallerComponentVO; + + public class InstallItemSelectionEvent extends Event + { + public static var INSTALL_ITEM_SELECTION_CHANGED:String = "installItemSelectionChanged"; + public var item:InstallerComponentVO; + + public function InstallItemSelectionEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) + { + super(type, bubbles, cancelable); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml new file mode 100644 index 0000000..e6ec22c --- /dev/null +++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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. + +--> +<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.adobe.com/flex/spark" + xmlns:mx="library://ns.adobe.com/flex/mx" + autoDrawBackground="true" width="100%"> + <s:layout> + <s:HorizontalLayout verticalAlign="middle" gap="5" paddingLeft="5" /> + </s:layout> + <fx:Metadata> + [Event(name="installItemSelectionChanged", type="org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent")] + </fx:Metadata> + + <fx:Script> + <![CDATA[ + import org.apache.flex.packageflexsdk.model.InstallerComponentVO; + import org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent; + + protected function checkbox1_changeHandler(event:Event):void + { + var e:InstallItemSelectionEvent = new InstallItemSelectionEvent(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED,true); + data.selected = event.target.selected; + e.item = InstallerComponentVO(data); + dispatchEvent(e); + } + + protected function text_changeHandler(checkbox:CheckBox):void + { + checkbox.selected = ! checkbox.selected; + + var e:InstallItemSelectionEvent = new InstallItemSelectionEvent(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED,true); + data.selected = checkbox.selected; + e.item = InstallerComponentVO(data); + dispatchEvent(e); + } + ]]> + </fx:Script> + + <s:CheckBox id="checkbox1" selected="{data.selected}" enabled="true" change="checkbox1_changeHandler(event)" /> + <s:Label text="{data.label}" fontFamily="openSansBold" fontSize="11" click="text_changeHandler(checkbox1)" width="100%" /> + +</s:ItemRenderer> http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/de_DE.properties ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/properties/de_DE.properties b/flex-installer/installer/src/properties/de_DE.properties new file mode 100644 index 0000000..dd2a913 --- /dev/null +++ b/flex-installer/installer/src/properties/de_DE.properties @@ -0,0 +1,131 @@ +################################################################################ +## +## 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. +## +################################################################################ +ASK_BLAZEDS=Apache Flex kann optional Adobe BlazeDS einbinden. Dieses Feature benötigt flex-messaging-common.jar aus dem Adobe Flex SDK. Die Adobe SDK Lizenzvereinbarung für Adobe Flex 4.6 gilt für diese Jar-Datei. Diese Lizenz ist nicht mit der Apache V2 Lizenz vereinbar. Möchten Sie diese Jar-Datei aus dem Adobe Flex SDK installieren? +ASK_FONTSWF=Apache Flex kann optional das Feature \"Einbetten von Schriftarten\" einbinden. Dieses Feature benötigt verschieden Schriftarten Jar-Dateien aus dem Adobe Flex SDK. Die Adobe SDK Lizenzvereinbarung für Adobe Flex 4.6 gilt für diese Jar-Dateien. Diese Lizenz ist nicht mit der Apache V2 Lizenz vereinbar. Möchten Sie diese Jar-Dateien aus dem Adobe Flex SDK installieren? +ASK_OSMF=Das Open Source Media Framework (OSMF) welches von den Videokomponenten verwendet wird ist unter der Mozilla Public License Version 1.1 lizensiert. Möchten Sie das Open Source Media Framework (OSMF) jetzt installieren? +ASK_TLF=Das Adobe Text Layout Framework (TLF) welches von den Spark Textkomponeten verwendet wird ist unter der Mozilla Public License Version 1.1 lizensiert. Möchten Sie das Adobe Text Layout Framework (TLF) jetzt installieren? +ASK_APACHE_FLEX=Das Apache Flex SDK verwendet die Apache License V2. Möchten Sie jetzt das Apache Flex SDK installieren? +ASK_ADOBE_AIR_SDK=Das Adobe AIR SDK verwendet die Adobe SDK Lizenzvereinbarung. Möchten SIe jetzt das Adobe AIR SDK installieren? +ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Die Adobe Flash Player playerglobal.swc verwendet die Adobe SDK Lizenzvereinbarung. Möchten SIe jetzt die Adobe Flash Player playerglobal.swc installieren? +ASK_SWFOBJECT=Das SWFObject utility verwendet die MIT License (MIT). Möchten SIe jetzt das SWFObject utility installieren? +ASK_OFL_FONTS=The FlatSpark theme uses fonts licensed under the Open Font License. Do you want to install the Font Awesome and Lato Fonts? +BTN_LABEL_ADOBE_LICENSE=ADOBE LIZENZ ANZEIGEN +BTN_LABEL_BROWSE=ÃFFNEN +BTN_LABEL_CLOSE=SCHLIEÃEN +BTN_LABEL_INSTALL=INSTALLIEREN +BTN_LABEL_INSTALL_LOG=PROTOKOLL ANZEIGEN +BTN_LABEL_MPL_LICENSE=MPL LIZENZ ANZEIGEN +BTN_LABEL_NEXT=WEITER +BTN_LABEL_NEXT=ZURÃCK +BTN_DISCLAIMER=Haftungsausschluss +BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=APACHE FLEX ORDNER ÃFFNEN +ERROR_CONFIG_XML_LOAD=Fehler beim Laden der XML Konfigurationsdatei: +ERROR_DIR_NOT_EMPTY=Das ausgewählte Verzeichnis ist nicht leer +ERROR_INVALID_AIR_SDK_URL_MAC=Adobe AIR SDK URL für Mac in Konfigurationsdatei ungültig +ERROR_INVALID_AIR_SDK_URL_WINDOWS=Adobe AIR SDK URL für Windows in Konfigurationsdatei ungültig +ERROR_INVALID_FLASH_PLAYER_SWC_URL=Flash Player swc URL in Konfigurationsdatei ungültig +ERROR_INVALID_FLEX_SDK_DIRECTORY=Ungültiges Flex SDK Verzeichnis ausgewählt +ERROR_INVALID_SDK_URL=Apache Flex SDK URL in Konfigurationsdatei ungültig +ERROR_MIRROR_FETCH=Fehler beim ermitteln eines mirrors für den Download der Apache Flex SDK Binaries: +ERROR_NATIVE_PROCESS_ERROR=Native Process Fehler Kann Adobe AIR SDK nicht entpacken +ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Native Process nicht unterstützt. Kann Adobe AIR SDK nicht entpacken +ERROR_UNABLE_TO_COPY_FILE=Kopieren von Datei fehlgeschlagen +ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY=Erstellen von Temp Verzeichnis fehlgeschlagen +ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY=Löschen von Temp Verzeichnis fehlgeschlagen +ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK=Download von Adobe AIR Runtime Kit fehlgeschlagen +ERROR_UNABLE_TO_DOWNLOAD_FILE=Downlod fehlgeschlagen von Datei: {0} +ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=Download von Flash Player swc fehlgeschlagen +ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=Download von Apache Flex SDK fehlgeschlagen +ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=Installation von Konfigurationsdatei fehlgeschlagen +ERROR_UNABLE_TO_UNZIP=Entpacken von Datei fehlgeschlagen: +ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Download von SWFObject fehlgeschlagen +ERROR_UNSUPPORTED_OPERATING_SYSTEM=Nicht unterstütztes Betriebssystem +ERROR_VERIFY_FLEX_SDK=Die Signatur der heruntergeladenen Dateien stimmt nicht mit der Apache Flex SDK MD5 Signatur überein. Dateien sind fehlerhaft. Installation wird abgebrochen. +FETCH_GEO_IP=Versuche Länderkennung des Benutzer über GeoIP Service zu identifizieren... +FETCH_GEO_IP_DONE=Länderkennung erfolgreich über GeoIP Service identifiziert. +FETCH_GEO_IP_ERROR=Identifizierung von Länderkennung über GeoIP Service fehlgeschlagen +FETCH_MIRROR_CGI=Versuche mirror URL für Apache Flex SDK über CGI-Skript zu ermitteln... +FETCH_MIRROR_CGI_DONE=Ermitteln von mirror URL über CGI-Skript erfolgreich. +FETCH_MIRROR_CGI_ERROR=Ermitteln von mirror URL über CGI-Skript fehlgeschlagen. +FETCH_MIRROR_LIST=Versuche mirror Liste von Apache.org zu laden... +FETCH_MIRROR_LIST_DONE=Laden von mirror Liste von Apache.org erfolgreich. +FETCH_MIRROR_LIST_PARSED=mirror Liste verarbeitet und unter Verwendung der Länderkennung folgende Domain ermittelt: +INFO_ABORT_INSTALLATION=Installation abgebrochen +INFO_APP_INVOKED=Kommandozeilenmodus gestartet verwendete Argumente: +INFO_CREATING_FLEX_HOME=Erstelle Apache Flex home +INFO_CREATING_TEMP_DIR=Erstelle Temp Verzeichnis +INFO_CURRENT_LANGUAGE=Sprache wählen +INFO_DOWNLOADING_ADOBE_FLEX_SDK=Lade Adobe Flex SDK von: +INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=Lade Adobe AIR Runtime Kit für Mac von: +INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=Lade Adobe AIR Runtime Kit für Windows von: +INFO_DOWNLOADING_FILE_FROM=Lade {0} von: {1} herunter +INFO_DOWNLOADING_FLEX_SDK=Lade Apache Flex SDK von: +INFO_DOWNLOADED=Download abgeschlossen +INFO_ENTER_VALID_FLEX_SDK_PATH=Bitte geben Sie einen gültigen Pfad für das Flex SDK ein +INFO_FINISHED_UNTARING=untar abgeschlossen: +INFO_FINISHED_UNZIPPING=entpacken abgeschlossen: +INFO_INSTALLATION_COMPLETE=Installation abgeschlossen +INFO_INSTALLING=Installiere... +INFO_INSTALLING_CONFIG_FILES=Installiere Framework Konfigurationsdateien für die Verwendung mit einer IDE +INFO_INSTALLING_PLAYERGLOBAL_SWC=Installiere Adobe Flash Player playerglobal.swc von: +INFO_INVOKED_GUI_MODE=GUI Modus gestartet +INFO_LICENSE_AGREEMENTS=Lizenzvereinbarung +INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=Dieser Installer wird Software von unterschiedlichen Seiten mit unterschiedlichen Lizenzen herunterladen. Bitte wählen Sie jedes Element auf der linken Seite aus, lesen Sie die jeweiligen Lizenzvereinbarungen und bestätigen Sie mit einem Häkchen, dass Sie den jeweiligen Bedingungen zustimmen. +INFO_SELECT_DIRECTORY=Wählen Sie das Verzeichnis in dem Sie das Apache Flex SDK installieren wollen +INFO_SELECT_DIRECTORY_INSTALL=Installationsverzeichnis wählen +INFO_UNZIPPING=Entpacke: +INFO_VERIFY_FLEX_SDK_DONE=Die Signatur der heruntergeladenen Dateien stimmt mit der Apache Flex SDK MD5 Signatur überein. Die Datei ist gültig. +INFO_WINDOW_TITLE=Installiere Apache Flex SDK {0} für die Verwendung mit einer IDE +INSTALL_AGREE=Ich Stimme zu, Installation Starten +INSTALL_AGREE_ALL=Ich Stimme allen Optionen und Lizenzen zu, Installation starten +INSTALL_DISAGREE=Ich Stimme nicht zu, nicht installieren +SELECT_PATH_PROMPT=In welches Verzeichnis soll das Apache Flex SDK installiert werden? +STEP_CREATE_DIRECTORIES=Erstelle Verzeichnisse +STEP_SELECT_AIR_AND_FLASH_VERSION=Bitte wählen Sie die AIR und Flash Player Versionen. +STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK=Apache Flex SDK (Benötigt) +STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK=Adobe AIR SDK (Benötigt) +STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player playerglobal.swc (Benötigt) +STEP_REQUIRED_INSTALL_SWFOBJECT=SWFObject (Benötigt) +STEP_INSTALL_CONFIG_FILES=Installiere Framework Konfigurationsdateien +STEP_REQUIRED_INSTALL_OSMF=OSMF (Benötigt) +STEP_REQUIRED_INSTALL_TLF=Adobe Text Layout Framework (Benötigt) +STEP_REQUIRED_INSTALL_OFL_FONTS=Font Awesome and Lato Fonts (Benötigt) +STEP_OPTIONAL_INSTALL_BLAZEDS=Remoting Support (Optional) +STEP_OPTIONAL_INSTALL_FONTSWF=Adobe Bibliothek zur Einbettung von Schriften (Optional) +STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=Entpacke Adobe AIR Runtime Kit +STEP_UNZIP_AIR_RUNTIME_KIT=Entpacke Adobe AIR Runtime Kit +STEP_UNZIP_FLEX_SDK=Entpacke Apache Flex SDK +STEP_VERIFY_FLEX_SDK=Verifiziere Apache Flex SDK MD5 Signature +LICENSE_APACHE_V2=Apache V2 Lizenz +LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html +LICENSE_ADOBE_SDK=Adobe Flex SDK Lizenzvereinbarung +LICENSE_URL_ADOBE_SDK=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf +LICENSE_ADOBE_AIR_SDK=Adobe AIR SDK Lizenzvereinbarung +LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html +LICENSE_SWFOBJECT=MIT Lizenz +LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php +LICENSE_OSMF=Mozilla Public License Version 1.1 +LICENSE_URL_OSMF=http://www.mozilla.org/MPL/ +LICENSE_TLF=Mozilla Public License Version 1.1 +LICENSE_URL_TLF=http://www.mozilla.org/MPL/ +LICENSE_FONTSWF=Adobe Flex SDK Lizenzvereinbarung +LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf +LICENSE_BLAZEDS=Adobe Flex SDK Lizenzvereinbarung +LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf +INFO_TRACKING=Anonyme Nutzungsstatistiken werden in Ãbereinstimmung\n mit unserer Datenschutzerklärung gesammelt. http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/el_GR.properties ---------------------------------------------------------------------- diff --git a/flex-installer/installer/src/properties/el_GR.properties b/flex-installer/installer/src/properties/el_GR.properties new file mode 100644 index 0000000..5f8a4bf --- /dev/null +++ b/flex-installer/installer/src/properties/el_GR.properties @@ -0,0 +1,123 @@ +################################################################################ +## +## 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. +## +################################################################################ +BTN_LABEL_BROWSE=ÎÎÎÎÎΤÎΣΠ+BTN_LABEL_CLOSE=ÎÎÎÎÎΣ +BTN_LABEL_INSTALL=ÎÎÎÎΤÎΣΤÎΣΠ+BTN_LABEL_INSTALL_LOG=ÎΡΧÎÎÎ ÎÎΤÎÎΡÎΦÎΣ ÎÎÎÎΤÎΣΤÎΣÎΣ +BTN_LABEL_NEXT=ÎÎ ÎÎÎÎÎ +BTN_LABEL_BACK=ÏίÏÏ +BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=ÎÎÎÎÎÎΠΦÎÎÎÎÎÎ¥ APACHE FLEX +ERROR_CONFIG_XML_LOAD=Î ÏÏÎµÎºÏ Ïε ÏÏάλμα καÏά Ïην ÏÏοÏÏάθεια ÏÏÏÏÏÏÎ·Ï ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï ÏÏ Î¸Î¼Î¯ÏεÏν XML: +ERROR_DIR_NOT_EMPTY=ΠκαÏÎ¬Î»Î¿Î³Î¿Ï ÏÎ¿Ï ÎµÏιλÎξαÏε δεν είναι Î¬Î´ÎµÎ¹Î¿Ï +ERROR_INVALID_AIR_SDK_URL_MAC=ÎανθαÏμÎνο Adobe AIR SDK URL για Mac ÏÏο αÏÏείο ÏÏ Î¸Î¼Î¯ÏεÏν +ERROR_INVALID_AIR_SDK_URL_WINDOWS=ÎανθαÏμÎνο Adobe AIR SDK URL για Windows ÏÏο αÏÏείο ÏÏ Î¸Î¼Î¯ÏεÏν +ERROR_INVALID_FLASH_PLAYER_SWC_URL=ÎανθαÏμÎνο Flash Player swc URL ÏÏο αÏÏείο ÏÏ Î¸Î¼Î¯ÏεÏν +ERROR_INVALID_FLEX_SDK_DIRECTORY=ÎÏεÏε εÏιλÎξει μη ÎÎ³ÎºÏ Ïο καÏάλογο για Ïο Flex SDK +ERROR_INVALID_SDK_URL=ÎανθαÏμÎνο Apache Flex SDK URL ÏÏο αÏÏείο ÏÏ Î¸Î¼Î¯ÏεÏν. +ERROR_NATIVE_PROCESS_ERROR=ΣÏάλμα καÏά Ïην εκÏÎλεÏη Native Process. Îεν είναι Î´Ï Î½Î±Ïή η αÏοÏÏ Î¼ÏίεÏη (untar) ÏÎ¿Ï Adobe AIR SDK +ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Îεν Ï ÏάÏÏει Ï ÏοÏÏήÏιξη Native Process. Îεν είναι Î´Ï Î½Î±Ïή η αÏοÏÏ Î¼ÏίεÏη(untar)ÏÎ¿Ï Adobe AIR SDK +ERROR_UNABLE_TO_COPY_FILE=Îεν είναι Î´Ï Î½Î±Ïή η ανÏιγÏαÏή ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï +ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY=Îεν είναι Î´Ï Î½Î±Ïή η Î´Î·Î¼Î¹Î¿Ï Ïγία ÏÏοÏÏÏÎ¹Î½Î¿Ï ÎºÎ±ÏαλÏÎ³Î¿Ï +ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY=Îεν είναι Î´Ï Î½Î±Ïή η εκκαθάÏιÏη ÏÏν ÏÏοÏÏÏινÏν καÏαλÏγÏν εγκαÏάÏÏαÏÎ·Ï +ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK=Îεν είναι Î´Ï Î½Î±Ïή η λήÏη ÏÎ¿Ï Adobe AIR Runtime Kit +ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=Îεν είναι Î´Ï Î½Î±Ïή η λήÏη ÏÎ¿Ï Flash Player swc +ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=Îεν είναι Î´Ï Î½Î±Ïή η λήÏη ÏÎ¿Ï Apache Flex SDK +ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=Îεν είναι Î´Ï Î½Î±Ïή η εγκαÏάÏÏαÏη ÏÏν αÏÏείÏν ÏÏ Î¸Î¼Î¯ÏεÏν +ERROR_UNSUPPORTED_OPERATING_SYSTEM=Îεν Ï ÏοÏÏηÏίζεÏαι Ïο λειÏÎ¿Ï ÏÎ³Î¹ÎºÏ ÏÏÏÏημα +INFO_ABORT_INSTALLATION=ΠεγκαÏάÏÏαÏη μαÏαιÏθηκε +INFO_APP_INVOKED=ÎλήÏη με λειÏÎ¿Ï Ïγία γÏÎ±Î¼Î¼Î®Ï ÎµÎ½ÏολÏν με Ïα ακÏÎ»Î¿Ï Î¸Î± οÏίÏμαÏα: +INFO_CREATING_FLEX_HOME=ÎÎ·Î¼Î¹Î¿Ï Ïγία αÏÏÎ¹ÎºÎ¿Ï ÎºÎ±ÏαλÏÎ³Î¿Ï Î³Î¹Î± Ïο Apache Flex +INFO_CREATING_TEMP_DIR=ÎÎ·Î¼Î¹Î¿Ï Ïγία ÏÏοÏÏÏÎ¹Î½Î¿Ï ÎºÎ±ÏαλÏÎ³Î¿Ï +INFO_CURRENT_LANGUAGE=ÎÏιλÎξÏε ÎλÏÏÏα +INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=ÎίνεÏαι λήÏη ÏÎ¿Ï Adobe AIR Runtime Kit για Mac αÏÏ: +INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=ÎίνεÏαι λήÏη ÏÎ¿Ï Adobe AIR Runtime Kit για Windows αÏÏ: +INFO_DOWNLOADING_FLEX_SDK=ÎίνεÏαι λήÏη ÏÎ¿Ï Apache Flex SDK αÏÏ: +INFO_DOWNLOADED=ΠλήÏη ολοκληÏÏθηκε +INFO_ENTER_VALID_FLEX_SDK_PATH=ΠαÏÎ±ÎºÎ±Î»Ï ÎµÎ¹ÏάγεÏε μια ÎÎ³ÎºÏ Ïη διαδÏομή καÏαλÏÎ³Î¿Ï Î³Î¹Î± Ïο Flex SDK +INFO_FINISHED_UNTARING=ΠαÏοÏÏ Î¼ÏίεÏη ÏελείÏÏε: +INFO_FINISHED_UNZIPPING=ΠαÏοÏÏ Î¼ÏίεÏη ÏελείÏÏε: +INFO_INSTALLATION_COMPLETE=ΠεγκαÏάÏÏαÏη ολοκληÏÏθηκε. +INFO_INSTALLING=ÎγκαÏάÏÏαÏη... +INFO_INSTALLING_CONFIG_FILES=ÎίνεÏαι εγκαÏάÏÏαÏη ÏÏν αÏÏείÏν ÏÏ Î¸Î¼Î¯ÏεÏν ÏÎ¿Ï framework ÏÎ¿Ï ÎÏÎ¿Ï Î½ ÏÏ Î¸Î¼Î¹ÏÏεί για ÏÏήÏη με IDE +INFO_INSTALLING_PLAYERGLOBAL_SWC=ÎίνεÏαι εγκαÏάÏÏαÏη ÏÎ¿Ï Adobe Flash Player playerglobal.swc αÏÏ: +INFO_INVOKED_GUI_MODE=ÎλήÏη με λειÏÎ¿Ï Ïγία γÏαÏÎ¹ÎºÎ¿Ï ÏεÏιβάλλονÏÎ¿Ï +INFO_SELECT_DIRECTORY=ÎÏιλÎξÏε Ïον καÏάλογο ÏÏον οÏοίο θÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Flex SDK +INFO_SELECT_DIRECTORY_INSTALL=ÎÏιλÎξÏε Ïον καÏάλογο εγκαÏάÏÏαÏÎ·Ï +INFO_UNZIPPING=ÎÏοÏÏ Î¼ÏίεÏη: +SELECT_PATH_PROMPT=ΠληκÏÏολογήÏÏε η εÏιλÎξÏε μια ÎÎ³ÎºÏ Ïη διαδÏομή για Ïο Flex SDK +STEP_SELECT_AIR_AND_FLASH_VERSION=Select AIR and Flash Player versions. +STEP_CREATE_DIRECTORIES=ÎÎ·Î¼Î¹Î¿Ï Ïγία ÎαÏαλÏγÏν +STEP_DOWNLOAD_AIR_RUNTIME_KIT=ÎήÏη Adobe AIR Runtime Kit +STEP_DOWNLOAD_FLASHPLAYER_SWC=ÎήÏη Flash Player swc +STEP_DOWNLOAD_FLEX_SDK=ÎήÏη Apache Flex SDK +STEP_INSTALL_CONFIG_FILES=ÎγκαÏάÏÏαÏη ÏÏν αÏÏείÏν ÏÏ Î¸Î¼Î¯ÏεÏν ÏÎ¿Ï Framework +STEP_UNZIP_AIR_RUNTIME_KIT=ÎÏοÏÏ Î¼ÏίεÏη ÏÎ¿Ï Adobe AIR Runtime Kit +STEP_UNZIP_FLEX_SDK=ÎÏοÏÏ Î¼ÏίεÏη ÏÎ¿Ï Apache Flex SDK +ASK_BLAZEDS=Το Apache Flex μÏοÏεί ÏÏοαιÏεÏικά να ÏÏηÏιμοÏοιήÏει Ïο Adobe BlazeDS. ΠλειÏÎ¿Ï Ïγία Î±Ï Ïή αÏαιÏεί Ïο αÏÏείο flex-messaging-common.jar ÏÎ¿Ï Î²ÏίÏκεÏαι ÏÏο Adobe Flex SDK. Îια Ïο αÏÏείο Î±Ï ÏÏ Î¹ÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ·Ï Î¬Î´ÎµÎ¹Î±Ï Adobe SDK για Ïο Adobe Flex 4.6. Πάδεια Î±Ï Ïή δεν είναι ÏÏ Î¼Î²Î±Ïή με Ïην άδεια ÏÏήÏÎ·Ï Apache V2. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο αÏÏείο Î±Ï Ïά αÏο Ïο Adobe Flex SDK; +ASK_FONTSWF=Το Apache Flex μÏοÏεί ÏÏοαιÏεÏικά να ÏÏηÏιμοÏοιήÏει Ïην Ï ÏοÏÏήÏιξη ÏÎ¿Ï ÏαÏÎÏει η Adobe για ενÏÏμαÏÏμÎÎ½ÎµÏ Î³ÏαμαÏοÏειÏÎÏ. ΠλειÏÎ¿Ï Ïγία Î±Ï Ïή αÏαιÏεί κάÏοια jar αÏÏεία ÏÎ¿Ï Ï ÏάÏÏÎ¿Ï Î½ ÏÏο Adobe Flex SDK. Îια Ïα αÏÏεία Î±Ï Ïά ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ·Ï Î¬Î´ÎµÎ¹Î±Ï Adobe SDK για Ïο Adobe Flex 4.6. Πάδεια Î±Ï Ïή δεν είναι ÏÏ Î¼Î²Î±Ïή με Ïην άδεια ÏÏήÏÎ·Ï Apache V2. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïα αÏÏεία Î±Ï Ïά αÏο Ïο Adobe Flex SDK; +ASK_OSMF=Îια Ïο Open Source Media Framework (OSMF) ÏÎ¿Ï ÏÏηÏιμοÏοιείÏαι αÏο Ïα ανÏικείμενα video ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ¿Ï Mozilla Public License Version 1.1. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Îια Ïο Open Source Media Framework (OSMF); +ASK_TLF=Îια Ïο Adobe Text Layout Framework (TLF) ÏÎ¿Ï ÏÏηÏιμοÏοιείÏαι αÏο Ïα ανÏικείμενα κειμÎÎ½Î¿Ï Î¹ÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï Mozilla Public License Version 1.1. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Adobe Text Layout Framework (TLF); +ASK_APACHE_FLEX=Îια Ïο Apache Flex SDK ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ¿Ï Apache License V2. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Apache Flex SDK; +ASK_ADOBE_AIR_SDK=Îια Ïο Adobe AIR SDK ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ¿Ï Adobe SDK License. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Adobe AIR SDK; +ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Îια Ïο Adobe Flash Player playerglobal.swc ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ¿Ï Adobe SDK License. ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο Adobe Flash Player playerglobal.swc; +ASK_SWFOBJECT=Îια Ïο SWFObject ιÏÏÏει η ÏÏ Î¼ÏÏνία ÏÏήÏÎ·Ï ÏÎ¿Ï MIT License (MIT). ÎÎλεÏε να εγκαÏαÏÏήÏεÏε Ïο SWFObject; +ASK_OFL_FONTS=The FlatSpark theme uses fonts licensed under the Open Font License. Do you want to install the Font Awesome and Lato Fonts? +BTN_LABEL_ADOBE_LICENSE=ΠΡÎÎÎÎÎ ADOBE LICENSE +BTN_LABEL_MPL_LICENSE=ΠΡÎÎÎÎÎ MPL LICENSE +BTN_DISCLAIMER=ÎÏοÏοίηÏη ÎÏ Î¸Ï Î½Ïν +ERROR_MIRROR_FETCH=ΣÏάλμα καÏα Ïη διάÏκεια ανάκÏηÏÎ·Ï Î¼Î¹Î±Ï ÏÎµÎ»Î¯Î´Î±Ï Î³Î¹Î± Ïην λήÏη ÏÏν αÏÏείÏν ÏÎ¿Ï Apache Flex SDK +ERROR_UNABLE_TO_DOWNLOAD_FILE=ÎÎ´Ï Î½Î±Ïη λήÏη ÏÎ¿Ï {0} +ERROR_UNABLE_TO_UNZIP=Îεν μÏοÏεί να γίνει αÏοÏÏ Î¼ÏίεÏη ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï : +ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Îεν μÏοÏεί να γίνει λήÏη ÏÎ¿Ï SWFObject +ERROR_VERIFY_FLEX_SDK=ΠεÏÎ±Î»Î®Î¸ÎµÏ Ïη ÏÏν ληÏθÎνÏÏν αÏÏείÏν αÏÎÏÏ Ïε. ΠεγκαÏάÏÏαÏη ÏÏαμάÏηÏε. +FETCH_GEO_IP=Î ÏοÏÏάθεια λήÏÎ·Ï ÏÎ·Ï ÏÏÏÎ±Ï Î´Î¹Î±Î¼Î¿Î½Î®Ï ÏÎ¿Ï ÏÏήÏÏη με ÏÏήÏη ÏÎ·Ï Ï ÏηÏεÏÎ¯Î±Ï GeoIP... +FETCH_GEO_IP_DONE='Îγινε λήÏη ÏÎ·Ï ÏÏÏÎ±Ï Î´Î¹Î±Î¼Î¿Î½Î®Ï ÏÎ¿Ï ÏÏήÏÏη αÏο Ïην Ï ÏηÏεÏία GeoIP. +FETCH_GEO_IP_ERROR=ΣÏάλμα καÏα Ïη λήÏη ÏÎ·Ï ÏÏÏÎ±Ï Î´Î¹Î±Î¼Î¿Î½Î®Ï ÏÎ¿Ï ÏÏήÏÏη αÏÏ Ïην Ï ÏηÏεÏία GeoIP... +FETCH_MIRROR_CGI=Î ÏοÏÏάθεια ανάκÏηÏÎ·Ï Î´Î¹Î±Î¸ÎÏÎ¹Î¼Î·Ï ÏÎµÎ»Î¯Î´Î±Ï Î»Î®ÏÎ·Ï Î±Ïο CGI... +FETCH_MIRROR_CGI_DONE=Îγινε ανάκÏηÏη διαθÎÏÎ¹Î¼Î·Ï ÏÎµÎ»Î¯Î´Î±Ï Î»Î®ÏÎ·Ï Î±Ïο CGI. +FETCH_MIRROR_CGI_ERROR=ÎÏοÏÏ Ïία ανάκÏηÏÎ·Ï Î´Î¹Î±Î¸ÎÏÎ¹Î¼Î·Ï ÏÎµÎ»Î¯Î´Î±Ï Î»Î®ÏÎ·Ï Î±Ïο CGI. +FETCH_MIRROR_LIST=ÎίνεÏαι ÏÏοÏÏάθεια ανάκÏηÏÎ·Ï ÏÎ·Ï Î»Î¯ÏÏÎ±Ï Î´Î¹Î±Î¸ÎÏιμÏν ÏελίδÏν αÏο Apache.org... +FETCH_MIRROR_LIST_DONE=Îγινε λήÏη ÏÏν διαθÎÏιμÏν ÏελίδÏν αÏÏ Apache.org +FETCH_MIRROR_LIST_PARSED=Îγινε εÏεξεÏγαÏία ÏÏν ÏελίδÏν ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïον κÏÎ´Î¹ÎºÏ ÏÏÏÎ±Ï ÎºÎ±Î¹ ÏÏοÎÎºÏ Ïε ο ιÏÏÏÏοÏοÏ: +INFO_DOWNLOADING_ADOBE_FLEX_SDK=ÎίνεÏαι λήÏη ÏÎ¿Ï Adobe Flex SDK αÏÏ: +INFO_DOWNLOADING_FILE_FROM=ÎίνεÏαι λήÏη ÏÎ¿Ï {0} αÏÏ: {1} +INFO_LICENSE_AGREEMENTS=ÎÎ´ÎµÎ¹ÎµÏ ÏÏήÏÎ·Ï +INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=ΠεÏαÏμογή θα κάνει λήÏη λογιÏÎ¼Î¹ÎºÎ¿Ï Î±Ïο ÏολλαÏλÎÏ Î¹ÏÏοÏÎµÎ»Î¯Î´ÎµÏ Î¼Îµ διαÏοÏεÏικÎÏ Î¬Î´ÎµÎ¹ÎµÏ ÏÏήÏηÏ. ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε κάθε εγγÏαÏή αÏο Ïην λίÏÏα αÏιÏÏεÏά, διαβάÏÏε Ïην άδεια ÏÏήÏÎ·Ï ÎºÎ±Î¹ βεβαιÏθείÏε ÏÏÏ ÏÏ Î¼ÏÏνείÏε με ÏÎ¿Ï Ï ÏÏÎ¿Ï Ï ÏÎ·Ï ÎºÎ¬Î¸Îµ άδειαÏ. +INFO_VERIFY_FLEX_SDK_DONE=ΠεÏÎ±Î»Î®Î¸ÎµÏ Ïη ÏÏν ληÏθÎνÏÏν αÏÏείÏν είναι εÏιÏÏ ÏήÏ. +INFO_WINDOW_TITLE=ÎγκαÏαÏÏήÏÏε Ïο Apache Flex SDK {0} για ÏÏήÏη με Ïο IDE ÏÎ±Ï +INSTALL_AGREE=Î£Ï Î¼ÏÏνÏ, να γίνει εγκαÏάÏÏαÏη +INSTALL_AGREE_ALL=Î£Ï Î¼ÏÏÎ½Ï Î¼Îµ ÏÎ»ÎµÏ ÏÎ¹Ï Î¬Î´ÎµÎ¹ÎµÏ ÏÏήÏÎ·Ï ÎºÎ±Î¹ ÏÎ¹Ï ÎµÏιλογÎÏ. Îα γίνει εγκαÏάÏÏαÏη. +INSTALL_DISAGREE=Îεν ÏÏ Î¼ÏÏνÏ. Îα μην γίνει εγκαÏάÏÏαÏη. +STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK=Apache Flex SDK (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK=Adobe AIR SDK (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player playerglobal.swc (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_SWFOBJECT=SWFObject (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_OSMF=OSMF (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_TLF=Adobe Text Layout Framework (ÎÏαιÏοÏμενο) +STEP_REQUIRED_INSTALL_OFL_FONTS=Font Awesome and Lato Fonts (ÎÏαιÏοÏμενο) +STEP_OPTIONAL_INSTALL_BLAZEDS=Remoting Support (Î ÏοαιÏεÏικÏ) +STEP_OPTIONAL_INSTALL_FONTSWF=Adobe Embedded Font Libraries and Utilities (Î ÏοαιÏεÏικÏ) +STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=ÎÏοÏÏ Î¼ÏίεÏη ÏÎ¿Ï Adobe AIR Runtime Kit +STEP_VERIFY_FLEX_SDK=ÎίνεÏαι εÏÎ±Î»Î®Î¸ÎµÏ Ïη ÏÎ¿Ï Apache Flex SDK MD5 Signature +LICENSE_ADOBE_SDK='Îδεια ÏÏήÏÎ·Ï Adobe Flex SDK +LICENSE_ADOBE_AIR_SDK='Îδεια ÏÏήÏÎ·Ï Adobe AIR SDK +LICENSE_FONTSWF='Îδεια ÏÏήÏÎ·Ï Adobe Flex SDK +LICENSE_BLAZEDS='Îδεια ÏÏήÏÎ·Ï Adobe Flex SDK +INFO_TRACKING=Anonymous usage statistics will be collected\nin accordance with our privacy policy. +
