http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/ru_RU.properties
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/properties/ru_RU.properties 
b/flex-installer/installer/src/properties/ru_RU.properties
new file mode 100644
index 0000000..d9ef50b
--- /dev/null
+++ b/flex-installer/installer/src/properties/ru_RU.properties
@@ -0,0 +1,140 @@
+################################################################################
+##
+##  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 по желанию может быть 
интегрирован с такими серверами как BlazeDS, 
GraniteDS, WebORB, Red5, AMFPHP, RubyAMF, PyAMF и другими. Для 
этого необходимо установить flex-messaging-common.jar 
из Adobe Flex SDK. Эта библиотека 
распространяется под лицензией Adobe SDK для 
Adobe Flex 4.6. Эта лицензия не совместима с 
лицензией Apache V2. Вы хотите установить эту 
библиотеку из Adobe Flex SDK?
+ASK_FONTSWF=Apache Flex по желанию может быть 
интегрирован с встроенными шрифтами от Adobe. 
Для этого нужны библиотеки с новыми 
шрифтами из Adobe Flex SDK. Эти библиотеки 
распространяются под лицензией Adobe SDK для 
Adobe Flex 4.6. Эта лицензия не совместима с 
лицензией Apache V2. Вы хотите установить эти 
библиотеки из Adobe Flex SDK?
+ASK_OSMF=Open Source Media Framework (OSMF) используется 
видео компонентами и распространяется под 
лицензией Mozilla Public версии 1.1. Вы хотите 
установить Open Source Media Framework (OSMF)?
+ASK_TLF=Adobe Text Layout Framework (TLF) используется 
текстовыми компонентами Spark и 
распространяется под лицензией Mozilla Public 
версии 1.1. Вы хотите установить Adobe Text Layout 
Framework (TLF)?
+ASK_APACHE_FLEX=Apache Flex SDK распространяется под 
лицензией Apache V2. Вы хотите установить Apache 
Flex SDK?
+ASK_ADOBE_AIR_SDK=Adobe AIR SDK распространяется под 
лицензией Adobe SDK. Вы хотите установить Adobe AIR 
SDK?
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player playerglobal.swc 
распространяется под лицензией Adobe SDK. Вы х
отите установить Adobe Flash Player playerglobal.swc?
+ASK_SWFOBJECT=Программа SWFObject распространяется 
под лицензией 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
+BTN_LABEL_BROWSE=ПРОСМОТР
+BTN_LABEL_CLOSE=ЗАКРЫТЬ
+BTN_LABEL_COPY_LOG=СКОПИРОВАТЬ ЖУРНАЛ
+BTN_LABEL_INSTALL=УСТАНОВИТЬ
+BTN_LABEL_INSTALL_LOG=ЖУРНАЛ УСТАНОВКИ
+BTN_LABEL_MPL_LICENSE=ПОКАЗАТЬ ЛИЦЕНЗИЮ MPL
+BTN_LABEL_NEXT=ДАЛЕЕ
+BTN_LABEL_BACK=НАЗАД
+BTN_DISCLAIMER=Предупреждение
+BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=ОТКРЫТЬ ПАПКУ APACHE FLEX
+ERROR_CONFIG_XML_LOAD=Ошибка во время загрузки 
конфигурационного XML файла: 
+ERROR_DIR_NOT_EMPTY=Выбранная папка не пуста
+ERROR_DIR_REQUIRE_ADMIN_RIGHTS=Требуются права 
Администратора чтобы записывать файлы в 
выбранную папку
+ERROR_INVALID_AIR_SDK_URL_MAC=Адрес Adobe AIR SDK для Mac указан 
неверно в конфигурационном файле
+ERROR_INVALID_AIR_SDK_URL_WINDOWS=Адрес Adobe AIR SDK для Windows 
указан неверно в конфигурационном файле
+ERROR_INVALID_FLASH_PLAYER_SWC_URL=Адрес Flash Player swc указан 
неверно в конфигурационном файле
+ERROR_INVALID_FLEX_SDK_DIRECTORY=Папка для Flex SDK выбрана 
неверно
+ERROR_INVALID_SDK_URL=Адрес Apache Flex SDK указан неверно 
в конфигурационном файле
+ERROR_MIRROR_FETCH=Ошибка при выборе зеркала для 
скачивания архива с Apache Flex SDK: 
+ERROR_NATIVE_PROCESS_ERROR=Ошибка архиватора: 
невозможно распаковать Adobe AIR SDK
+ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Архиватор не 
поддерживается. Невозможно распаковать 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_FILE=Невозможно скачать {0}
+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_UNABLE_TO_UNZIP=Невозможно распаковать файл: 
+ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Невозможно скачать 
SWFObject
+ERROR_UNSUPPORTED_OPERATING_SYSTEM=Неподдерживаемая 
операционная система
+ERROR_VERIFY_FLEX_SDK=Цифровая MD5 подпись скачанного 
Apache Flex SDK не совпадает с оригиналом. Файл 
повреждён, установка прервана.
+FETCH_GEO_IP=Запрашиваем страну пользователя у 
службы GeoIP...
+FETCH_GEO_IP_DONE=Страна пользователя получена у 
службы GeoIP.
+FETCH_GEO_IP_ERROR=Во время запроса страны 
пользователя у службы GeoIP произошла ошибка.
+FETCH_MIRROR_CGI=Запрашиваем адрес зеркала 
скачивания SDK у службы CGI...
+FETCH_MIRROR_CGI_DONE=Адрес зеркала скачивания SDK у 
службы CGI получен.
+FETCH_MIRROR_CGI_ERROR=Невозможно получить адрес 
зеркала скачивания SDK у службы CGI. Попробуем 
через службу GeoIP.
+FETCH_MIRROR_LIST=Запрашиваем список зеркал у 
Apache.org...
+FETCH_MIRROR_LIST_DONE=Список зеркал получен у Apache.org.
+FETCH_MIRROR_LIST_PARSED=Список зеркал получен и на 
основании кода страны получен этот адрес: 
+INFO_ABORT_INSTALLATION=Установка прервана
+INFO_USER_ABORT_INSTALLATION=Пользователь закрыл 
инсталлятор не дождавшись завершения. 
Текущий шаг: 
+INFO_APP_INVOKED=Запущен в режиме коммандной 
строки со следующими аргументами: 
+INFO_CREATING_FLEX_HOME=Создаём домашнюю папку для 
Apache Flex
+INFO_CREATING_TEMP_DIR=Создаём временную папку
+INFO_CURRENT_LANGUAGE=Выберите язык
+INFO_DOWNLOADING_ADOBE_FLEX_SDK=Скачиваем Adobe Flex SDK из: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=Скачиваем Adobe AIR Runtime Kit 
для Mac из: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=Скачиваем Adobe AIR Runtime 
Kit для Windows из: 
+INFO_DOWNLOADING_FILE_FROM=Скачиваем {0} из: {1}
+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=Устанавливаем 
конфигурационные файлы для использования 
с IDE
+INFO_INSTALLING_PLAYERGLOBAL_SWC=Устанавливаем Flash Player 
playerglobal.swc из: 
+INFO_INVOKED_GUI_MODE=запущен в визуальном режиме
+INFO_LICENSE_AGREEMENTS=Лицензионное соглашение
+INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=Этот установщик 
скачает компоненты с разных сайтов под 
разными лицензиями. Пожалуйста выберите 
каждый элемент слева, процитайте лицензию 
и подтвердите что вы согласны с её 
условиями by checking the checkbox next to it.
+INFO_SELECT_AIR_FLASH_PLAYER=Выберите версии AIR и Flash 
Player'а.
+INFO_SELECT_AIR=Выберите версию AIR
+INFO_SELECT_DIRECTORY=Выберите папку в которую Вы х
отите установить Flex SDK
+INFO_SELECT_DIRECTORY_INSTALL=Выберите папку для 
установки
+INFO_SELECT_FLASH=Выберите версию Flash Player'а
+INFO_SELECT_FLEX=Выберите версию Flex
+INFO_UNZIPPING=Распаковываем: 
+INFO_VERIFY_FLEX_SDK_DONE=Цифровая подпись MD5 Apache Flex SDK 
скачанных файлов совпадает с оригиналом. 
Файл не повреждён.
+INFO_WINDOW_TITLE=Установить Apache Flex SDK {0} для 
использования с IDE
+INSTALL_AGREE=Я согласен(а), Установить
+INSTALL_AGREE_ALL=Я согласен(а) по всем пунктам и со 
всеми лицензиями, Установить
+INSTALL_DISAGREE=Я не согласен(а), Не устанавливать
+SELECT_PATH_PROMPT=Куда Вы хотите установить Apache Flex 
SDK?
+STEP_SELECT_AIR_AND_FLASH_VERSION=Выберите версии AIR и Flash 
Player.
+STEP_CREATE_DIRECTORIES=Создание папок
+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_INSTALL_CONFIG_FILES=Устанавливаем 
конфигурационные файлы
+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=Поддержка серверов (Не 
обязательно)
+STEP_OPTIONAL_INSTALL_FONTSWF=Встроенные библиотеки 
шрифтов Adobe и утилиты (Не обязательно)
+STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=Распаковываем Adobe AIR 
Runtime Kit
+STEP_UNZIP_AIR_RUNTIME_KIT=Распаковываем Adobe AIR Runtime Kit
+STEP_UNZIP_FLEX_SDK=Распаковываем Apache Flex SDK
+STEP_VERIFY_FLEX_SDK=Проверям MD5 цифровую подпись 
Apache Flex
+LICENSE_APACHE_V2=Лицензия Apache V2
+LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html
+LICENSE_ADOBE_SDK=Лицензия Adobe Flex SDK
+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
+LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html
+LICENSE_SWFOBJECT=Лицензия MIT
+LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php
+LICENSE_OSMF=Лицензия Mozilla Public версии 1.1
+LICENSE_URL_OSMF=http://www.mozilla.org/MPL/
+LICENSE_TLF=Лицензия Mozilla Public версии 1.1
+LICENSE_URL_TLF=http://www.mozilla.org/MPL/
+LICENSE_FONTSWF=Лицензия Adobe Flex SDK
+LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+LICENSE_BLAZEDS=Лицензия Adobe Flex SDK
+LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+INFO_TRACKING=Обезличенная статистистика 
использования будет собранна \n в 
соответствии с нашими политиками 
конфиденциальности
+INFO_VERSION=версия
+INFO_USING_CACHED_FILE=Используем файл из кэша:

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/zh_CN.properties
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/properties/zh_CN.properties 
b/flex-installer/installer/src/properties/zh_CN.properties
new file mode 100755
index 0000000..f542c05
--- /dev/null
+++ b/flex-installer/installer/src/properties/zh_CN.properties
@@ -0,0 +1,138 @@
+################################################################################
+##
+##  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.
+##
+################################################################################
+# note that the translation of "Using cache from ..." is missing
+ASK_BLAZEDS=Apache Flex 可以选择性地与 BlazeDS, GraniteDS, WebORB, 
Red5, AMFPHP, RubyAMF, PyAMF 和其它一些远程服务提供者进行整合. 
此功能须要 Adobe Flex SDK 里的 flex-messaging-common.jar 文件, Adobe 
Flex 4.6 的 Adobe SDK 许可协议适用于这个 jar 文件, 此许可与 
Apache V2 许可并不兼容. 您想要安装来自 Adobe Flex SDK 里的这个 
jar 文件吗?
+ASK_FONTSWF=Apache Flex 可以选择性地与 Adobe 镶入字体支持 
进行整合. 此功能须要 Adobe Flex SDK 里的一些与字体相关的 jar 
文件, Adobe Flex 4.6 的 Adobe SDK 许可协议适用于这些 jar 文件, 
此许可与 Apache V2 许可并不兼容. 您想要安装来自 Adobe Flex SDK 
里的这些 jar 文件吗?
+ASK_OSMF=Flex 的一些视频组件需要用到开源媒体框架 Open Source 
Media Framework (OSMF), OSMF 由 Mozilla 公共许可协议 1.1 
版提供授权. 您想要下载并安装 OSMF 吗?
+ASK_TLF=Flex 的一些 Spark 文本组件需要用到 Adobe 文本布局框架 
Text Layout Framework (TLF), TLF 由 Mozilla 公共许可协议 1.1 
版提供授权. 您想要下载并安装 TLF 吗?
+ASK_APACHE_FLEX=Apache V2 许可协议适用于 Apache Flex SDK. 
您想要安装 Apache Flex SDK 吗?
+ASK_ADOBE_AIR_SDK=Adobe SDK 许可协议适用于 Adobe AIR SDK. 
您想要安装 Adobe AIR SDK 吗?
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Adobe SDK 许可协议适用于 Adobe Flash 
Player 的 playerglobal.swc 文件. 您想要安装 Adobe Flash Player 的 
playerglobal.swc 文件吗?
+ASK_SWFOBJECT=MIT 许可协议适用于 SWFObject 实用程序. 您想要安装
 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 许可协议
