http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/flex-installer/installerLocaleEditor/src/org/apache/flex/runtimelocale/view/itemrenderer/LocaleItemView.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installerLocaleEditor/src/org/apache/flex/runtimelocale/view/itemrenderer/LocaleItemView.mxml
 
b/flex-installer/installerLocaleEditor/src/org/apache/flex/runtimelocale/view/itemrenderer/LocaleItemView.mxml
new file mode 100644
index 0000000..1c212a8
--- /dev/null
+++ 
b/flex-installer/installerLocaleEditor/src/org/apache/flex/runtimelocale/view/itemrenderer/LocaleItemView.mxml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009";
+                               xmlns:s="library://ns.adobe.com/flex/spark"
+                               xmlns:mx="library://ns.adobe.com/flex/mx"
+                               autoDrawBackground="true"
+                               width="100%"
+                               
implements="org.apache.flex.runtimelocale.view.IInjectableView"
+                               name="localeItemView">
+       <s:layout>
+               <s:HorizontalLayout verticalAlign="top"
+                                                       gap="20"/>
+       </s:layout>
+       <fx:Script>
+               <![CDATA[
+                       import mx.controls.Alert;
+                       import mx.events.CloseEvent;
+                       import mx.events.FlexEvent;
+                       import 
org.apache.flex.runtimelocale.event.LocaleItemEvent;
+                       import 
org.apache.flex.runtimelocale.model.ApplicationModel;
+                       import 
org.apache.flex.runtimelocale.model.locale.LocaleItemDataVO;
+
+                       private var _applicationModel:ApplicationModel;
+
+                       private var _localeItem:LocaleItemDataVO;
+
+                       [Bindable(event="applicationModelChanged")]
+                       public function get applicationModel():ApplicationModel 
{
+                               return _applicationModel;
+                       }
+
+                       public function set 
applicationModel(value:ApplicationModel):void {
+                               if (_applicationModel !== value) {
+                                       if (_applicationModel) {
+                                               
_applicationModel.removeEventListener("referenceLocaleChanged", 
handleReferenceLocaleChanged);
+                                       }
+                                       _applicationModel = value;
+                                       if (_applicationModel) {
+                                               
_applicationModel.addEventListener("referenceLocaleChanged", 
handleReferenceLocaleChanged);
+                                       }
+                                       setRerenceLocale();
+                                       dispatchEvent(new 
Event("applicationModelChanged"));
+                               }
+                       }
+
+                       override public function set data(value:Object):void {
+                               super.data = value;
+                               localeItem = value as LocaleItemDataVO;
+                       }
+
+                       public function get localeItem():LocaleItemDataVO {
+                               return _localeItem;
+                       }
+
+                       public function set 
localeItem(value:LocaleItemDataVO):void {
+                               if (_localeItem !== value) {
+                                       _localeItem = value;
+                                       if (_localeItem) {
+                                               keyLabel.text = _localeItem.key;
+                                               keyLabel.toolTip = 
_localeItem.key;
+                                               itemValue.text = 
_localeItem.value;
+                                               setRerenceLocale();
+                                       }
+                               }
+                       }
+
+                       protected function 
deleteKeyButton_clearHandler(event:Event):void {
+                               Alert.show("Are you sure you want to remove " + 
localeItem.key + "?", "Please confirm", Alert.YES | Alert.NO, this, 
function(closeEvent:CloseEvent):void {
+                                       if (closeEvent.detail == Alert.YES) {
+                                               dispatchEvent(new 
LocaleItemEvent(LocaleItemEvent.REMOVE_LOCALE_ITEM_REQUEST, localeItem.key));
+                                       }
+                               });
+                       }
+
+                       private function 
handleReferenceLocaleChanged(event:Event):void {
+                               setRerenceLocale();
+                       }
+
+                       private function setRerenceLocale():void {
+                               if ((applicationModel) && 
(applicationModel.referenceLocale) && (localeItem)) {
+                                       var item:LocaleItemDataVO = 
applicationModel.referenceLocale.getItemByKey(localeItem.key);
+                                       itemReference.text = (item) ? 
item.value : "";
+                               }
+                       }
+
+                       private function 
textarea1_valueCommitHandler(event:FlexEvent):void {
+                               if ((localeItem) && (itemValue)) {
+                                       localeItem.value = itemValue.text;
+                               }
+                       }
+               ]]>
+       </fx:Script>
+       <s:VGroup width="225">
+               <s:Button id="deleteKeyButton"
+                                 width="30"
+                                 height="30"
+                                 label="X"
+                                 toolTip="Remove this translation"
+                                 click="deleteKeyButton_clearHandler(event)"/>
+               <s:Label id="keyLabel"
+                                fontWeight="bold"/>
+       </s:VGroup>
+       <s:TextArea id="itemValue"
+                               width="400"
+                               
valueCommit="textarea1_valueCommitHandler(event)"/>
+       <s:TextArea id="itemReference"
+                               width="400"
+                               editable="false"
+                               selectable="true"/>
+</s:ItemRenderer>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/libs/as3commons-logging-2.7.swc
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/libs/as3commons-logging-2.7.swc 
b/installerLocaleEditor/libs/as3commons-logging-2.7.swc
deleted file mode 100644
index 0266508..0000000
Binary files a/installerLocaleEditor/libs/as3commons-logging-2.7.swc and 
/dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/libs/spring-actionscript-flex-2.0.0-SNAPSHOT.swc
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/libs/spring-actionscript-flex-2.0.0-SNAPSHOT.swc 
b/installerLocaleEditor/libs/spring-actionscript-flex-2.0.0-SNAPSHOT.swc
deleted file mode 100644
index c5afbf4..0000000
Binary files 
a/installerLocaleEditor/libs/spring-actionscript-flex-2.0.0-SNAPSHOT.swc and 
/dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/Main-app.xml
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/Main-app.xml 
b/installerLocaleEditor/src/Main-app.xml
deleted file mode 100644
index e3b4ae0..0000000
--- a/installerLocaleEditor/src/Main-app.xml
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<application xmlns="http://ns.adobe.com/air/application/3.1";>
-
-       <!-- Adobe AIR Application Descriptor File Template.
-
-               Specifies parameters for identifying, installing, and launching 
AIR applications.
-
-               xmlns - The Adobe AIR namespace: 
http://ns.adobe.com/air/application/3.1
-                               The last segment of the namespace specifies the 
version
-                               of the AIR runtime required for this 
application to run.
-
-               minimumPatchLevel - The minimum patch level of the AIR runtime 
required to run
-                               the application. Optional.
-       -->
-
-       <!-- A universally unique application identifier. Must be unique across 
all AIR applications.
-       Using a reverse DNS-style name as the id is recommended. (Eg. 
com.example.ExampleApplication.) Required. -->
-       <id>org.apache.flex.utilities.apacheflexinstallerlocaleeditor</id>
-
-       <!-- Used as the filename for the application. Required. -->
-       <filename>ApacheFlexInstallerLocaleEditor</filename>
-
-       <!-- The name that is displayed in the AIR application installer.
-       May have multiple values for each language. See samples or xsd schema 
file. Optional. -->
-       <name>Apache Flex Installer - Locale Editor</name>
-
-       <!-- A string value of the format <0-999>.<0-999>.<0-999> that 
represents application version which can be used to check for application 
upgrade.
-       Values can also be 1-part or 2-part. It is not necessary to have a 
3-part value.
-       An updated version of application must have a versionNumber value 
higher than the previous version. Required for namespace >= 2.5 . -->
-       <versionNumber>1.0.1</versionNumber>
-
-       <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents 
the version of the application, as it should be shown to users. Optional. -->
-       <versionLabel>v1.0.1</versionLabel>
-
-       <!-- Description, displayed in the AIR application installer.
-       May have multiple values for each language. See samples or xsd schema 
file. Optional. -->
-       <description>Utility that makes it easier to manage the different 
locales for the Apache Flex Installer project.</description>
-
-       <!-- Copyright information. Optional -->
-       <!-- <copyright></copyright> -->
-
-       <!-- Publisher ID. Used if you're updating an application created prior 
to 1.5.3 -->
-       <!-- <publisherID></publisherID> -->
-
-       <!-- Settings for the application's initial window. Required. -->
-       <initialWindow>
-               <!-- The main SWF or HTML file of the application. Required. -->
-               <!-- Note: In Flash Builder, the SWF reference is set 
automatically. -->
-               <content>[This value will be overwritten by Flash Builder in 
the output app.xml]</content>
-
-               <!-- The title of the main window. Optional. -->
-               <!-- <title></title> -->
-
-               <!-- The type of system chrome to use (either "standard" or 
"none"). Optional. Default standard. -->
-               <!-- <systemChrome></systemChrome> -->
-
-               <!-- Whether the window is transparent. Only applicable when 
systemChrome is none. Optional. Default false. -->
-               <!-- <transparent></transparent> -->
-
-               <!-- Whether the window is initially visible. Optional. Default 
false. -->
-               <!-- <visible></visible> -->
-
-               <!-- Whether the user can minimize the window. Optional. 
Default true. -->
-               <!-- <minimizable></minimizable> -->
-
-               <!-- Whether the user can maximize the window. Optional. 
Default true. -->
-               <!-- <maximizable></maximizable> -->
-
-               <!-- Whether the user can resize the window. Optional. Default 
true. -->
-               <!-- <resizable></resizable> -->
-
-               <!-- The window's initial width in pixels. Optional. -->
-               <!-- <width></width> -->
-
-               <!-- The window's initial height in pixels. Optional. -->
-               <!-- <height></height> -->
-
-               <!-- The window's initial x position. Optional. -->
-               <!-- <x></x> -->
-
-               <!-- The window's initial y position. Optional. -->
-               <!-- <y></y> -->
-
-               <!-- The window's minimum size, specified as a width/height 
pair in pixels, such as "400 200". Optional. -->
-               <!-- <minSize></minSize> -->
-
-               <!-- The window's initial maximum size, specified as a 
width/height pair in pixels, such as "1600 1200". Optional. -->
-               <!-- <maxSize></maxSize> -->
-
-               <!-- The initial aspect ratio of the app when launched (either 
"portrait" or "landscape"). Optional. Mobile only. Default is the natural 
orientation of the device -->
-
-               <!-- <aspectRatio></aspectRatio> -->
-
-               <!-- Whether the app will begin auto-orienting on launch. 
Optional. Mobile only. Default false -->
-
-               <!-- <autoOrients></autoOrients> -->
-
-               <!-- Whether the app launches in full screen. Optional. Mobile 
only. Default false -->
-
-               <!-- <fullScreen></fullScreen> -->
-
-               <!-- The render mode for the app (either auto, cpu, gpu, or 
direct). Optional. Default auto -->
-
-               <!-- <renderMode></renderMode> -->
-
-               <!-- Whether or not to pan when a soft keyboard is raised or 
lowered (either "pan" or "none").  Optional.  Defaults "pan." -->
-               <!-- <softKeyboardBehavior></softKeyboardBehavior> -->
-               <autoOrients>false</autoOrients>
-               <fullScreen>false</fullScreen>
-               <visible>false</visible>
-       </initialWindow>
-
-       <!-- We recommend omitting the supportedProfiles element, -->
-       <!-- which in turn permits your application to be deployed to all -->
-       <!-- devices supported by AIR. If you wish to restrict deployment -->
-       <!-- (i.e., to only mobile devices) then add this element and list -->
-       <!-- only the profiles which your application does support. -->
-       <!-- <supportedProfiles>desktop extendedDesktop mobileDevice 
extendedMobileDevice</supportedProfiles> -->
-
-       <!-- The subpath of the standard default installation location to use. 
Optional. -->
-       <!-- <installFolder></installFolder> -->
-
-       <!-- The subpath of the Programs menu to use. (Ignored on operating 
systems without a Programs menu.) Optional. -->
-       <!-- <programMenuFolder></programMenuFolder> -->
-
-       <!-- The icon the system uses for the application. For at least one 
resolution,
-       specify the path to a PNG file included in the AIR package. Optional. 
-->
-       <icon>
-               <image16x16>assets/16.png</image16x16>
-               <image32x32>assets/32.png</image32x32>
-               <image36x36>assets/36.png</image36x36>
-               <image48x48>assets/48.png</image48x48>
-               <image57x57>assets/57.png</image57x57>
-               <image72x72>assets/72.png</image72x72>
-               <image114x114>assets/114.png</image114x114>
-               <image128x128>assets/128.png</image128x128>
-       </icon>
-
-       <!-- Whether the application handles the update when a user 
double-clicks an update version
-       of the AIR file (true), or the default AIR application installer 
handles the update (false).
-       Optional. Default false. -->
-       <!-- <customUpdateUI></customUpdateUI> -->
-
-       <!-- Whether the application can be launched when the user clicks a 
link in a web browser.
-       Optional. Default false. -->
-       <!-- <allowBrowserInvocation></allowBrowserInvocation> -->
-
-       <!-- Listing of file types for which the application can register. 
Optional. -->
-       <!-- <fileTypes> -->
-
-       <!-- Defines one file type. Optional. -->
-       <!-- <fileType> -->
-
-       <!-- The name that the system displays for the registered file type. 
Required. -->
-       <!-- <name></name> -->
-
-       <!-- The extension to register. Required. -->
-       <!-- <extension></extension> -->
-
-       <!-- The description of the file type. Optional. -->
-       <!-- <description></description> -->
-
-       <!-- The MIME content type. -->
-       <!-- <contentType></contentType> -->
-
-       <!-- The icon to display for the file type. Optional. -->
-       <!-- <icon>
-               <image16x16></image16x16>
-               <image32x32></image32x32>
-               <image48x48></image48x48>
-               <image128x128></image128x128>
-       </icon> -->
-
-       <!-- </fileType> -->
-       <!-- </fileTypes> -->
-
-       <!-- iOS specific capabilities -->
-       <!-- <iPhone> -->
-       <!-- A list of plist key/value pairs to be added to the application 
Info.plist -->
-       <!-- <InfoAdditions>
-               <![CDATA[
-                       <key>UIDeviceFamily</key>
-                       <array>
-                               <string>1</string>
-                               <string>2</string>
-                       </array>
-                       <key>UIStatusBarStyle</key>
-                       <string>UIStatusBarStyleBlackOpaque</string>
-                       <key>UIRequiresPersistentWiFi</key>
-                       <string>YES</string>
-               ]]>
-       </InfoAdditions> -->
-       <!-- A list of plist key/value pairs to be added to the application 
Entitlements.plist -->
-       <!-- <Entitlements>
-               <![CDATA[
-                       <key>keychain-access-groups</key>
-                       <array>
-                               <string></string>
-                               <string></string>
-                       </array>
-               ]]>
-       </Entitlements> -->
-       <!-- Display Resolution for the app (either "standard" or "high"). 
Optional. Default "standard" -->
-       <!-- <requestedDisplayResolution></requestedDisplayResolution> -->
-       <!-- </iPhone> -->
-
-       <!-- Specify Android specific tags that get passed to 
AndroidManifest.xml file. -->
-       <!--<android> -->
-       <!--    <manifestAdditions>
-               <![CDATA[
-                       <manifest android:installLocation="auto">
-                               <uses-permission 
android:name="android.permission.INTERNET"/>
-                               <uses-permission 
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
-                               <uses-permission 
android:name="android.permission.ACCESS_FINE_LOCATION"/>
-                               <uses-feature android:required="true" 
android:name="android.hardware.touchscreen.multitouch"/>
-                               <application android:enabled="true">
-                                       <activity 
android:excludeFromRecents="false">
-                                               <intent-filter>
-                                                       <action 
android:name="android.intent.action.MAIN"/>
-                                                       <category 
android:name="android.intent.category.LAUNCHER"/>
-                                               </intent-filter>
-                                       </activity>
-                               </application>
-                       </manifest>
-               ]]>
-               </manifestAdditions> -->
-       <!-- Color depth for the app (either "32bit" or "16bit"). Optional. 
Default 16bit before namespace 3.0, 32bit after -->
-       <!-- <colorDepth></colorDepth> -->
-       <!-- </android> -->
-       <!-- End of the schema for adding the android specific tags in 
AndroidManifest.xml file -->
-
-</application>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/Main.mxml
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/Main.mxml 
b/installerLocaleEditor/src/Main.mxml
deleted file mode 100644
index 7659296..0000000
--- a/installerLocaleEditor/src/Main.mxml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<s:WindowedApplication 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:sas="http://www.springactionscript.org/mxml/config";
-                                          
preinitialize="windowedapplication1_preinitializeHandler(event)"
-                                          
applicationComplete="windowedapplication1_applicationCompleteHandler(event)"
-                                          title="Apache Flex Installer Locale 
Editor"
-                                          
xmlns:view="org.apache.flex.runtimelocale.view.*"
-                                          currentState="appInitState"
-                                          
close="windowedapplication1_closeHandler(event)">
-       <s:states>
-               <s:State name="appInitState"/>
-               <s:State name="appReadyState"/>
-       </s:states>
-       <fx:Script>
-               <![CDATA[
-                       import flash.utils.setTimeout;
-                       import mx.events.FlexEvent;
-                       import mx.utils.ObjectUtil;
-                       import 
org.apache.flex.runtimelocale.context.MainConfiguration;
-                       import 
org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-                       import 
org.apache.flex.runtimelocale.event.InitializeApplicationEvent;
-                       import 
org.apache.flex.runtimelocale.event.SaveConfigurationEvent;
-                       import 
org.apache.flex.runtimelocale.event.ShowHelpRequestEvent;
-                       import 
org.apache.flex.runtimelocale.event.ShowLocaleFileSelectorViewEvent;
-                       import org.as3commons.logging.api.ILogSetup;
-                       import org.as3commons.logging.api.ILogger;
-                       import org.as3commons.logging.api.LOGGER_FACTORY;
-                       import org.as3commons.logging.api.getClassLogger;
-                       import org.as3commons.logging.setup.SimpleTargetSetup;
-                       import 
org.as3commons.logging.setup.target.AirFileTarget;
-                       import org.as3commons.logging.setup.target.TraceTarget;
-                       import org.as3commons.logging.setup.target.mergeTargets;
-                       import org.as3commons.logging.util.xml.xmlToSetup;
-
-                       private static const logger:ILogger = 
getClassLogger(Main);
-
-                       protected function 
handleUncaught(event:UncaughtErrorEvent):void {
-                               if (applicationContext) {
-                                       trace(event.error);
-                                       
applicationContext.eventBus.dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_ERROR_STATUS, "An 
expected error occured: " + event.text, "Unexpected error"));
-                               }
-                       }
-
-                       protected function 
windowedapplication1_applicationCompleteHandler(event:FlexEvent):void {
-                               pruneLogFiles();
-                               
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR,
 handleUncaught);
-                               statusText.setStyle("color", 0x008800);
-                               statusText.setStyle("fontWeight", "bold");
-                               //Pfff, ugly, but I want to center the popup 
after the window has been
-                               //maximised, and this was the only way I could 
get it do so.
-                               //(I secretly suck)
-                               setTimeout(function():void {
-                                       
applicationContext.eventBus.dispatchEvent(new 
InitializeApplicationEvent(InitializeApplicationEvent.APP_INITIALIZE));
-                                       setUpLogging();
-                                       
applicationContext.eventBus.dispatchEvent(new 
ShowLocaleFileSelectorViewEvent(ShowLocaleFileSelectorViewEvent.SHOW_LOCALE_FILE_SELECTOR));
-                                       if 
(applicationContext.propertiesProvider.getProperty("showhelp") == "true") {
-                                               
applicationContext.eventBus.dispatchEvent(new 
ShowHelpRequestEvent(ShowHelpRequestEvent.SHOW_HELP_REQUEST));
-                                       }
-                               }, 500);
-                       }
-
-                       protected function 
windowedapplication1_closeHandler(event:Event):void {
-                               applicationContext.eventBus.dispatchEvent(new 
SaveConfigurationEvent(SaveConfigurationEvent.SAVE_CONFIGURATION_REQUEST));
-                       }
-
-                       protected function 
windowedapplication1_preinitializeHandler(event:FlexEvent):void {
-                               maximize();
-                       }
-
-                       private function compareCreationDates(f1:File, 
f2:File):Number {
-                               return ObjectUtil.dateCompare(f1.creationDate, 
f2.creationDate);
-                       }
-
-                       private function pruneLogFiles():void {
-                               var listing:Array = 
File.applicationStorageDirectory.getDirectoryListing();
-                               var logListing:Array = [];
-                               for each (var file:File in listing) {
-                                       if (file.extension == "log") {
-                                               logListing[logListing.length] = 
file;
-                                       }
-                               }
-                               if (logListing.length > 5) {
-                                       logListing.sort(compareCreationDates, 
Array.NUMERIC);
-                                       var len:int = logListing.length - 5;
-                                       var logFile:File;
-                                       for (var i:int = 0; i < len; ++i) {
-                                               logFile = logListing[i];
-                                               logFile.deleteFile();
-                                               logger.info("Deleted old 
logfile: {0}", [logFile.nativePath]);
-                                       }
-                               }
-                       }
-
-                       private function setUpLogging():void {
-                               if 
(applicationContext.propertiesProvider.getProperty('logging') == "true") {
-                                       var file:File = 
File.applicationDirectory.resolvePath("logging-config.xml");
-                                       if (file.exists) {
-                                               try {
-                                                       var 
fileStream:FileStream = new FileStream();
-                                                       fileStream.open(file, 
FileMode.READ);
-                                                       fileStream.position = 0;
-                                                       var content:String = 
fileStream.readMultiByte(fileStream.bytesAvailable, "utf-8");
-                                                       var xml:XML = new 
XML(content);
-                                                       var 
mergedSetup:ILogSetup = xmlToSetup(xml, {}, {console: new TraceTarget(), file: 
new AirFileTarget()});
-                                                       LOGGER_FACTORY.setup = 
mergedSetup;
-                                               } catch (e:Error) {
-                                                       LOGGER_FACTORY.setup = 
new SimpleTargetSetup(mergeTargets(new TraceTarget(), new AirFileTarget()));
-                                                       logger.error("Error 
encountered while reading XML logging configuration: {0}", [e.message]);
-                                                       logger.info("Logging 
defaults used");
-                                               } finally {
-                                                       fileStream.close();
-                                               }
-                                       } else {
-                                               LOGGER_FACTORY.setup = new 
SimpleTargetSetup(mergeTargets(new TraceTarget(), new AirFileTarget()));
-                                               logger.info("Logging defaults 
used");
-                                       }
-                                       logger.info("Application initializing");
-                                       pruneLogFiles();
-                               }
-                       }
-                       //
-                       {
-                               MainConfiguration;
-                       }
-               ]]>
-       </fx:Script>
-       <fx:Declarations>
-               <sas:MXMLApplicationContext 
configurations="{[MainConfiguration]}"
-                                                                       
id="applicationContext"/>
-       </fx:Declarations>
-       <view:MainView id="mainView"
-                                  width="100%"
-                                  height="100%"
-                                  includeIn="appReadyState"/>
-</s:WindowedApplication>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/114.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/114.png 
b/installerLocaleEditor/src/assets/114.png
deleted file mode 100644
index 8f59da9..0000000
Binary files a/installerLocaleEditor/src/assets/114.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/128.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/128.png 
b/installerLocaleEditor/src/assets/128.png
deleted file mode 100644
index d877799..0000000
Binary files a/installerLocaleEditor/src/assets/128.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/16.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/16.png 
b/installerLocaleEditor/src/assets/16.png
deleted file mode 100644
index 208e004..0000000
Binary files a/installerLocaleEditor/src/assets/16.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/32.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/32.png 
b/installerLocaleEditor/src/assets/32.png
deleted file mode 100644
index 36285c3..0000000
Binary files a/installerLocaleEditor/src/assets/32.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/36.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/36.png 
b/installerLocaleEditor/src/assets/36.png
deleted file mode 100644
index 953bc17..0000000
Binary files a/installerLocaleEditor/src/assets/36.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/48.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/48.png 
b/installerLocaleEditor/src/assets/48.png
deleted file mode 100644
index 3136fb8..0000000
Binary files a/installerLocaleEditor/src/assets/48.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/57.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/57.png 
b/installerLocaleEditor/src/assets/57.png
deleted file mode 100644
index 67ffa9a..0000000
Binary files a/installerLocaleEditor/src/assets/57.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/assets/72.png
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/assets/72.png 
b/installerLocaleEditor/src/assets/72.png
deleted file mode 100644
index ee03839..0000000
Binary files a/installerLocaleEditor/src/assets/72.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/helptext.txt
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/helptext.txt 
b/installerLocaleEditor/src/helptext.txt
deleted file mode 100644
index 60eb3cb..0000000
--- a/installerLocaleEditor/src/helptext.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-To use this application first checkout this Apache Flex repository:
-
-https://svn.apache.org/repos/asf/incubator/flex/utilities/trunk/installer
-
-After this use the file selector dialog in this application to locate the 
following file:
-
-<SVN_CHECKOUT_DIRECTORY>/installer/src/org/apache/flex/packageflexsdk/resource/RuntimeLocale.as
-
-Select the file and wait while the application parses the .as file.
-
-Note #1: This might take quite a while when running the application in debug 
mode from your IDE. In release mode the parsing still takes quite a bit of time 
but is acceptable compared to debug mode.
-
-Note #2: The parser is a little bit more strict than the MXMLC parser you're 
used to. Especially lines that are not suffixed with a semi-colon (;) will 
raise parsing errors. So the first time you try to open the file will very 
likely result in a number of parsing errors.
-The parsing errors indicate on which line the problem occurs so correcting 
these errors shouldn't be too much of a problem.
-
-After the file is parsed you'll be presented with a tabnavigator in which each 
tab represents a single locale.
-Each tab is divided in three columns, the left column indicates the 
translation key, the second column the actual translated text and the third 
column shows the translated text as defined in the reference locale.
-By default the reference local is US English, but can be changed using the 
dropdown in the topleft corner.
-
-After entering the appropriate translations press the 'Save locale file' 
button in the topright corner.
-To view the Actionscript output, use the 'View AS3 output' button, also in the 
topright corner.
-
-If you have any questions or criticism about this application please use the 
Apache Flex developers mailinglist,
-or open a JIRA ticket.
-
-Thanks to Michael Schmalle for creating the ASBlocks library 
(https://github.com/teotigraphix/as3-commons-asblocks) which made building this 
application a breeze.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/logging-config.xml
----------------------------------------------------------------------
diff --git a/installerLocaleEditor/src/logging-config.xml 
b/installerLocaleEditor/src/logging-config.xml
deleted file mode 100644
index cfc968c..0000000
--- a/installerLocaleEditor/src/logging-config.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<setup xmlns="http://as3commons.org/logging/1";>
-       <rule name="/^org\.apache\./"
-                 level="DEBUG">
-               <target-ref ref="file"/>
-               <target-ref ref="console"/>
-       </rule>
-       <!-- rule name="/^org\.springextensions\./" level="DEBUG">
-                <target-ref ref="console" />
-       </rule-->
-</setup>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/IStatusReporter.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/IStatusReporter.as 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/IStatusReporter.as
deleted file mode 100644
index a801996..0000000
--- a/installerLocaleEditor/src/org/apache/flex/runtimelocale/IStatusReporter.as
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.apache.flex.runtimelocale
-{
-       public interface IStatusReporter
-       {
-               
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractApplicationModelAwareBaseCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractApplicationModelAwareBaseCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractApplicationModelAwareBaseCommand.as
deleted file mode 100644
index 655d129..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractApplicationModelAwareBaseCommand.as
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import org.apache.flex.runtimelocale.model.ApplicationModel;
-       import org.apache.flex.runtimelocale.model.IApplicationModelAware;
-
-       public class AbstractApplicationModelAwareBaseCommand extends 
AbstractBaseCommand implements IApplicationModelAware {
-
-               public function 
AbstractApplicationModelAwareBaseCommand(event:Event) {
-                       super(event);
-               }
-
-               private var _applicationModel:ApplicationModel;
-
-               public function get applicationModel():ApplicationModel {
-                       return _applicationModel;
-               }
-
-               public function set 
applicationModel(value:ApplicationModel):void {
-                       _applicationModel = value;
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractBaseCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractBaseCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractBaseCommand.as
deleted file mode 100644
index 03e5016..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/AbstractBaseCommand.as
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import flash.events.EventDispatcher;
-
-       import org.apache.flex.runtimelocale.IStatusReporter;
-       import org.as3commons.async.command.ICommand;
-
-       public class AbstractBaseCommand extends EventDispatcher implements 
ICommand, IStatusReporter {
-               private var _event:Event;
-
-               public function AbstractBaseCommand(event:Event) {
-                       super();
-                       _event = event;
-               }
-
-               public function get event():Event {
-                       return _event;
-               }
-
-               public function set event(value:Event):void {
-                       _event = value;
-               }
-
-               public function execute():* {
-                       return null;
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationErrorStatusCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationErrorStatusCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationErrorStatusCommand.as
deleted file mode 100644
index 6caf1f4..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationErrorStatusCommand.as
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-
-       import mx.controls.Alert;
-
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-
-       public class ApplicationErrorStatusCommand extends AbstractBaseCommand {
-               public function ApplicationErrorStatusCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var errorEvent:ApplicationStatusEvent = event as 
ApplicationStatusEvent;
-                       if (errorEvent) {
-                               Alert.show(errorEvent.statusMessage, 
errorEvent.caption);
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationInfoStatusCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationInfoStatusCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationInfoStatusCommand.as
deleted file mode 100644
index 3a79d56..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ApplicationInfoStatusCommand.as
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import flash.utils.setTimeout;
-       import mx.core.FlexGlobals;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import spark.components.WindowedApplication;
-       import spark.components.supportClasses.TextBase;
-
-       public class ApplicationInfoStatusCommand extends AbstractBaseCommand {
-
-               public function ApplicationInfoStatusCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var infoEvent:ApplicationStatusEvent = event as 
ApplicationStatusEvent;
-                       if (infoEvent) {
-                               var app:WindowedApplication = 
(FlexGlobals.topLevelApplication as WindowedApplication);
-                               app.status = infoEvent.statusMessage;
-                               flashStatusText(app.statusText);
-                       }
-               }
-
-               private function flashStatusText(statusText:TextBase):void {
-                       statusText.setStyle("backgroundColor", 0x000000);
-                       statusText.setStyle("color", 0xFFFFFF);
-                       setTimeout(function():void {
-                               statusText.setStyle("backgroundColor", 
0xDDDDDD);
-                               statusText.setStyle("color", 0x008800);
-                       }, 1000);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/CreateLocaleRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/CreateLocaleRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/CreateLocaleRequestCommand.as
deleted file mode 100644
index 8ff8d9c..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/CreateLocaleRequestCommand.as
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.controls.Alert;
-       import org.antlr.runtime.TokenConstants;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.apache.flex.runtimelocale.event.LocaleEvent;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.apache.flex.runtimelocale.model.locale.LocaleItemDataVO;
-       import org.as3commons.asblocks.dom.IASMethod;
-       import org.as3commons.asblocks.dom.IASStatement;
-       import org.as3commons.asblocks.dom.Visibility;
-       import org.as3commons.asblocks.impl.AS3FragmentParser;
-       import org.as3commons.asblocks.impl.ASTASClassType;
-       import org.as3commons.asblocks.impl.ASTASExpressionStatement;
-       import org.as3commons.asblocks.impl.ASTASField;
-       import org.as3commons.asblocks.impl.ASTASMethod;
-       import org.as3commons.asblocks.impl.ASTASStringLiteral;
-       import org.as3commons.asblocks.impl.ASTScriptElement;
-       import org.as3commons.asblocks.impl.ContainerDelegate;
-       import org.as3commons.asblocks.impl.TokenBuilder;
-       import org.as3commons.asblocks.parser.antlr.LinkedListToken;
-       import org.as3commons.asblocks.parser.antlr.LinkedListTree;
-       import org.as3commons.asblocks.parser.antlr.as3.AS3Parser;
-       import org.as3commons.collections.ArrayList;
-       import org.as3commons.collections.framework.IIterator;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class CreateLocaleRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const INSTALL_METHOD_PREFIX:String = "install_";
-
-               private static const logger:ILogger = 
getClassLogger(CreateLocaleRequestCommand);
-
-               public function CreateLocaleRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeEvent:LocaleEvent = event as LocaleEvent;
-                       if (localeEvent) {
-                               if 
(applicationModel.availableLocales.getItemIndex(localeEvent.localeName) > -1) {
-                                       event.preventDefault();
-                                       logger.info("'{0}' already exists, 
aborting CreateLocaleRequestCommand", [localeEvent.localeName]);
-                                       Alert.show(localeEvent.localeName + " 
already exists");
-                               } else {
-                                       createLocale(localeEvent.localeName);
-                               }
-                       }
-               }
-
-               private function addContentStatements(method:IASMethod):void {
-                       for each (var localeItem:LocaleItemDataVO in 
applicationModel.referenceLocale.content) {
-                               addKey(localeItem.key, method);
-                       }
-               }
-
-               private function addField(type:ASTASClassType, 
localeName:String):void {
-                       var field:ASTASField = 
type.newField(localeName.toUpperCase(), Visibility.PUBLIC, "String") as 
ASTASField;
-                       field.setStatic(true);
-                       field.setConstant(true);
-                       var literal:ASTASStringLiteral = new 
ASTASStringLiteral(AS3FragmentParser.parseExpression('"' + localeName + '"'));
-                       field.setInitializer(literal);
-                       logger.info("Added static constant field to .as file: 
{0}", [field.toString()]);
-               }
-
-               private function addKey(key:String, method:IASMethod):void {
-                       var newStatement:ASTASExpressionStatement = new 
ASTASExpressionStatement(AS3FragmentParser.parseExprStatement('         
content[' + key + ']="";'));
-                       method.addStatement(newStatement);
-               }
-
-               private function addMethod(type:ASTASClassType, 
localeName:String):ASTASMethod {
-                       var method:ASTASMethod = 
type.newMethod(INSTALL_METHOD_PREFIX + localeName, Visibility.PRIVATE, "void") 
as ASTASMethod;
-
-                       var ast:LinkedListTree = 
AS3FragmentParser.parseStatement("var locale:String = " + 
localeName.toUpperCase() + ";");
-                       method.addStatement(new ASTASExpressionStatement(ast));
-
-                       ast = AS3FragmentParser.parseStatement("var 
resource:ResourceBundle = new ResourceBundle(locale, 
ViewResourceConstants.BUNDLE_NAME);");
-                       method.addStatement(new ASTASExpressionStatement(ast));
-
-                       ast = AS3FragmentParser.parseStatement("var 
content:Object = resource.content;");
-                       method.addStatement(new ASTASExpressionStatement(ast));
-
-                       addContentStatements(method);
-                       ast = 
AS3FragmentParser.parseStatement("_resourceManager.addResourceBundle(resource);");
-                       method.addStatement(new ASTASExpressionStatement(ast));
-                       logger.info("Added method to .as file: {0}()", 
[INSTALL_METHOD_PREFIX + localeName]);
-                       return method;
-               }
-
-               private function addMethodInvocation(type:ASTASClassType, 
localeName:String):void {
-                       var method:ASTASMethod = 
type.getMethod("installResources") as ASTASMethod;
-                       var newAST:LinkedListTree = 
AS3FragmentParser.parseStatement(INSTALL_METHOD_PREFIX + localeName + "();");
-                       for (var i:int = 0; i < 4; ++i) {
-                               var tab:LinkedListToken = 
TokenBuilder.newToken(AS3Parser.WS, "\t");
-                               tab.channel = TokenConstants.HIDDEN_CHANNEL;
-                               newAST.addToken(0, tab);
-                       }
-                       newAST.addToken(0, TokenBuilder.newNewline());
-                       insertInvocation(method.getStatements() as ArrayList, 
method, newAST);
-                       logger.info("Added invocation of method '{0}'() to 
method '{1}' to .as file", [INSTALL_METHOD_PREFIX + localeName, 
"installResources()"]);
-               }
-
-               private function createLocale(localeName:String):void {
-                       logger.info("Creating new locale '{0}', using '{1}' as 
the reference locale", [localeName, applicationModel.referenceLocale.name]);
-                       var type:ASTASClassType = 
applicationModel.localeCompilationUnit.getType() as ASTASClassType;
-                       addField(type, localeName);
-                       var method:ASTASMethod = addMethod(type, localeName);
-                       var data:LocaleDataVO = new LocaleDataVO(method, 
localeName);
-                       
applicationModel.localeData[applicationModel.localeData.length] = data;
-
-                       addMethodInvocation(type, localeName);
-
-                       dispatchEvent(new 
LocaleEvent(LocaleEvent.LOCALE_CREATED, null, data));
-                       logger.info("Finished creating locale '{0}'", 
[localeName]);
-                       dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_INFO_STATUS, "New 
locale '" + localeName + "' created succesfully!"));
-               }
-
-               private function insertInvocation(statements:ArrayList, 
container:ASTScriptElement, newAST:LinkedListTree):void {
-                       var iterator:IIterator = statements.iterator();
-                       var idx:int = 0;
-                       while (iterator.hasNext()) {
-                               var statement:IASStatement = iterator.next();
-                               if (statement is ContainerDelegate) {
-                                       insertInvocation((statement as 
ContainerDelegate).getStatements() as ArrayList, statement as ASTScriptElement, 
newAST);
-                               } else {
-                                       if (statement is 
ASTASExpressionStatement) {
-                                               var 
expr:ASTASExpressionStatement = statement as ASTASExpressionStatement;
-                                               if (expr.toString().substr(0, 
INSTALL_METHOD_PREFIX.length) == INSTALL_METHOD_PREFIX) {
-                                                       var 
containerAST:LinkedListTree = container.getAST();
-                                                       containerAST = 
containerAST.getChild(containerAST.childCount - 1) as LinkedListTree;
-                                                       
containerAST.addChildAtWithTokens(idx + 1, newAST);
-                                                       break;
-                                               }
-                                       }
-                               }
-                               idx++;
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/InitializeApplicationCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/InitializeApplicationCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/InitializeApplicationCommand.as
deleted file mode 100644
index 6e9f334..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/InitializeApplicationCommand.as
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import flash.filesystem.File;
-       import flash.filesystem.FileMode;
-       import flash.filesystem.FileStream;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.apache.flex.runtimelocale.ini.IniReader;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-       import org.springextensions.actionscript.context.IApplicationContext;
-       import 
org.springextensions.actionscript.context.IApplicationContextAware;
-       import 
org.springextensions.actionscript.ioc.config.property.impl.Properties;
-
-       public class InitializeApplicationCommand extends 
AbstractApplicationModelAwareBaseCommand implements IApplicationContextAware {
-
-               private static const logger:ILogger = 
getClassLogger(InitializeApplicationCommand);
-
-               public function InitializeApplicationCommand(event:Event) {
-                       super(event);
-               }
-
-               private var _applicationContext:IApplicationContext;
-
-               public function get applicationContext():IApplicationContext {
-                       return _applicationContext;
-               }
-
-               public function set 
applicationContext(value:IApplicationContext):void {
-                       _applicationContext = value;
-               }
-
-               override public function execute():* {
-                       var iniFile:File = 
File.applicationStorageDirectory.resolvePath('config.ini');
-                       if (!iniFile.exists) {
-                               createIniWithDefaults(iniFile.nativePath);
-                       }
-                       readIni(iniFile.nativePath);
-               }
-
-               private function createIniWithDefaults(iniPath:String):void {
-                       logger.info("Creating '{0}' for first use", [iniPath]);
-                       var configContent:Array = [];
-                       configContent[configContent.length] = "localefilepath=";
-                       configContent[configContent.length] = "logging=true";
-                       configContent[configContent.length] = "showhelp=true";
-
-                       var iniFile:File = new File(iniPath);
-                       var stream:FileStream = new FileStream();
-                       try {
-                               stream.open(iniFile, FileMode.WRITE);
-                               stream.writeUTFBytes(configContent.join("\n"));
-                       } catch (e:Error) {
-                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_ERROR_STATUS, 
e.message, "Error saving config file"));
-                       } finally {
-                               stream.close();
-                       }
-               }
-
-               private function readIni(iniPath:String):void {
-                       var iniReader:IniReader = new IniReader();
-                       var configProperties:Object = 
iniReader.readFromFile(iniPath);
-                       setDefaults(configProperties);
-                       applicationModel.configurationProperties = 
configProperties;
-                       for (var key:String in configProperties) {
-                               _applicationContext.propertiesProvider ||= new 
Properties();
-                               
_applicationContext.propertiesProvider.setProperty(key, configProperties[key]);
-                       }
-               }
-
-               private function setDefaults(configProperties:Object):void {
-                       if (!configProperties['logging']) {
-                               configProperties['logging'] = 'true';
-                       }
-                       if (!configProperties['showhelp']) {
-                               configProperties['showhelp'] = 'true';
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileLoadedCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileLoadedCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileLoadedCommand.as
deleted file mode 100644
index 35a4ceb..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileLoadedCommand.as
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.core.FlexGlobals;
-       import mx.managers.CursorManager;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.apache.flex.runtimelocale.event.LocaleFileEvent;
-       import org.apache.flex.runtimelocale.event.LocaleFileLoadedEvent;
-       import 
org.apache.flex.runtimelocale.event.ShowLocaleFileSelectorViewEvent;
-       import org.as3commons.asblocks.dom.IASCompilationUnit;
-       import org.as3commons.asblocks.impl.ASTASParser;
-       import org.as3commons.async.operation.impl.AbstractOperation;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class LocaleFileLoadedCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(LocaleFileLoadedCommand);
-
-               public function LocaleFileLoadedCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var loadedEvent:LocaleFileLoadedEvent = event as 
LocaleFileLoadedEvent;
-                       if (loadedEvent) {
-                               logger.info("Executing LocaleFileLoadedCommand 
for file path '{0}'", [loadedEvent.filePath]);
-                               applicationModel.currentLocalFilePath = 
loadedEvent.filePath;
-                               var operation:AbstractOperation = new 
AbstractOperation();
-                               operation.result = this;
-                               parseContent(loadedEvent.fileContent, 
operation);
-                               return operation;
-                       }
-               }
-
-               private function parseContent(fileContent:String, 
operation:AbstractOperation):void {
-                       dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_INFO_STATUS, "Parsing 
locale file, hold on, this may take a while..."));
-                       CursorManager.setBusyCursor();
-                       var count:int = 0;
-                       //Somehow I have to wait 2 frames for the statusbar and 
cursor to actually update,
-                       //if I don't hack it like this the parser will already 
block the UI thread...
-                       var handleNextFrame:Function = function():void {
-                               if (++count == 2) {
-                                       logger.info("Starting processing locale 
file");
-                                       
FlexGlobals.topLevelApplication.stage.removeEventListener(Event.ENTER_FRAME, 
handleNextFrame);
-                                       var parser:ASTASParser = new 
ASTASParser();
-                                       try {
-                                               var unit:IASCompilationUnit = 
parser.parse(fileContent);
-                                               
applicationModel.localeCompilationUnit = unit;
-                                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_INFO_STATUS, "Locale 
file parsed succesfully!"));
-                                               dispatchEvent(new 
LocaleFileEvent(LocaleFileEvent.FILE_READY));
-                                               
operation.dispatchCompleteEvent();
-                                       } catch (e:Error) {
-                                               logger.info("Error parsing 
file: {0}", [e.message]);
-                                               dispatchEvent(new 
ShowLocaleFileSelectorViewEvent(ShowLocaleFileSelectorViewEvent.SHOW_LOCALE_FILE_SELECTOR));
-                                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_ERROR_STATUS, 
e.message, "Error parsing file"));
-                                               operation.dispatchErrorEvent();
-                                       } finally {
-                                               
CursorManager.removeBusyCursor();
-                                       }
-                               }
-                       };
-                       
FlexGlobals.topLevelApplication.stage.addEventListener(Event.ENTER_FRAME, 
handleNextFrame)
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileReadyCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileReadyCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileReadyCommand.as
deleted file mode 100644
index 00ff0ef..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileReadyCommand.as
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.collections.ArrayCollection;
-       import org.apache.flex.runtimelocale.event.ReferenceLocaleRequestEvent;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.as3commons.asblocks.dom.IASCompilationUnit;
-       import org.as3commons.asblocks.impl.ASTASClassType;
-       import org.as3commons.asblocks.impl.ASTASMethod;
-       import org.as3commons.collections.framework.IIterator;
-       import org.as3commons.collections.framework.IList;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class LocaleFileReadyCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               public static const LOCALE_METHOD_PREFIX:String = "install_";
-               public static const LOCALE_METHOD_PREFIX_LEN:int = 
"install_".length;
-
-               private static const logger:ILogger = 
getClassLogger(LocaleFileReadyCommand);
-
-               public function LocaleFileReadyCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var unit:IASCompilationUnit = 
applicationModel.localeCompilationUnit;
-                       var type:ASTASClassType = unit.getType() as 
ASTASClassType;
-                       var localeMethods:Vector.<ASTASMethod> = 
filterOutLocaleMethods(type.getMethods());
-                       makeLocaleList(localeMethods);
-                       extractLocaleDataFromMethods(localeMethods);
-                       dispatchEvent(new 
ReferenceLocaleRequestEvent(ReferenceLocaleRequestEvent.REFERENCE_LOCALE_REQUEST,
 "en_US"));
-               }
-
-               private function 
extractLocaleDataFromMethods(localeMethods:Vector.<ASTASMethod>):void {
-                       logger.info("Creating locale data from install 
methods");
-                       var list:Vector.<LocaleDataVO> = new 
Vector.<LocaleDataVO>();
-                       for each (var method:ASTASMethod in localeMethods) {
-                               var name:String = method.getName().substr(-5, 
5);
-                               list[list.length] = new LocaleDataVO(method, 
name);
-                       }
-                       applicationModel.localeData = list;
-               }
-
-               private function 
filterOutLocaleMethods(methods:IList):Vector.<ASTASMethod> {
-                       var result:Vector.<ASTASMethod> = new 
Vector.<ASTASMethod>();
-                       var iterator:IIterator = methods.iterator();
-                       while (iterator.hasNext()) {
-                               var method:ASTASMethod = iterator.next();
-                               if (method.getName().substr(0, 
LOCALE_METHOD_PREFIX_LEN) == LOCALE_METHOD_PREFIX) {
-                                       result[result.length] = method;
-                               }
-                       }
-                       return result;
-               }
-
-               private function 
makeLocaleList(localeMethods:Vector.<ASTASMethod>):void {
-                       logger.info("Extracting locale list");
-                       var locales:Array = [];
-                       for each (var method:ASTASMethod in localeMethods) {
-                               var name:String = method.getName().substr(-5, 
5);
-                               locales[locales.length] = name;
-                               logger.info("Extracting locale name '{0}' for 
list", [name]);
-                       }
-                       applicationModel.availableLocales = new 
ArrayCollection(locales);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileSaveRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileSaveRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileSaveRequestCommand.as
deleted file mode 100644
index 0468af8..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileSaveRequestCommand.as
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import flash.filesystem.File;
-       import flash.filesystem.FileMode;
-       import flash.filesystem.FileStream;
-       import org.apache.flex.runtimelocale.IStatusReporter;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class LocaleFileSaveRequestCommand extends 
AbstractApplicationModelAwareBaseCommand implements IStatusReporter {
-
-               //ASBlocks doesn't save the comments all the way at the top of 
a file,
-               //I expect this to be a temporary bug so for now I just re-add 
the header
-               //before saving the file.
-               public static const FILE_HEADER:String = 
'////////////////////////////////////////////////////////////////////////////////'
 + "\n" + //
-                       '//' + "\n" + //
-                       '// Licensed to the Apache Software Foundation (ASF) 
under one or more' + "\n" + //
-                       '// contributor license agreements. See the NOTICE file 
distributed with' + "\n" + //
-                       '// this work for additional information regarding 
copyright ownership.' + "\n" + //
-                       '// The ASF licenses this file to You under the Apache 
License, Version 2.0' + "\n" + //
-                       '// (the "License"); you may not use this file except 
in compliance with' + "\n" + //
-                       '// the License. You may obtain a copy of the License 
at' + "\n" + //
-                       '//' + "\n" + //
-                       '// http://www.apache.org/licenses/LICENSE-2.0' + "\n" 
+ //
-                       '//' + "\n" + //
-                       '// Unless required by applicable law or agreed to in 
writing, software' + "\n" + //
-                       '// distributed under the License is distributed on an 
"AS IS" BASIS,' + "\n" + //
-                       '// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
either express or implied.' + "\n" + //
-                       '// See the License for the specific language governing 
permissions and' + "\n" + //
-                       '// limitations under the License.' + "\n" + //
-                       '//' + "\n" + //
-                       
'////////////////////////////////////////////////////////////////////////////////'
 + "\n" + //
-                       '' + "\n" + //
-                       '' + "\n" + //
-                       '';
-
-               private static const logger:ILogger = 
getClassLogger(LocaleFileSaveRequestCommand);
-
-               public function LocaleFileSaveRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeFile:File = new 
File(applicationModel.currentLocalFilePath);
-                       var stream:FileStream = new FileStream();
-                       try {
-                               stream.open(localeFile, FileMode.WRITE);
-                               stream.writeUTFBytes(FILE_HEADER + 
applicationModel.localeCompilationUnit.toString());
-                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_INFO_STATUS, "'" + 
applicationModel.currentLocalFilePath + "' saved succesfully!"));
-                       } catch (e:Error) {
-                               logger.error("Error saving locale .as file 
'{0}': {1}", [applicationModel.currentLocalFilePath, e.message]);
-                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_ERROR_STATUS, 
e.message, "Error saving locale file"));
-                       } finally {
-                               stream.close();
-                       }
-                       logger.error("Saved locale .as file '{0}'", 
[applicationModel.currentLocalFilePath]);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileShowRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileShowRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileShowRequestCommand.as
deleted file mode 100644
index 7393923..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/LocaleFileShowRequestCommand.as
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.DisplayObject;
-       import flash.events.Event;
-       import mx.core.FlexGlobals;
-       import mx.managers.PopUpManager;
-       import org.apache.flex.runtimelocale.view.TextFileContentView;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class LocaleFileShowRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(LocaleFileShowRequestCommand);
-
-               public function LocaleFileShowRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var view:TextFileContentView = new 
TextFileContentView();
-                       view.fileContent = 
LocaleFileSaveRequestCommand.FILE_HEADER + 
applicationModel.localeCompilationUnit.toString();
-                       view.filePath = applicationModel.currentLocalFilePath;
-                       PopUpManager.addPopUp(view, 
(FlexGlobals.topLevelApplication as DisplayObject));
-                       PopUpManager.centerPopUp(view);
-                       logger.info("Executed LocaleFileShowRequestCommand");
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleItemRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleItemRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleItemRequestCommand.as
deleted file mode 100644
index e487b93..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleItemRequestCommand.as
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.Sprite;
-       import flash.events.Event;
-       import mx.controls.Alert;
-       import mx.core.FlexGlobals;
-       import mx.events.CloseEvent;
-       import mx.events.CollectionEvent;
-       import mx.events.CollectionEventKind;
-       import org.apache.flex.runtimelocale.event.LocaleItemEvent;
-       import org.apache.flex.runtimelocale.model.ApplicationModel;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class NewLocaleItemRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(NewLocaleItemRequestCommand);
-
-               public function NewLocaleItemRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeEvent:LocaleItemEvent = event as 
LocaleItemEvent;
-                       if (localeEvent) {
-                               var localeData:LocaleDataVO = 
localeEvent.localeData;
-                               if (localeData === 
applicationModel.referenceLocale) {
-                                       var appModel:ApplicationModel = 
applicationModel;
-                                       var closeHandler:Function = 
function(closeEvent:CloseEvent):void {
-                                               if (closeEvent.detail == 
Alert.YES) {
-                                                       for each (var 
otherLocaleData:LocaleDataVO in appModel.localeData) {
-                                                               
addKey(otherLocaleData, localeEvent.itemKey);
-                                                       }
-                                               } else {
-                                                       addKey(localeData, 
localeEvent.itemKey);
-                                                       
addMissingKeys(appModel, localeEvent.itemKey);
-                                               }
-                                               logger.info("Executed 
NewLocaleItemRequestCommand");
-                                       };
-                                       Alert.show("You are currently editing 
the reference locale, do you want to add the translation key '" + //
-                                               localeEvent.itemKey + "' to all 
the other locales as well?", "Confirm", Alert.YES | Alert.NO, //
-                                               
(FlexGlobals.topLevelApplication as Sprite), closeHandler);
-                               } else {
-                                       addKey(localeData, localeEvent.itemKey);
-                                       logger.info("Executed 
NewLocaleItemRequestCommand");
-                               }
-                       }
-               }
-
-               private function addKey(localeData:LocaleDataVO, 
itemKey:String):void {
-                       if (localeData.getItemByKey(itemKey) == null) {
-                               localeData.addKey(itemKey);
-                       }
-               }
-
-               private function addMissingKeys(appModel:ApplicationModel, 
itemKey:String):void {
-                       for each (var localeData:LocaleDataVO in 
appModel.localeData) {
-                               if (localeData.getItemByKey(itemKey) == null) {
-                                       localeData.missingKeys.addItem(itemKey);
-                               }
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleRequestCommand.as
deleted file mode 100644
index b330dee..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/NewLocaleRequestCommand.as
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.DisplayObject;
-       import flash.events.Event;
-       import mx.core.FlexGlobals;
-       import mx.managers.PopUpManager;
-       import org.apache.flex.runtimelocale.event.LocaleEvent;
-       import org.apache.flex.runtimelocale.view.NewLocaleView;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class NewLocaleRequestCommand extends AbstractBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(NewLocaleRequestCommand);
-
-               public function NewLocaleRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeEvent:LocaleEvent = event as LocaleEvent;
-                       if (localeEvent) {
-                               var popup:NewLocaleView = new NewLocaleView();
-                               PopUpManager.addPopUp(popup, 
(FlexGlobals.topLevelApplication as DisplayObject), true);
-                               PopUpManager.centerPopUp(popup);
-                               logger.info("Executed NewLocaleRequestCommand, 
now showing NewLocaleView popup");
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ReferenceLocaleRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ReferenceLocaleRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ReferenceLocaleRequestCommand.as
deleted file mode 100644
index 8303101..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ReferenceLocaleRequestCommand.as
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.collections.ArrayCollection;
-       import org.apache.flex.runtimelocale.event.ReferenceLocaleRequestEvent;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.apache.flex.runtimelocale.model.locale.LocaleItemDataVO;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class ReferenceLocaleRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(ReferenceLocaleRequestCommand);
-
-               public function ReferenceLocaleRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var refEvent:ReferenceLocaleRequestEvent = event as 
ReferenceLocaleRequestEvent;
-                       if (refEvent) {
-                               var referenceLocale:LocaleDataVO = 
findLocale(refEvent.localeName);
-                               if (referenceLocale) {
-                                       applicationModel.referenceLocale = 
referenceLocale;
-                                       
addMissingKeysToLocales(applicationModel.referenceLocale, 
applicationModel.localeData);
-                                       logger.info("Set '{0}' as the enw 
reference locale", [refEvent.localeName]);
-                               }
-                               logger.info("Executed 
ReferenceLocaleRequestCommand");
-                       }
-               }
-
-               private function 
addMissingKeysToLocale(referenceLocale:LocaleDataVO, 
localeData:LocaleDataVO):void {
-                       var missingKeys:Array = [];
-                       for each (var item:LocaleItemDataVO in 
referenceLocale.content) {
-                               if (localeData.getItemByKey(item.key) == null) {
-                                       missingKeys[missingKeys.length] = 
item.key;
-                               }
-                       }
-                       localeData.missingKeys = new 
ArrayCollection(missingKeys);
-               }
-
-               private function 
addMissingKeysToLocales(referenceLocale:LocaleDataVO, 
localeDatas:Vector.<LocaleDataVO>):void {
-                       for each (var localeData:LocaleDataVO in localeDatas) {
-                               if (referenceLocale !== localeData) {
-                                       addMissingKeysToLocale(referenceLocale, 
localeData);
-                               }
-                       }
-               }
-
-               private function findLocale(locale:String):LocaleDataVO {
-                       for each (var data:LocaleDataVO in 
applicationModel.localeData) {
-                               if (data.name == locale) {
-                                       return data;
-                               }
-                       }
-                       return null;
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleItemRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleItemRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleItemRequestCommand.as
deleted file mode 100644
index 8662b68..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleItemRequestCommand.as
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.Sprite;
-       import flash.events.Event;
-       import mx.controls.Alert;
-       import mx.core.FlexGlobals;
-       import mx.events.CloseEvent;
-       import org.apache.flex.runtimelocale.event.LocaleItemEvent;
-       import org.apache.flex.runtimelocale.model.ApplicationModel;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.apache.flex.runtimelocale.model.locale.LocaleItemDataVO;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class RemoveLocaleItemRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(RemoveLocaleItemRequestCommand);
-
-               public function RemoveLocaleItemRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeEvent:LocaleItemEvent = event as 
LocaleItemEvent;
-                       if (localeEvent) {
-                               var localeData:LocaleDataVO = 
localeEvent.localeData;
-                               if (localeData === 
applicationModel.referenceLocale) {
-                                       var appModel:ApplicationModel = 
applicationModel;
-                                       var closeHandler:Function = 
function(closeEvent:CloseEvent):void {
-                                               if (closeEvent.detail == 
Alert.YES) {
-                                                       for each (var 
otherLocaleData:LocaleDataVO in appModel.localeData) {
-                                                               
deleteKey(otherLocaleData, localeEvent.itemKey);
-                                                               
logger.info("Deleted translation key '{0}' from locale '{1}'", 
[localeEvent.itemKey, otherLocaleData.name]);
-                                                       }
-                                               } else {
-                                                       deleteKey(localeData, 
localeEvent.itemKey);
-                                                       logger.info("Deleted 
translation key '{0}' from locale '{1}'", [localeEvent.itemKey, 
localeData.name]);
-                                               }
-                                       };
-                                       Alert.show("You are currently editing 
the reference locale, do you want to delete the translation key '" + 
localeEvent.itemKey + "' from all the other locales as well?", "Confirm", 
Alert.YES | Alert.NO, (FlexGlobals.topLevelApplication as Sprite), 
closeHandler);
-                               } else {
-                                       deleteKey(localeData, 
localeEvent.itemKey);
-                                       logger.info("Deleted translation key 
'{0}' from locale '{1}'", [localeEvent.itemKey, localeData.name]);
-                               }
-                       }
-               }
-
-               private function deleteKey(localeData:LocaleDataVO, 
itemKey:String):void {
-                       var localeItem:LocaleItemDataVO = 
localeData.getItemByKey(itemKey);
-                       if (localeItem) {
-                               localeData.removeItem(localeItem);
-                       } else {
-                               var idx:int = 
localeData.missingKeys.getItemIndex(itemKey);
-                               if (idx > -1) {
-                                       
localeData.missingKeys.removeItemAt(idx);
-                               }
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleRequestCommand.as
deleted file mode 100644
index df7ea3a..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RemoveLocaleRequestCommand.as
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.controls.Alert;
-       import mx.events.CloseEvent;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.apache.flex.runtimelocale.event.LocaleEvent;
-       import org.apache.flex.runtimelocale.model.ApplicationModel;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.as3commons.asblocks.dom.IASStatement;
-       import org.as3commons.asblocks.impl.ASTASClassType;
-       import org.as3commons.asblocks.impl.ASTASExpressionStatement;
-       import org.as3commons.asblocks.impl.ASTASMethod;
-       import org.as3commons.asblocks.impl.ContainerDelegate;
-       import org.as3commons.async.operation.impl.AbstractOperation;
-       import org.as3commons.collections.ArrayList;
-       import org.as3commons.collections.framework.IIterator;
-       import org.as3commons.collections.framework.IList;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class RemoveLocaleRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(RemoveLocaleRequestCommand);
-
-               public function RemoveLocaleRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var operation:AbstractOperation = new 
AbstractOperation();
-                       var localeEvent:LocaleEvent = event as LocaleEvent;
-                       if (localeEvent) {
-                               var appModel:ApplicationModel = 
applicationModel;
-                               var closeHandler:Function = 
function(closeEvent:CloseEvent):void {
-                                       removeLocale(appModel, 
localeEvent.localeData);
-                                       dispatchEvent(new 
LocaleEvent(LocaleEvent.LOCALE_REMOVED, null, localeEvent.localeData));
-                                       dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_INFO_STATUS, "Locale 
" + localeEvent.localeData.name + " was removed successfully!"));
-                                       operation.dispatchCompleteEvent(this);
-                                       logger.info("Executed 
RemoveLocaleRequestCommand");
-                               };
-                               Alert.show("Are you sure you want to completely 
remove the locale '" + localeEvent.localeData.name + "'?", "Confirmation", 
Alert.YES | Alert.NO, null, closeHandler);
-                       }
-                       return operation;
-               }
-
-               private function findInvocation(statements:IList, 
localeName:String, container:*):void {
-                       var iterator:IIterator = statements.iterator();
-                       var idx:int = 0;
-                       while (iterator.hasNext()) {
-                               var statement:IASStatement = iterator.next();
-                               if (statement is ContainerDelegate) {
-                                       findInvocation((statement as 
ContainerDelegate).getStatements() as ArrayList, localeName, statement);
-                               } else {
-                                       if (statement is 
ASTASExpressionStatement) {
-                                               var str:String = 
statement.toString();
-                                               if (str == "install_" + 
localeName + "();") {
-                                                       
container.removeStatement(statement);
-                                                       break;
-                                               }
-                                       }
-                               }
-                               idx++;
-                       }
-               }
-
-               private function removeLocale(appModel:ApplicationModel, 
localeData:LocaleDataVO):void {
-                       var idx:int = appModel.localeData.indexOf(localeData);
-                       if (idx > -1) {
-                               appModel.localeData.splice(idx, 1);
-                               
removeLocaleFromAS3File(appModel.localeCompilationUnit.getType() as 
ASTASClassType, localeData.name);
-                       }
-               }
-
-               private function removeLocaleFromAS3File(type:ASTASClassType, 
localeName:String):void {
-                       type.removeMethod("install_" + localeName);
-                       logger.info("Removed method '{0}' from. as file", 
["install_" + localeName]);
-                       type.removeField(localeName.toUpperCase());
-                       logger.info("Removed constant static field '{0}' from. 
as file", [localeName.toUpperCase()]);
-                       var method:ASTASMethod = 
type.getMethod("installResources") as ASTASMethod;
-                       findInvocation(method.getStatements() as ArrayList, 
localeName, method);
-                       logger.info("Removed invocation method '{0}'() from. as 
file", ["install_" + localeName]);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RequestAddMissingKeysCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RequestAddMissingKeysCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RequestAddMissingKeysCommand.as
deleted file mode 100644
index c169182..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/RequestAddMissingKeysCommand.as
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import mx.events.CollectionEvent;
-       import mx.events.CollectionEventKind;
-       import mx.managers.CursorManager;
-       import org.apache.flex.runtimelocale.event.LocaleDataEvent;
-       import org.apache.flex.runtimelocale.model.locale.LocaleDataVO;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class RequestAddMissingKeysCommand extends AbstractBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(RequestAddMissingKeysCommand);
-
-               public function RequestAddMissingKeysCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var localeEvent:LocaleDataEvent = event as 
LocaleDataEvent;
-                       if (localeEvent) {
-                               var localeData:LocaleDataVO = 
localeEvent.localeData;
-                               CursorManager.setBusyCursor();
-                               try {
-                                       for each (var key:String in 
localeData.missingKeys) {
-                                               localeData.addKey(key);
-                                       }
-                                       localeData.missingKeys.removeAll();
-                                       logger.info("Added all misssing 
translation keys to locale '{0}'", [localeData.name]);
-                               } finally {
-                                       CursorManager.removeBusyCursor();
-                               }
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/SaveConfigurationRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/SaveConfigurationRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/SaveConfigurationRequestCommand.as
deleted file mode 100644
index 6622d71..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/SaveConfigurationRequestCommand.as
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.events.Event;
-       import flash.filesystem.File;
-       import flash.filesystem.FileMode;
-       import flash.filesystem.FileStream;
-       import org.apache.flex.runtimelocale.event.ApplicationStatusEvent;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class SaveConfigurationRequestCommand extends 
AbstractApplicationModelAwareBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(SaveConfigurationRequestCommand);
-
-               public function SaveConfigurationRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var properties:Object = 
applicationModel.configurationProperties;
-                       var configContent:Array = [];
-                       for (var key:String in properties) {
-                               configContent[configContent.length] = key + "=" 
+ properties[key];
-                       }
-
-                       var iniFile:File = 
File.applicationStorageDirectory.resolvePath('config.ini');
-                       var stream:FileStream = new FileStream();
-                       try {
-                               stream.open(iniFile, FileMode.WRITE);
-                               stream.writeUTFBytes(configContent.join("\n"));
-                       } catch (e:Error) {
-                               logger.error("Error saving config file {0}: 
{1}", [iniFile.nativePath, e.message]);
-                               dispatchEvent(new 
ApplicationStatusEvent(ApplicationStatusEvent.APPLICATION_ERROR_STATUS, 
e.message, "Error saving config file"));
-                       } finally {
-                               stream.close();
-                       }
-                       logger.info("Saved config file '{0}'", 
[iniFile.nativePath]);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowHelpRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowHelpRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowHelpRequestCommand.as
deleted file mode 100644
index 88be34f..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowHelpRequestCommand.as
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.DisplayObject;
-       import flash.events.Event;
-       import mx.core.FlexGlobals;
-       import mx.managers.PopUpManager;
-       import org.apache.flex.runtimelocale.view.HelpView;
-
-       public class ShowHelpRequestCommand extends AbstractBaseCommand {
-
-               public function ShowHelpRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var popup:HelpView = new HelpView();
-                       PopUpManager.addPopUp(popup, 
(FlexGlobals.topLevelApplication as DisplayObject));
-                       PopUpManager.centerPopUp(popup);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLocaleFileSelectorViewCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLocaleFileSelectorViewCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLocaleFileSelectorViewCommand.as
deleted file mode 100644
index ecbaadd..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLocaleFileSelectorViewCommand.as
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.DisplayObject;
-       import flash.events.Event;
-       import mx.core.FlexGlobals;
-       import mx.managers.PopUpManager;
-       import org.apache.flex.runtimelocale.view.LocaleFileSelectorView;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class ShowLocaleFileSelectorViewCommand extends 
AbstractBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(ShowLocaleFileSelectorViewCommand);
-
-               public function ShowLocaleFileSelectorViewCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var selectorView:LocaleFileSelectorView = new 
LocaleFileSelectorView();
-                       PopUpManager.addPopUp(selectorView, 
(FlexGlobals.topLevelApplication as DisplayObject));
-                       PopUpManager.centerPopUp(selectorView);
-                       logger.info("Executed 
ShowLocaleFileSelectorViewCommand, now showing LocaleFileSelectorView popup");
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/bd17e63e/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLogFileRequestCommand.as
----------------------------------------------------------------------
diff --git 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLogFileRequestCommand.as
 
b/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLogFileRequestCommand.as
deleted file mode 100644
index 7cb8c5a..0000000
--- 
a/installerLocaleEditor/src/org/apache/flex/runtimelocale/command/ShowLogFileRequestCommand.as
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.apache.flex.runtimelocale.command {
-       import flash.display.DisplayObject;
-       import flash.events.Event;
-       import flash.filesystem.File;
-       import flash.filesystem.FileMode;
-       import flash.filesystem.FileStream;
-       import mx.core.FlexGlobals;
-       import mx.managers.PopUpManager;
-       import mx.utils.ObjectUtil;
-       import org.apache.flex.runtimelocale.view.TextFileContentView;
-       import org.as3commons.logging.api.ILogger;
-       import org.as3commons.logging.api.getClassLogger;
-
-       public class ShowLogFileRequestCommand extends AbstractBaseCommand {
-
-               private static const logger:ILogger = 
getClassLogger(ShowLogFileRequestCommand);
-
-               public function ShowLogFileRequestCommand(event:Event) {
-                       super(event);
-               }
-
-               override public function execute():* {
-                       var logFilePath:File = getNewestLogFilePath();
-                       if (logFilePath) {
-                               var fileContent:String = 
loadLogFile(logFilePath);
-                               if (fileContent) {
-                                       showLogFile(fileContent, 
logFilePath.nativePath);
-                               }
-                       }
-                       logger.info("Executed ShowLogFileRequestCommand");
-               }
-
-               private function compareCreationDates(f1:File, f2:File):Number {
-                       return ObjectUtil.dateCompare(f1.creationDate, 
f2.creationDate);
-               }
-
-               private function getNewestLogFilePath():File {
-                       var listing:Array = 
File.applicationStorageDirectory.getDirectoryListing();
-                       var logListing:Array = [];
-                       for each (var file:File in listing) {
-                               if (file.extension == "log") {
-                                       logListing[logListing.length] = file;
-                               }
-                       }
-                       if (logListing.length > 1) {
-                               logListing.sort(compareCreationDates, 
Array.NUMERIC);
-                               logListing = logListing.reverse();
-                       }
-                       if (logListing.length > 0) {
-                               return logListing[0];
-                       }
-                       return null;
-               }
-
-               private function loadLogFile(logFile:File):String {
-                       if (logFile.exists) {
-                               try {
-                                       var fileStream:FileStream = new 
FileStream();
-                                       fileStream.open(logFile, FileMode.READ);
-                                       fileStream.position = 0;
-                                       return 
fileStream.readMultiByte(fileStream.bytesAvailable, "utf-8");
-                               } catch (e:Error) {
-                                       logger.error("Error encountered while 
reading log file '{0}': {0}", [logFile, e.message]);
-                               } finally {
-                                       fileStream.close();
-                                       logger.info("Successfully loaded 
logfile: {0}", [logFile.nativePath]);
-                               }
-                       }
-                       return null;
-               }
-
-               private function showLogFile(fileContent:String, 
filePath:String):void {
-                       var view:TextFileContentView = new 
TextFileContentView();
-                       view.fileContent = fileContent;
-                       view.filePath = filePath;
-                       PopUpManager.addPopUp(view, 
(FlexGlobals.topLevelApplication as DisplayObject));
-                       PopUpManager.centerPopUp(view);
-                       logger.info("Showing contents of '{0}' in 
TextFileContentView", [filePath]);
-               }
-       }
-}

Reply via email to