+BTN_LABEL_BROWSE=浏览
+BTN_LABEL_CLOSE=退出
+BTN_LABEL_COPY_LOG=拷贝日志
+BTN_LABEL_INSTALL=安装
+BTN_LABEL_INSTALL_LOG=安装日志
+BTN_LABEL_MPL_LICENSE=显示 MPL 许可协议
+BTN_LABEL_NEXT=下一步
+BTN_LABEL_BACK=后退
+BTN_DISCLAIMER=免责声明
+BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=打开 Apache Flex 目录
+ERROR_CONFIG_XML_LOAD=尝试加载 XML 配置文件时遇到错误: 
+ERROR_DIR_NOT_EMPTY=所选的并不是一个空目录
+ERROR_INVALID_AIR_SDK_URL_MAC=在配置文件中 Mac 版 Adobe AIR SDK 的 URL 
地址无效
+ERROR_INVALID_AIR_SDK_URL_WINDOWS=在配置文件中 Windows 版 Adobe AIR SDK 
的 URL 地址无效
+ERROR_INVALID_FLASH_PLAYER_SWC_URL=在配置文件中 playerglobal.swc 
文件的 URL 地址无效
+ERROR_INVALID_FLEX_SDK_DIRECTORY=所选的 Flex SDK 目录无效
+ERROR_INVALID_SDK_URL=在配置文件中 Apache Flex SDK 的 URL 地址无效
+ERROR_MIRROR_FETCH=尝试获取已编译版 Apache Flex SDK 
的镜像下载时遇到错误: 
+ERROR_NATIVE_PROCESS_ERROR=本地进程调用发生错误, 无法解压 Adobe 
AIR SDK
+ERROR_NATIVE_PROCESS_NOT_SUPPORTED=不支持本地进程调用, 无法解压 
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 运行时工具包
+ERROR_UNABLE_TO_DOWNLOAD_FILE=无法下载 {0}
+ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=无法下载 playerglobal.swc 文件
+ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=无法下载 Apache Flex SDK
+ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=无法安装某些配置文件
+ERROR_UNABLE_TO_UNZIP=无法解压文件: 
+ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=无法下载 SWFObject
+ERROR_UNSUPPORTED_OPERATING_SYSTEM=不支持当前操作系统
+ERROR_VERIFY_FLEX_SDK=所下载文件的 MD5 签名和 Apache Flex SDK 
的官方签名不一致, 此文件无效, 安装中止.
+FETCH_GEO_IP=正在尝试从 GeoIP 服务获取当前用户的国家代码...
+FETCH_GEO_IP_DONE=已从 GeoIP 服务取得当前用户的国家代码.
+FETCH_GEO_IP_ERROR=尝试从 GeoIP 服务获取当前用户的国家代ç 
æ—¶å‘生了一个错误.
+FETCH_MIRROR_CGI=正在尝试从 CGI 获取 SDK 的镜像下载 URL 地址...
+FETCH_MIRROR_CGI_DONE=已从 CGI 取得 SDK 的镜像下载 URL 地址.
+FETCH_MIRROR_CGI_ERROR=无法从 CGI 获取 SDK 的镜像下载 URL 地址, 
准备尝试 GeoIP 路由.
+FETCH_MIRROR_LIST=正在尝试从 Apache.org 获取镜像列表...
+FETCH_MIRROR_LIST_DONE=已从 Apache.org 取得镜像列表.
+FETCH_MIRROR_LIST_PARSED=已根据国家代ç 
æˆåŠŸè§£æžé•œåƒåˆ—è¡¨å¹¶å¾—åˆ°è¿™ä¸ªåŸŸ: 
+INFO_ABORT_INSTALLATION=安装中止
+INFO_APP_INVOKED=在调用命令行模式下使用以下参数: 
+INFO_CREATING_FLEX_HOME=正在创建 Apache Flex 主目录
+INFO_CREATING_TEMP_DIR=正在创建临时目录
+INFO_CURRENT_LANGUAGE=选择语言
+INFO_DOWNLOADING_ADOBE_FLEX_SDK=正在下载 Adobe Flex SDK: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=正在下载 Mac 版 Adobe AIR 
运行时工具包: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=正在下载 Windows 版 Adobe AIR 
运行时工具包: 
+INFO_DOWNLOADING_FILE_FROM=正在下载 {0} 从这个地址: {1}
+INFO_DOWNLOADING_FLEX_SDK=正在下载 Apache Flex SDK: 
+INFO_DOWNLOADED=下载完成
+INFO_ENTER_VALID_FLEX_SDK_PATH=请为 Flex SDK 输入有效的目录路径
+INFO_FINISHED_UNTARING=正在完成 tar 文件的解压: 
+INFO_FINISHED_UNZIPPING=正在完成解压: 
+INFO_INSTALLATION_COMPLETE=安装完成
+INFO_INSTALLING=正在安装...
+INFO_INSTALLING_CONFIG_FILES=正在安装框架配置文件, 以便为某个 
IDE 所使用
+INFO_INSTALLING_PLAYERGLOBAL_SWC=正在安装 Adobe Flash Player 的 
playerglobal.swc 文件: 
+INFO_INVOKED_GUI_MODE=已调用 GUI 模式
+INFO_LICENSE_AGREEMENTS=许可协议
+INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=此安装
器会从带有多种许可协议的多个站点下载软件. 
请在左侧点击各个要安装的项目, 阅读许可, 
并勾选旁边的复选框以确认您同意接受各许可协议的条款.
+INFO_SELECT_AIR_FLASH_PLAYER=选择 AIR 和 Flash Player 的版本.
+INFO_SELECT_AIR=选择 AIR 版本
+INFO_SELECT_DIRECTORY=选择您想要安装 Flex SDK 的目录
+INFO_SELECT_DIRECTORY_INSTALL=选择安装目录
+INFO_SELECT_FLASH=选择 Flash Player 版本
+INFO_SELECT_FLEX=选择 Flex 版本
+INFO_UNZIPPING=正在解压: 
+INFO_VERIFY_FLEX_SDK_DONE=所下载文件的 MD5 签名和 Apache Flex SDK 
的官方签名一致, 此文件有效.
+INFO_WINDOW_TITLE=为您的 IDE 安装 Apache Flex SDK {0}
+INSTALL_AGREE=我同意, 安装
+INSTALL_AGREE_ALL=我同意所有选项和许可, 安装
+INSTALL_DISAGREE=我不同意, 不要安装
+SELECT_PATH_PROMPT=您想要在哪里安装 Apache Flex SDK?
+STEP_SELECT_AIR_AND_FLASH_VERSION=选择 AIR 和 Flash Player 的版本.
+STEP_CREATE_DIRECTORIES=批量创建目录
+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_INSTALL_CONFIG_FILES=安装框架配置文件
+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=远程支持 (可选的)
+STEP_OPTIONAL_INSTALL_FONTSWF=Adobe 镶入字体库和实用程序 (可选的)
+STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=解压 Adobe AIR 运行时工具包
+STEP_UNZIP_AIR_RUNTIME_KIT=解压 Adobe AIR 运行时工具包
+STEP_UNZIP_FLEX_SDK=解压 Apache Flex SDK
+STEP_VERIFY_FLEX_SDK=正在验证 Apache Flex SDK 的 MD5 签名
+LICENSE_APACHE_V2=Apache V2 许可协议
+LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html
+LICENSE_ADOBE_SDK=Adobe Flex SDK 许可协议
+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 许可协议
+LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html
+LICENSE_SWFOBJECT=MIT 许可协议
+LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php
+LICENSE_OSMF=Mozilla 公共许可协议 1.1 版
+LICENSE_URL_OSMF=http://www.mozilla.org/MPL/
+LICENSE_TLF=Mozilla 公共许可协议 1.1 版
+LICENSE_URL_TLF=http://www.mozilla.org/MPL/
+LICENSE_FONTSWF=Adobe Flex SDK 许可协议
+LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+LICENSE_BLAZEDS=Adobe Flex SDK 许可协议
+LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+INFO_TRACKING=匿名使用统计信息将按ç…
§æˆ‘们的隐私政策进行收集.
+INFO_VERSION=版本
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/zh_TW.properties
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/properties/zh_TW.properties 
b/flex-installer/installer/src/properties/zh_TW.properties
new file mode 100755
index 0000000..9edda90
--- /dev/null
+++ b/flex-installer/installer/src/properties/zh_TW.properties
@@ -0,0 +1,138 @@
+################################################################################
+##
+##  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.
+##
+################################################################################
+# note that the translation of "Using cache from ..." is missing
+ASK_BLAZEDS=Apache Flex 可以選擇性地與 BlazeDS, GraniteDS, WebORB, 
Red5, AMFPHP, RubyAMF, PyAMF 和其它一些遠端服務提供者進行整合. 
此功能須要 Adobe Flex SDK 裡的 flex-messaging-common.jar 檔案, Adobe 
Flex 4.6 的 Adobe SDK 授權合約適用於這個 jar 檔案, 此許可與 
Apache V2 許可並不相容. 您想要安裝來自 Adobe Flex SDK 裡的這個 
jar 檔案嗎?
+ASK_FONTSWF=Apache Flex 可以選擇性地與 Adobe 鑲入字體支援 
進行整合. 此功能須要 Adobe Flex SDK 裡的一些與字體相關的 jar 
檔案, Adobe Flex 4.6 的 Adobe SDK 授權合約適用於這些 jar 檔案, 
此許可與 Apache V2 許可並不相容. 您想要安裝來自 Adobe Flex SDK 
裡的這些 jar 檔案嗎?
+ASK_OSMF=Flex 的一些視頻元件需要用到開源媒體框架 Open Source 
Media Framework (OSMF), OSMF 由 Mozilla 公共授權合約 1.1 
版提供授權. 您想要下載並安裝 OSMF 嗎?
+ASK_TLF=Flex 的一些 Spark 文本元件需要用到 Adobe 文本佈局框架 
Text Layout Framework (TLF), TLF 由 Mozilla 公共授權合約 1.1 
版提供授權. 您想要下載並安裝 TLF 嗎?
+ASK_APACHE_FLEX=Apache V2 授權合約適用於 Apache Flex SDK. 
您想要安裝 Apache Flex SDK 嗎?
+ASK_ADOBE_AIR_SDK=Adobe SDK 授權合約適用於 Adobe AIR SDK. 
您想要安裝 Adobe AIR SDK 嗎?
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Adobe SDK 授權合約適用於 Adobe Flash 
Player 的 playerglobal.swc 檔案. 您想要安裝 Adobe Flash Player 的 
playerglobal.swc 檔案嗎?
+ASK_SWFOBJECT=MIT 授權合約適用於 SWFObject 實用程式. 
您想要安裝 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 授權合約
+BTN_LABEL_BROWSE=流覽
+BTN_LABEL_CLOSE=退出
+BTN_LABEL_COPY_LOG=拷貝日誌
+BTN_LABEL_INSTALL=安裝
+BTN_LABEL_INSTALL_LOG=安裝日誌
+BTN_LABEL_MPL_LICENSE=顯示 MPL 授權合約
+BTN_LABEL_NEXT=下一步
+BTN_LABEL_BACK=後退
+BTN_DISCLAIMER=免責聲明
+BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=打開 Apache Flex 目錄
+ERROR_CONFIG_XML_LOAD=嘗試載入 XML 設定檔案時遇到錯誤: 
+ERROR_DIR_NOT_EMPTY=所選的並不是一個空目錄
+ERROR_INVALID_AIR_SDK_URL_MAC=在設定檔案中 Mac 版 Adobe AIR SDK 的 URL 
位址無效
+ERROR_INVALID_AIR_SDK_URL_WINDOWS=在設定檔案中 Windows 版 Adobe AIR SDK 
的 URL 位址無效
+ERROR_INVALID_FLASH_PLAYER_SWC_URL=在設定檔案中 playerglobal.swc 
檔案的 URL 位址無效
+ERROR_INVALID_FLEX_SDK_DIRECTORY=所選的 Flex SDK 目錄無效
+ERROR_INVALID_SDK_URL=在設定檔案中 Apache Flex SDK 的 URL 位址無效
+ERROR_MIRROR_FETCH=嘗試獲取已編譯版 Apache Flex SDK 
的鏡像下載時遇到錯誤: 
+ERROR_NATIVE_PROCESS_ERROR=本地進程調用發生錯誤, 無法解壓 Adobe 
AIR SDK
+ERROR_NATIVE_PROCESS_NOT_SUPPORTED=不支援本地進程調用, 無法解壓 
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 運行時工具包
+ERROR_UNABLE_TO_DOWNLOAD_FILE=無法下載 {0}
+ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=無法下載 playerglobal.swc 檔案
+ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=無法下載 Apache Flex SDK
+ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=無法安裝某些設定檔案
+ERROR_UNABLE_TO_UNZIP=無法解壓檔案: 
+ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=無法下載 SWFObject
+ERROR_UNSUPPORTED_OPERATING_SYSTEM=不支援當前作業系統
+ERROR_VERIFY_FLEX_SDK=所下載檔案的 MD5 簽名和 Apache Flex SDK 
的官方簽名不一致, 此檔案無效, 安裝中止.
+FETCH_GEO_IP=正在嘗試從 GeoIP 服務獲取當前使用者
的國家代碼...
+FETCH_GEO_IP_DONE=已從 GeoIP 服務取得當前使用者的國家代碼.
+FETCH_GEO_IP_ERROR=嘗試從 GeoIP 服務獲取當前使用者
的國家代碼時發生了一個錯誤.
+FETCH_MIRROR_CGI=正在嘗試從 CGI 獲取 SDK 的鏡像下載 URL 位址...
+FETCH_MIRROR_CGI_DONE=已從 CGI 取得 SDK 的鏡像下載 URL 位址.
+FETCH_MIRROR_CGI_ERROR=無法從 CGI 獲取 SDK 的鏡像下載 URL 位址, 
準備嘗試 GeoIP 路由.
+FETCH_MIRROR_LIST=正在嘗試從 Apache.org 獲取鏡像列表...
+FETCH_MIRROR_LIST_DONE=已從 Apache.org 取得鏡像列表.
+FETCH_MIRROR_LIST_PARSED=å·²æ 
¹æ“šåœ‹å®¶ä»£ç¢¼æˆåŠŸè§£æžé¡åƒåˆ—è¡¨ä¸¦å¾—åˆ°é€™å€‹åŸŸ: 
+INFO_ABORT_INSTALLATION=安裝中止
+INFO_APP_INVOKED=在調用命令列模式下使用以下參數: 
+INFO_CREATING_FLEX_HOME=正在創建 Apache Flex 主目錄
+INFO_CREATING_TEMP_DIR=正在創建臨時目錄
+INFO_CURRENT_LANGUAGE=選擇語言
+INFO_DOWNLOADING_ADOBE_FLEX_SDK=正在下載 Adobe Flex SDK: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=正在下載 Mac 版 Adobe AIR 
運行時工具包: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=正在下載 Windows 版 Adobe AIR 
運行時工具包: 
+INFO_DOWNLOADING_FILE_FROM=正在下載 {0} 從這個位址: {1}
+INFO_DOWNLOADING_FLEX_SDK=正在下載 Apache Flex SDK: 
+INFO_DOWNLOADED=下載完成
+INFO_ENTER_VALID_FLEX_SDK_PATH=請為 Flex SDK 輸入有效的目錄路徑
+INFO_FINISHED_UNTARING=正在完成 tar 檔案的解壓: 
+INFO_FINISHED_UNZIPPING=正在完成解壓: 
+INFO_INSTALLATION_COMPLETE=安裝完成
+INFO_INSTALLING=正在安裝...
+INFO_INSTALLING_CONFIG_FILES=正在安裝框架設定檔案, 以便為某個 
IDE 所使用
+INFO_INSTALLING_PLAYERGLOBAL_SWC=正在安裝 Adobe Flash Player 的 
playerglobal.swc 檔案: 
+INFO_INVOKED_GUI_MODE=已調用 GUI 模式
+INFO_LICENSE_AGREEMENTS=授權合約
+INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=此安裝器會從帶有多種授權合約的多個網站下載軟體.
 請在左側點擊各個要安裝的項目, 閱讀許可, 並勾選旁邊的æ 
¸å–方塊以確認您同意接受各授權合約的條款.
+INFO_SELECT_AIR_FLASH_PLAYER=選擇 AIR 和 Flash Player 的版本.
+INFO_SELECT_AIR=選擇 AIR 版本
+INFO_SELECT_DIRECTORY=選擇您想要安裝 Flex SDK 的目錄
+INFO_SELECT_DIRECTORY_INSTALL=選擇安裝目錄
+INFO_SELECT_FLASH=選擇 Flash Player 版本
+INFO_SELECT_FLEX=選擇 Flex 版本
+INFO_UNZIPPING=正在解壓: 
+INFO_VERIFY_FLEX_SDK_DONE=所下載檔案的 MD5 簽名和 Apache Flex SDK 
的官方簽名一致, 此檔案有效.
+INFO_WINDOW_TITLE=為您的 IDE 安裝 Apache Flex SDK {0}
+INSTALL_AGREE=我同意, 安裝
+INSTALL_AGREE_ALL=我同意所有選項和許可, 安裝
+INSTALL_DISAGREE=我不同意, 不要安裝
+SELECT_PATH_PROMPT=您想要在哪裡安裝 Apache Flex SDK?
+STEP_SELECT_AIR_AND_FLASH_VERSION=選擇 AIR 和 Flash Player 的版本.
+STEP_CREATE_DIRECTORIES=批量創建目錄
+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_INSTALL_CONFIG_FILES=安裝框架設定檔案
+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=遠端支援 (可選的)
+STEP_OPTIONAL_INSTALL_FONTSWF=Adobe 鑲入字體庫和實用程式 (可選的)
+STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=解壓 Adobe AIR 運行時工具包
+STEP_UNZIP_AIR_RUNTIME_KIT=解壓 Adobe AIR 運行時工具包
+STEP_UNZIP_FLEX_SDK=解壓 Apache Flex SDK
+STEP_VERIFY_FLEX_SDK=正在驗證 Apache Flex SDK 的 MD5 簽名
+LICENSE_APACHE_V2=Apache V2 授權合約
+LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html
+LICENSE_ADOBE_SDK=Adobe Flex SDK 授權合約
+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 授權合約
+LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html
+LICENSE_SWFOBJECT=MIT 授權合約
+LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php
+LICENSE_OSMF=Mozilla 公共授權合約 1.1 版
+LICENSE_URL_OSMF=http://www.mozilla.org/MPL/
+LICENSE_TLF=Mozilla 公共授權合約 1.1 版
+LICENSE_URL_TLF=http://www.mozilla.org/MPL/
+LICENSE_FONTSWF=Adobe Flex SDK 授權合約
+LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+LICENSE_BLAZEDS=Adobe Flex SDK 授權合約
+LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+INFO_TRACKING=匿名使用統計資訊將按ç…
§æˆ‘們的隱私政策進行收集.
+INFO_VERSION=版本
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/sdk-installer-config-2.0.xml
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/sdk-installer-config-2.0.xml 
b/flex-installer/installer/src/sdk-installer-config-2.0.xml
new file mode 100644
index 0000000..b57d452
--- /dev/null
+++ b/flex-installer/installer/src/sdk-installer-config-2.0.xml
@@ -0,0 +1,68 @@
+<?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.
+
+-->
+
+<config>
+       <version>
+               <latest>2.5.4</latest>
+       </version>
+       <files>
+
+               <!-- SDK Installer App binary distribution
+                        Notes:
+                               - use full URL when binaries are NOT released 
yet, else use
+                                 path relative to mirror
+                               - if path is relative, don't use starting slash 
-->
+               <file name="SDKInstallerApp" 
path="https://dist.apache.org/repos/dist/dev/flex/installer/2.0/rc1/binaries/"; 
file="apache-flex-sdk-installer-2.0.3-bin" />
+
+        <!-- Mirror URL CGI -->
+        <file name="MirrorURLCGI" path="" file="single-mirror-url.cgi"/>
+
+        <!-- Apache Flex binary distribution
+             Notes:
+                 - path is relative to mirror URL
+                 - don't use starting slash
+                 - for the second and later releases, remove the extension 
from the file name -->
+        <file name="ApacheFlexSDK" path="flex/4.9.1/binaries/" 
file="apache-flex-sdk-4.9.1-bin"/>
+
+        <!-- Adobe AIR SDK -->
+        <file name="AdobeAIRSDKWin" 
path="http://airdownload.adobe.com/air/win/download/3.4/"; 
file="AdobeAIRSDK.zip"/>
+        <file name="AdobeAIRSDKMac" 
path="http://airdownload.adobe.com/air/mac/download/3.4/"; 
file="AdobeAIRSDK.tbz2"/>
+
+        <!-- Adobe Flash Player player global swc -->
+        <file name="FlashPlayer" 
path="http://fpdownload.macromedia.com/get/flashplayer/updaters/11/"; 
file="playerglobal11_1.swc" version="11.1"/>
+
+        <!-- SWFObject.js -->
+        <file name="swfobject" path="http://swfobject.googlecode.com/files/"; 
file="swfobject_2_2.zip"/>
+
+        <!-- BlazeDS -->
+        <file name="BlazeDS" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="flex-messaging-common.jar"/>
+
+        <!-- FontSWF -->
+        <file name="afe" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="afe.jar"/>
+        <file name="aglj40" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="aglj40.jar"/>
+        <file name="flex-fontkit" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="flex-fontkit.jar"/>
+        <file name="rideau" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="rideau.jar"/>
+
+        <!-- OSMF -->
+        <file name="OSMF" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/frameworks/libs/";
 file="osmf.swc"/>
+
+    </files>
+</config>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/sdk-installer-config.xml
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/sdk-installer-config.xml 
b/flex-installer/installer/src/sdk-installer-config.xml
new file mode 100644
index 0000000..c4f0ef1
--- /dev/null
+++ b/flex-installer/installer/src/sdk-installer-config.xml
@@ -0,0 +1,71 @@
+<?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.
+
+-->
+
+<config>
+       <version>
+               <latest>1.0.9</latest>
+       </version>
+       <files>
+       
+               <!-- SDK Installer App binary distribution
+                        Notes: 
+                               - use full URL when binaries are NOT released 
yet, else use 
+                                 path relative to mirror
+                               - if path is relative, don't use starting slash 
-->
+               <file name="SDKInstallerApp" 
path="incubator/flex/installer/1.0/binaries/" 
file="apache-flex-sdk-installer-1.0.9-incubating-bin" />
+               
+               <!-- Mirror URL CGI -->
+               <file name="MirrorURLCGI" path="" file="single-mirror-url.cgi" 
/>
+               
+               <!-- Apache Flex binary distribution
+                        Notes: 
+                               - path is relative to mirror URL
+                               - don't use starting slash 
+                               - for the second and later releases, remove the 
extension from the file name -->
+               <file name="ApacheFlexSDK" 
path="incubator/flex/4.8.0-incubating/binaries/" 
file="apache-flex-sdk-4.8.0-incubating-bin.zip" />
+               
+               <!-- Adobe AIR SDK -->
+               <file name="AdobeAIRSDKWin" 
path="http://airdownload.adobe.com/air/win/download/3.1/"; 
file="AdobeAIRSDK.zip" />
+               <file name="AdobeAIRSDKMac" 
path="http://airdownload.adobe.com/air/mac/download/3.1/"; 
file="AdobeAIRSDK.tbz2" />
+               
+               <!-- Adobe Flash Player player global swc -->
+               <file name="FlashPlayer" 
path="http://fpdownload.macromedia.com/get/flashplayer/updaters/11/"; 
file="playerglobal11_1.swc" />    
+
+               <!-- SWFObject.js -->
+               <file name="swfobject" 
path="http://swfobject.googlecode.com/files/"; file="swfobject_2_2.zip" />       
 
+               
+               <!-- BlazeDS -->
+               <file name="BlazeDS" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="flex-messaging-common.jar" />   
+               
+               <!-- FontSWF -->
+               <file name="afe" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="afe.jar" />
+               <file name="aglj40" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="aglj40.jar" />
+               <file name="flex-fontkit" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="flex-fontkit.jar" />
+               <file name="rideau" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/"; 
file="rideau.jar" />
+                       
+               <!-- OSMF -->
+               <file name="OSMF" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/frameworks/libs/";
 file="osmf.swc" />   
+               
+               <!-- TLF -->
+               <file name="TLF" 
path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/frameworks/libs/";
 file="textLayout.swc" />      
+
+       </files>
+</config>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/ActivityIndicator.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/controls/ActivityIndicator.as 
b/flex-installer/installer/src/ws/tink/spark/controls/ActivityIndicator.as
new file mode 100644
index 0000000..0829916
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/ActivityIndicator.as
@@ -0,0 +1,283 @@
+/*
+       
+       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 ws.tink.spark.controls
+{
+       import mx.events.FlexEvent;
+       import mx.managers.IToolTipManagerClient;
+       
+       import spark.components.Label;
+       import spark.components.supportClasses.SkinnableComponent;
+       
+       import ws.tink.spark.controls.Rotator;
+
+       /**
+        *  An indicator showing the indeterminate progress of a task.
+        *
+        *      @langversion 3.0
+        *      @playerversion Flash 10
+        *      @playerversion AIR 1.5
+        *      @productversion Flex 4
+        */
+       public class ActivityIndicator extends SkinnableComponent
+       {
+
+               
+
+               
//--------------------------------------------------------------------------
+               //
+               //  Constructor
+               //
+               
//--------------------------------------------------------------------------
+
+               /**
+                *  Constructor
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function ActivityIndicator()
+               {
+                       addEventListener(FlexEvent.SHOW, showHandler, false, 0, 
true);
+                       addEventListener(FlexEvent.HIDE, hideHandler, false, 0, 
true);
+               }
+
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  SkinParts
+               //
+               
//--------------------------------------------------------------------------    
+               
+               //----------------------------------
+               //  indicator
+               //----------------------------------
+               
+               [SkinPart(required='true')]
+               /**
+                *  The rotator used to show an indicator
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public var indicator:IAnimator;
+               
+               //----------------------------------
+               //  label
+               //----------------------------------
+               
+               [SkinPart]
+               /**
+                *  The labelDisplay to show the activity status
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public var labelDisplay:Label;
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Properties
+               //
+               
//--------------------------------------------------------------------------    
+
+               //----------------------------------
+               //  label
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for label.
+                */
+               private var _label:String = '';
+               
+               /**
+                *  Text representing the status of the activity in progress.
+                *  This will be shown to the user, depending on the skin.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get label():String
+               {
+                       if(_label == '')
+                               return null;
+                       return _label;
+               }
+               /**
+                *  @private
+                */
+               public function set label(value:String):void
+               {
+                       if( _label == value ) return;
+                       
+                       _label = value;
+                       
+                       if (indicator && indicator is IToolTipManagerClient)
+                               IToolTipManagerClient( indicator ).toolTip = 
label;
+                       
+                       if (labelDisplay)
+                               labelDisplay.text = _label;
+               }
+
+               
+               //----------------------------------
+               //  autoAnimate
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for autoAnimate.
+                */
+               private var _autoAnimate:Boolean = true;
+               
+               [Inspectable(type="Boolean",defaultValue="true")]
+               /**
+                *  Indicates that the <code>ActivityIndicator</code> should 
animate by default.
+                *
+                *  This includes starting and stopping the animation when the 
component is shown and hidden.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get autoAnimate():Boolean
+               {
+                       return _autoAnimate;
+               }
+               /**
+                *  @private
+                */
+               public function set autoAnimate(value:Boolean):void
+               {
+                       _autoAnimate = value;
+                       if (value && visible)
+                               play();
+                       else
+                               stop();
+               }
+
+               
//--------------------------------------------------------------------------
+               //
+               //  Methods
+               //
+               
//--------------------------------------------------------------------------    
+               
+               /**
+                *  Start the activity animation.
+                *  This can be managed automatically when show/hidden using 
autoAnimate.
+                * 
+                *  @see autoAnimate
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */     
+               public function play():void
+               {
+                       if (indicator)
+                               indicator.play();
+               }
+
+               /**
+                *  Stop the activity animation.
+                *  This can be managed automatically when show/hidden using 
autoAnimate.
+                * 
+                *  @see autoAnimate
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */     
+               public function stop():void
+               {
+                       if (indicator)
+                               indicator.stop();
+               }
+
+               
+
+               
//--------------------------------------------------------------------------
+               //
+               //  Overridden Methods
+               //
+               
//--------------------------------------------------------------------------    
+               
+               /**
+                *  @private
+                */
+               protected override function partAdded(partName:String, 
instance:Object):void
+               {
+                       super.partAdded(partName, instance);
+                       
+                       switch( instance )
+                       {
+                               case indicator :
+                               {
+                                       if( label && indicator is 
IToolTipManagerClient )
+                                               IToolTipManagerClient( 
indicator ).toolTip = label;
+                                       if( autoAnimate ) play();
+                                       break;
+                               }
+                               case labelDisplay :
+                               {
+                                       labelDisplay.text = label;
+                                       break;
+                               }
+                       }
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Event Handlers
+               //
+               
//--------------------------------------------------------------------------    
+               
+               /**
+                *  @private
+                */
+               private function hideHandler(event:FlexEvent):void
+               {
+                       if( autoAnimate ) stop();
+               }
+               
+               /**
+                *  @private
+                */
+               private function showHandler(event:FlexEvent):void
+               {
+                       if (autoAnimate)
+                               play();
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/IAnimator.as
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/ws/tink/spark/controls/IAnimator.as 
b/flex-installer/installer/src/ws/tink/spark/controls/IAnimator.as
new file mode 100644
index 0000000..4047cf6
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/IAnimator.as
@@ -0,0 +1,53 @@
+/*
+
+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 ws.tink.spark.controls
+{
+       
+       /**
+        *  The IAnimator interface defines the methods
+        *  for controls that are able to animate.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4.5
+        */
+       public interface IAnimator
+       {
+               /**
+                *  Plays the animation.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               function play():void
+                       
+               /**
+                *  Stops the animation.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               function stop():void
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/PercentLayout.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/controls/PercentLayout.as 
b/flex-installer/installer/src/ws/tink/spark/controls/PercentLayout.as
new file mode 100644
index 0000000..7e6c40f
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/PercentLayout.as
@@ -0,0 +1,125 @@
+/*
+
+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 ws.tink.spark.controls
+{
+       import mx.core.IVisualElement;
+       
+       import spark.layouts.BasicLayout;
+       
+       public class PercentLayout extends BasicLayout
+       {
+               public function PercentLayout()
+               {
+                       super();
+               }
+               
+               //----------------------------------
+               //  resizeItems
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for resizeItems.
+                */
+               private var _resizeItems:Array;
+               
+               /**
+                *  resizeItems
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get resizeItems():Array
+               {
+                       return _resizeItems;
+               }
+               /**
+                *  @private
+                */
+               public function set resizeItems(value:Array):void
+               {
+                       if( _resizeItems == value ) return;
+                       
+                       _resizeItems = value;
+               }
+               
+               //----------------------------------
+               //  percent
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for percent.
+                */
+               private var _percent:Number = 0;
+               
+               /**
+                *  percent
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get percent():Number
+               {
+                       return _percent;
+               }
+               /**
+                *  @private
+                */
+               public function set percent(value:Number):void
+               {
+                       if( _percent == value ) return;
+                       
+                       _percent = value;
+                       target.invalidateDisplayList();
+               }
+               
+               
+               override public function updateDisplayList( 
unscaledWidth:Number, unscaledHeight:Number ):void
+               {
+                       super.updateDisplayList( unscaledWidth, unscaledHeight 
);
+                       
+                       if( resizeItems && resizeItems.length )
+                       {
+                               var element:IVisualElement;
+                               var originalSize:Number;
+                               var minSize:Number;
+                               var availableChange:Number;
+                               
+                               for each (var item:Object in resizeItems) 
+                               {
+                                       if( item is IVisualElement )
+                                       {
+                                               element = IVisualElement( item 
);
+                                               originalSize = 
element.getLayoutBoundsWidth();
+                                               minSize = 
element.getMinBoundsWidth();
+                                               availableChange = originalSize 
- minSize;
+                                               element.setLayoutBoundsSize( 
minSize + ( availableChange * ( percent / 100 ) ), 
element.getLayoutBoundsHeight() );
+                                       }
+                               }
+                       }
+                       
+                       
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/ProgressBar.as
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/ws/tink/spark/controls/ProgressBar.as 
b/flex-installer/installer/src/ws/tink/spark/controls/ProgressBar.as
new file mode 100644
index 0000000..162c940
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/ProgressBar.as
@@ -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.
+
+*/
+package ws.tink.spark.controls
+{
+       import mx.core.IVisualElement;
+       import mx.rpc.events.HeaderEvent;
+       
+       import spark.components.supportClasses.SkinnableComponent;
+       
+       public class ProgressBar extends SkinnableComponent
+       {
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Constructor
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  Constructor.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function ProgressBar()
+               {
+                       super();
+               }
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Skin Parts
+               //
+               
//--------------------------------------------------------------------------
+               
+               //----------------------------------
+               //  bar
+               //----------------------------------
+               
+               [SkinPart(required="true")]
+               
+               /**
+                *  bar.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public var percentLayout:PercentLayout;
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Properties
+               //
+               
//--------------------------------------------------------------------------
+               
+               //----------------------------------
+               //  percent
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for percent.
+                */
+               private var _percent:Number = 0;
+               
+               /**
+                *  percent
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get percent():Number
+               {
+                       return _percent;
+               }
+               /**
+                *  @private
+                */
+               public function set percent(value:Number):void
+               {
+//                     if( _percent == value ) return;
+                       
+                       _percent = value;
+                       if( percentLayout ) percentLayout.percent = percent;
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Overridden Methods
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @private
+                */
+               override protected function partAdded(partName:String, 
instance:Object):void
+               {
+                       super.partAdded( partName, instance );
+                       
+                       if( instance == percentLayout ) percentLayout.percent = 
percent;
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/Rotator.as
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/ws/tink/spark/controls/Rotator.as 
b/flex-installer/installer/src/ws/tink/spark/controls/Rotator.as
new file mode 100644
index 0000000..d9eb8ee
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/Rotator.as
@@ -0,0 +1,206 @@
+/*
+
+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 ws.tink.spark.controls
+{
+       import flash.events.Event;
+       import flash.events.TimerEvent;
+       import flash.geom.Vector3D;
+       import flash.utils.Timer;
+       
+       import mx.core.ILayoutElement;
+       import mx.core.IVisualElement;
+       import mx.core.UIComponent;
+       import mx.core.mx_internal;
+       import mx.events.PropertyChangeEvent;
+       
+       import spark.components.supportClasses.SkinnableComponent;
+       import spark.layouts.supportClasses.LayoutElementHelper;
+       import spark.primitives.supportClasses.GraphicElement;
+       
+       
+       /**
+        *  The Rotator control is a simple skinnable component that rotates 
it's skin when playing.
+        *
+        *  <p>You can set the amount of rotation on each frame by changing the 
<code>delta</code> property.</p>
+        *
+        *  <p>The List control has the following default characteristics:</p>
+        *  <table class="innertable">
+        *     <tr><th>Characteristic</th><th>Description</th></tr>
+        *     <tr><td>Default skin 
class</td><td>ws.tink.spark.skins.controls.RotatorSkin</td></tr>
+        *  </table>
+        *
+        *  @mxml <p>The <code>&lt;st:Rotator&gt;</code> tag inherits all of 
the tag 
+        *  attributes of its superclass and adds the following tag 
attributes:</p>
+        *
+        *  <pre>
+        *  &lt;st:Rotator
+        *    <strong>Properties</strong>
+        *    delta="10"
+        *  /&gt;
+        *  </pre>
+        *
+        *  @see ws.tink.spark.skins.controls.RotatorSkin
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+       public class Rotator extends SkinnableComponent implements IAnimator
+       {
+               
+               
+
+               
//--------------------------------------------------------------------------
+               //
+               //  Constructor
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  Constructor
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function Rotator()
+               {
+                       super();
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Variables
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @private
+                */
+               private var _playing:Boolean;
+               
+               /**
+                *  @private
+                */
+               private var _rotation:Number = 0;
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Properties
+               //
+               
//--------------------------------------------------------------------------
+               
+               //----------------------------------
+               //  delta
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for delta.
+                */
+               private var _delta:Number = 10;
+               
+               [Inspectable(type="Boolean", defaultValue="10")]
+               /**
+                *  The amount to rotate in degrees each frame.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get delta():Number
+               {
+                       return _delta;
+               }
+               /**
+                *  @private
+                */
+               public function set delta(value:Number):void
+               {
+                       if (_delta == value) return;
+                       
+                       _delta = value;
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Methods
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @inheritDoc
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function play():void
+               {
+                       _playing = true;
+                       addEventListener( Event.ENTER_FRAME, enterFrameHandler, 
false, 0, true );
+               }
+               
+               /**
+                *  @inheritDoc
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function stop():void
+               {
+                       _playing = false;
+                       removeEventListener( Event.ENTER_FRAME, 
enterFrameHandler, false );
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Event Handlers
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @private
+                */
+               private function enterFrameHandler( event:Event ):void
+               {
+                       if( skin )
+                       {
+                               _rotation += ( 360 / 10 );
+                               skin.transformAround( new Vector3D( 
unscaledWidth / 2, unscaledHeight / 2, 0 ),
+                                       new Vector3D( 1, 1, 1 ),
+                                       new Vector3D( 0, 0, _rotation ) );
+                       }
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/StepItem.as
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/ws/tink/spark/controls/StepItem.as 
b/flex-installer/installer/src/ws/tink/spark/controls/StepItem.as
new file mode 100644
index 0000000..d644848
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/StepItem.as
@@ -0,0 +1,59 @@
+/*
+
+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 ws.tink.spark.controls
+{
+       import flash.events.EventDispatcher;
+
+       [Bindable]
+       public class StepItem extends EventDispatcher
+       {
+               
+               public static const NORMAL:String = "normal";
+               public static const ACTIVE:String = "active";
+               public static const COMPLETE:String = "complete";
+               public static const ERROR:String = "error";
+               
+               public function StepItem(l:String)
+               {
+                       label = l;
+               }
+               
+               private var _label:String = "";
+               public function get label():String { return _label; }
+               
+               public function set label(value:String):void
+               {
+                       if (_label == value)
+                               return;
+                       _label = value;
+               }
+               
+               private var _status:String = NORMAL;
+               public function get status():String { return _status; }
+               
+               public function set status(value:String):void
+               {
+                       if (_status == value)
+                               return;
+                       _status = value;
+               }
+               
+               
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/StepRenderer.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/controls/StepRenderer.mxml 
b/flex-installer/installer/src/ws/tink/spark/controls/StepRenderer.mxml
new file mode 100644
index 0000000..9dbc181
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/StepRenderer.mxml
@@ -0,0 +1,81 @@
+<?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.
+
+-->
+<st:StepRendererBase xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                                               
xmlns:s="library://ns.adobe.com/flex/spark" 
+                                               
xmlns:mx="library://ns.adobe.com/flex/mx"
+                                               
xmlns:st="ws.tink.spark.controls.*"
+                                               width="22" height="22"   >
+       <fx:Declarations>
+               <!-- Place non-visual elements (e.g., services, value objects) 
here -->
+       </fx:Declarations>
+       
+       <st:states>
+               <s:State name="normal"/>
+               <s:State name="active"/>
+               <s:State name="complete"/>
+               <s:State name="error"/>
+       </st:states>
+       
+       <!-- layer 1: border -->
+       <!--- @private -->
+       <s:Rect width="100%" height="100%"
+                       radiusX="2" radiusY="2">
+               <s:fill>
+                       <s:SolidColor color="{getStyle('borderColor')}"/>
+               </s:fill>
+       </s:Rect>
+       
+       <!-- layer 2: border gradient -->
+       <!--- @private -->
+       <s:Rect width="100%" height="100%"
+                       radiusX="2" radiusY="2">
+               <s:fill>
+                       <s:LinearGradient rotation="90">
+                               <s:GradientEntry color="0xffffff" alpha="0"/>
+                               <s:GradientEntry color="0xffffff" alpha="1"/>
+                       </s:LinearGradient>
+               </s:fill>
+       </s:Rect>
+       
+       <!-- layer 3: fill -->
+       <!--- @private -->
+       <s:Rect left="1" right="1" top="1" bottom="1"
+                       radiusX="1" radiusY="1">
+               <s:fill>
+                       <s:SolidColor color="{stateColor}"/>
+               </s:fill>
+       </s:Rect>
+       
+       <!-- layer 3: fill gradient -->
+       <!--- @private -->
+       <s:Rect left="1" right="1" top="1" bottom="1"
+                       radiusX="1" radiusY="1">
+               <s:fill>
+                       <s:LinearGradient rotation="90">
+                               <s:GradientEntry color="0xffffff" alpha="0.4" 
ratio="0.2"/>
+                               <s:GradientEntry color="0xffffff" alpha="0"/>
+                       </s:LinearGradient>
+               </s:fill>
+       </s:Rect>
+       
+       <st:ActivityIndicator width="12" height="12" horizontalCenter="0" 
verticalCenter="0"
+                                                 autoAnimate="true" 
includeIn="active"/>
+       
+</st:StepRendererBase>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/controls/StepRendererBase.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/controls/StepRendererBase.as 
b/flex-installer/installer/src/ws/tink/spark/controls/StepRendererBase.as
new file mode 100644
index 0000000..e13e445
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/controls/StepRendererBase.as
@@ -0,0 +1,120 @@
+/*
+
+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 ws.tink.spark.controls
+{
+       import flash.events.Event;
+       
+       import mx.events.PropertyChangeEvent;
+       
+       import spark.components.DataRenderer;
+       import spark.components.IItemRenderer;
+       
+       public class StepRendererBase extends DataRenderer implements 
IItemRenderer
+       {
+               public function StepRendererBase()
+               {
+                       super();
+               }
+               
+               private var _itemIndex:int;
+               [Bindable("itemIndexChanged")]
+               public function get itemIndex():int
+               {
+                       return _itemIndex;
+               }
+               
+               public function set itemIndex(value:int):void
+               {
+                       if( _itemIndex == value ) return;
+                       _itemIndex = value;
+                       dispatchEvent(new Event("itemIndexChanged"));
+               }
+               
+               private var _stateColor:Number;
+               [Bindable(type="currentStateChange")]
+               public function get stateColor():Number { return _stateColor; }
+               
+               
+               
+               override public function set data(value:Object):void
+               {
+                       super.data = value;
+                       
+                       invalidateProperties();
+               }
+               
+               override public function setCurrentState(stateName:String, 
playTransition:Boolean=true):void
+               {
+                       _stateColor = stateName == "normal" ? getStyle( "color" 
) : getStyle( stateName + "Color" );
+                       super.setCurrentState(stateName, playTransition);
+               }
+               
+               override protected function commitProperties():void
+               {
+                       if (data && data is StepItem && hasState( StepItem( 
data ).status ))
+                       {
+                               setCurrentState( StepItem( data ).status );
+                       }
+                       else
+                       {
+                               setCurrentState( "normal" );
+                       }
+                       
+                       toolTip = (data && data is StepItem )? StepItem( data 
).label : "";
+                       
+                       super.commitProperties();
+               }
+               
+               public function get label():String
+               {
+                       return "";
+               }
+               
+               public function set label(value:String):void
+               {
+               }
+               public function get selected():Boolean
+               {
+                       return false;
+               }
+               
+               public function set selected(value:Boolean):void
+               {
+               }
+               
+               public function get showsCaret():Boolean
+               {
+                       return false;
+               }
+               
+               public function set showsCaret(value:Boolean):void
+               {
+               }
+               
+               public function get dragging():Boolean
+               {
+                       return false;
+               }
+               
+               public function set dragging(value:Boolean):void
+               {
+               }
+               
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/layouts/EllipseLayout.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/layouts/EllipseLayout.as 
b/flex-installer/installer/src/ws/tink/spark/layouts/EllipseLayout.as
new file mode 100644
index 0000000..03919d6
--- /dev/null
+++ b/flex-installer/installer/src/ws/tink/spark/layouts/EllipseLayout.as
@@ -0,0 +1,275 @@
+/*
+
+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 ws.tink.spark.layouts
+{
+       import flash.geom.Matrix;
+       import flash.geom.Point;
+       import flash.geom.Vector3D;
+       
+       import mx.core.ILayoutElement;
+       
+       import spark.layouts.supportClasses.LayoutBase;
+       
+       public class EllipseLayout extends LayoutBase
+       {
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Constructor
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  Constructor.
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function EllipseLayout()
+               {
+                       super();
+               }
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Properties
+               //
+               
//--------------------------------------------------------------------------
+               
+               //----------------------------------
+               //  startAngle
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for startAngle.
+                */
+               private var _startAngle:Number = 0;
+               
+               [Inspectable(category="General")]
+               /**
+                *  startAngle
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get startAngle():Number
+               {
+                       return _startAngle;
+               }
+               /**
+                *  @private
+                */
+               public function set startAngle( value:Number ):void
+               {
+                       if( _startAngle == value ) return;
+                       
+                       _startAngle = value;
+                       invalidateDisplayList();
+               }
+               
+               
+               //----------------------------------
+               //  endAngle
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for endAngle.
+                */
+               private var _endAngle:Number = 0;
+               
+               [Inspectable(category="General")]
+               /**
+                *  endAngle
+                *  
+                *  @langversion 3.0
+                *  @playerversion Flash 10
+                *  @playerversion AIR 1.5
+                *  @productversion Flex 4
+                */
+               public function get endAngle():Number
+               {
+                       return _endAngle;
+               }
+               /**
+                *  @private
+                */
+               public function set endAngle( value:Number ):void
+               {
+                       if( _endAngle == value ) return;
+                       
+                       _endAngle = value;
+                       invalidateDisplayList();
+               }
+               
+               
+               //----------------------------------
+               //  position
+               //----------------------------------
+               
+               /**
+                *  @private
+                *  Storage property for position.
+                */
+               private var _position:String = "inset";
+               
+               [Inspectable(category="General")]
+               /**
+                *  @private
+                *  Storage property for position.
+                */
+               public function get position():String
+               {
+                       return _position;
+               }
+               /**
+                *  @private
+                */
+               public function set position( value:String ):void
+               {
+                       if( _position == value ) return;
+                       
+                       _position = value;
+                       invalidateDisplayList();
+               }
+               
+               public var rotate:Boolean = false;
+               
+               
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Methods
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @private
+                */
+               private function updateDisplayListVirtual( width:Number, 
height:Number ):void
+               {
+                       
+                       
+                       
+                       
+               }
+               
+               /**
+                *  @private
+                */
+               private function distance( x1:Number, y1:Number, x2:Number, 
y2:Number ):Number
+               {
+                       const dx:Number = x2 - x1;
+                       const dy:Number = y2 - y1;
+                       return Math.sqrt( dx * dx + dy * dy );
+               }
+               
+               /**
+                *  @private
+                */
+               private function invalidateDisplayList():void
+               {
+                       if( !target ) return;
+                       
+                       target.invalidateDisplayList();
+               }
+               
+               
//--------------------------------------------------------------------------
+               //
+               //  Overridden Methods
+               //
+               
//--------------------------------------------------------------------------
+               
+               /**
+                *  @private
+                */
+               override public function updateDisplayList(width:Number, 
height:Number):void
+               {
+                       super.updateDisplayList(width,height);
+                       
+                       if( !target ) return;
+                       
+                       var element:ILayoutElement;
+                       const numElements:int = target.numElements;
+                       const angle:Number = 360 / numElements;
+                       const radiusX:Number = width / 2;
+                       const radiusY:Number = height / 2;
+                       var a:Number = startAngle;
+                       for (var i:int = 0; i < numElements; i++) 
+                       {
+                               a = startAngle + ( angle * i );
+                               element = target.getElementAt( i );
+                               element.setLayoutBoundsSize( 
element.getPreferredBoundsWidth(), element.getPreferredBoundsHeight() );
+                               if( rotate )
+                               {
+                                       element.transformAround( new Vector3D( 
element.getPreferredBoundsWidth() / 2, radiusY, 0 ),
+                                               null,
+                                               new Vector3D( 0, 0, a ),
+                                               new Vector3D( radiusX, radiusY, 
0 ) );
+                               }
+                               else
+                               {
+                                       element.setLayoutBoundsPosition( 
radiusX + ( radiusX * Math.cos(a * ( Math.PI / 180 ) ) ) - ( 
element.getPreferredBoundsWidth() / 2 ),
+                                               radiusY + ( radiusY * 
Math.sin(a * ( Math.PI / 180 ) ) ) - ( element.getPreferredBoundsHeight() / 2 ) 
);
+                               }
+                               //                              switch( 
position )
+                               //                              {
+                               //                                      case 
"inset" :
+                               //                                      {
+                               //                                              
+                               //                                              
break;
+                               //                                      }
+                               //                                      default 
:
+                               //                                      {
+                               //                                              
+                               //                                              
+                               //                                      }
+                               //                              }
+                               
+                               //                              var m:Matrix = 
new Matrix();
+                               //                              m.tx = radiusX 
+ ( radiusX * Math.cos(a * ( Math.PI / 180 ) ) ) - ( 
element.getPreferredBoundsWidth() / 2 );
+                               //                              m.ty = radiusY 
+ ( radiusY * Math.sin(a * ( Math.PI / 180 ) ) ) - ( 
element.getPreferredBoundsHeight() / 2 );
+                               //                              m.rotate( a * ( 
Math.PI / 180 ) );
+                               //                              m.tx = m.ty = 
200;
+                               //                                              
                m.tx = radiusX + ( radiusX * Math.cos(a * ( Math.PI / 180 ) ) ) 
- ( element.getPreferredBoundsWidth() / 2 );
+                               //                                              
                m.ty = radiusY + ( radiusY * Math.sin(a * ( Math.PI / 180 ) ) ) 
- ( element.getPreferredBoundsHeight() / 2 );
+                               //                              
element.setLayoutMatrix( m, false );
+                               
+                               //                              var x:Number = 
radiusX + ( radiusX * Math.cos(a * ( Math.PI / 180 ) ) );
+                               //                              var y:Number = 
radiusY + ( radiusY * Math.cos(a * ( Math.PI / 180 ) ) );
+                               //                              
+                               //                              
+                               //                              trace( i, 
distance( radiusX, radiusY, x, y ), x, y, radiusX, radiusY );
+                               
+                               
+                       }
+               }
+               
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/ws/tink/spark/skins/controls/ActivityIndicatorSkin.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/ws/tink/spark/skins/controls/ActivityIndicatorSkin.mxml
 
b/flex-installer/installer/src/ws/tink/spark/skins/controls/ActivityIndicatorSkin.mxml
new file mode 100644
index 0000000..deea171
--- /dev/null
+++ 
b/flex-installer/installer/src/ws/tink/spark/skins/controls/ActivityIndicatorSkin.mxml
@@ -0,0 +1,38 @@
+<?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:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+               xmlns:s="library://ns.adobe.com/flex/spark" 
+               xmlns:mx="library://ns.adobe.com/flex/mx"
+               xmlns:st="library://ns.tink.ws/flex/spark">
+       
+       <!-- host component -->
+       <fx:Metadata>
+       <![CDATA[ 
+               /** 
+               * @copy spark.skins.spark.ApplicationSkin#hostComponent
+               */
+               [HostComponent("ws.tink.spark.controls.ActivityIndicator")]
+       ]]>
+       </fx:Metadata>
+       
+       <!--- @copy ws.tink.spark.controls.ActivityIndicator#indicator -->
+       <st:Rotator id="indicator" height="100" width="100"/>
+       
+</s:Skin>

Reply via email to