You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2013/01/21 11:05:53 UTC
svn commit: r1436251 - in /flex/asjs/branches/develop/publisher/src: ./ org/
org/apache/ org/apache/flex/ org/apache/flex/asjs/
org/apache/flex/asjs/components/ org/apache/flex/asjs/enums/
org/apache/flex/asjs/interfaces/
Author: erikdebruin
Date: Mon Jan 21 10:05:53 2013
New Revision: 1436251
URL: http://svn.apache.org/viewvc?rev=1436251&view=rev
Log:
- adding ASJS Publisher AIR utility application
Added:
flex/asjs/branches/develop/publisher/src/
flex/asjs/branches/develop/publisher/src/Main-app.xml (with props)
flex/asjs/branches/develop/publisher/src/Main.mxml (with props)
flex/asjs/branches/develop/publisher/src/org/
flex/asjs/branches/develop/publisher/src/org/apache/
flex/asjs/branches/develop/publisher/src/org/apache/flex/
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as (with props)
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/
flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as (with props)
Added: flex/asjs/branches/develop/publisher/src/Main-app.xml
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/Main-app.xml?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/Main-app.xml (added)
+++ flex/asjs/branches/develop/publisher/src/Main-app.xml Mon Jan 21 10:05:53 2013
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<application xmlns="http://ns.adobe.com/air/application/3.4">
+
+<!-- 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.4
+ 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>Main</id>
+
+ <!-- Used as the filename for the application. Required. -->
+ <filename>Main</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>Main</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>0.0.0</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></versionLabel> -->
+
+ <!-- Description, displayed in the AIR application installer.
+ May have multiple values for each language. See samples or xsd schema file. Optional. -->
+ <!-- <description></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 aspect ratio of the app ("portrait" or "landscape" or "any"). 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 the default direct mode rendering context allocates storage for depth and stencil buffers. Optional. Default false. -->
+ <!-- <depthAndStencil></depthAndStencil> -->
+
+ <!-- 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>extendedDesktop</supportedProfiles>
+
+ <!-- Languages supported by application -->
+ <!-- Only these languages can be specified -->
+ <!-- <supportedLanguages>en de cs es fr it ja ko nl pl pt ru sv tr zh</supportedLanguages> -->
+
+ <!-- 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></image16x16>
+ <image29x29></image29x29>
+ <image32x32></image32x32>
+ <image36x36></image36x36>
+ <image48x48></image48x48>
+ <image50x50></image50x50>
+ <image57x57></image57x57>
+ <image58x58></image58x58>
+ <image72x72></image72x72>
+ <image100x100></image100x100>
+ <image114x114></image114x114>
+ <image128x128></image128x128>
+ <image144x144></image144x144>
+ <image512x512></image512x512>
+ <image1024x1024></image1024x1024>
+ </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>
Propchange: flex/asjs/branches/develop/publisher/src/Main-app.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/Main.mxml
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/Main.mxml?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/Main.mxml (added)
+++ flex/asjs/branches/develop/publisher/src/Main.mxml Mon Jan 21 10:05:53 2013
@@ -0,0 +1,195 @@
+<?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:components="org.apache.flex.asjs.components.*"
+ width="640"
+ height="480"
+ currentState="FalconJx"
+ creationComplete="creationCompleteHandler(event)">
+
+ <fx:Script><![CDATA[
+
+ import mx.events.FlexEvent;
+
+ import org.apache.flex.asjs.CommandScript;
+ import org.apache.flex.asjs.Utils;
+ import org.apache.flex.asjs.enums.BrowseTypes;
+ import org.apache.flex.asjs.enums.ScriptNames;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //----------------------------------------------------------------------
+
+ private var _commandScript:CommandScript;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // creationCompleteHandler
+ //----------------------------------
+
+ protected function creationCompleteHandler(event:FlexEvent):void
+ {
+ var command:String;
+
+ antPath.path = Utils.readPath("ant");
+
+ if (falconJxPath)
+ falconJxPath.path = Utils.readPath("falconJx");
+
+ projectPath.path = Utils.readPath("project");
+ uiLibPath.path = Utils.readPath("uiLib");
+
+ _commandScript = new CommandScript();
+
+ var options:String = "";
+ //options += "-d ";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/generated/src";
+ //options += "-sourcepath ";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/generated/src:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/src:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/tools/AnnotateClass:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/tools/problemEnumGenerator:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/tools/problemlocalizer:";
+ //options += ".";
+ options += "-cp ";
+ options += "/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/compiler/compiler.jar:";
+ options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/commons-io.jar:";
+ options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/generated/classes:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/generated/src:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/src:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/antlr.jar:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/commons-cli.jar:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/guava.jar:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/jburg.jar:";
+ //options += "/Users/erik/Documents/ApacheFlex/repo/falcon/compiler/lib/lzma-sdk.jar:";
+ options += ".";
+ //options += " -d ";
+ //options += "../generated/classes";
+
+ var params:String = "";
+ //params += "-define=CONFIG::performanceInstrumentation,false";
+ //params += " -load-config=\"/Applications/Adobe Flash Builder 4.7/sdks/4.9.0/frameworks/flex-config.xml\"";
+ //params += " +env.PLAYERGLOBAL_HOME=/Users/erik/Documents/ApacheFlex/dependencies/PlayerGlobal/player";
+ //params += " +playerglobal.version=11.1";
+ params += " -output=/Users/erik/Desktop/asjs-test-again/bin-release/Example.js";
+ params += " {2}";
+
+ command = "";
+ //command += "cd {0}/bin" + "\n"; // path to FalconJx compiler class
+ //command += "java " + options + " org/apache/flex/compiler/clients/MXMLJSC " + params + "\n";
+ command += "{0}/bin/mxmlc " + params + "\n";
+ _commandScript.scripts[ScriptNames.COMPILE_FALCONJX] = command;
+
+ command = "";
+ command += "cd {0}" + "\n";
+ command += "{1} -Denv.FLEX_HOME={2} -Denv.PLAYERGLOBAL_HOME={3} -Dplayerglobal.version=11.1" + "\n";
+ _commandScript.scripts[ScriptNames.BUILD_FLEXJS_UI] = command;
+
+ command = "";
+ command += "\n";
+ _commandScript.scripts[ScriptNames._TEST] = command;
+ }
+
+ //----------------------------------
+ // btnBuildFlexJSUI_clickHandler
+ //----------------------------------
+
+ protected function btnBuildFlexJSUI_clickHandler(event:MouseEvent):void
+ {
+ _commandScript.exec(ScriptNames.BUILD_FLEXJS_UI, [
+ uiLibPath.path,
+ antPath.path,
+ "/Users/erik/Documents/apacheFlex/repo/sdk",
+ "/Users/erik/Documents/ApacheFlex/dependencies/PlayerGlobal/player"]);
+ }
+
+ //----------------------------------
+ // btnCompileProjectToJS_clickHandler
+ //----------------------------------
+
+ protected function btnCompileProjectToJS_clickHandler(event:MouseEvent):void
+ {
+ /*_commandScript.exec(ScriptNames.COMPILE_FALCONJS, [
+ falconJSPath.path,
+ uiLibPath.path,
+ projectPath.path]);*/
+
+ _commandScript.exec(ScriptNames.COMPILE_FALCONJX, [
+ falconJxPath.path,
+ uiLibPath.path,
+ projectPath.path]);
+ }
+
+ ]]></fx:Script>
+
+ <fx:Declarations />
+
+ <s:states>
+ <s:State name="FalconJx" />
+ <s:State name="settings" />
+ </s:states>
+
+ <s:Panel id="pnlGeneral" left="10" top="10" right="10"
+ width="100%" height="100">
+ <s:VGroup left="10" right="10" top="10" bottom="10"
+ gap="10">
+ <components:PathSelectionBox id="antPath"
+ width="100%"
+ pathName="ant"
+ hint="e.g. /usr/share/ant/bin/ant"
+ instruction="Enter the path to your ANT installation directory:" />
+ </s:VGroup>
+ </s:Panel>
+
+ <s:Panel id="pnlProject" left="10" top="120" right="10" bottom="40"
+ width="100%" height="100%">
+ <s:VGroup left="10" right="10" top="10" bottom="10"
+ gap="10">
+ <components:PathSelectionBox id="projectPath"
+ width="100%"
+ browseType="{BrowseTypes.BROWSE_FILE}"
+ pathName="project"
+ hint="e.g. /Users/Documents/myProject/myMain.mxml"
+ instruction="Enter the path to your PROJECT main file:" />
+
+ <components:PathSelectionBox id="uiLibPath"
+ width="100%"
+ pathName="uiLib"
+ hint="e.g. /Users/Documents/myUILib"
+ instruction="Enter the path to the UI library of choice:" />
+
+ <components:PathSelectionBox id="falconJxPath"
+ width="100%"
+ pathName="falconJx"
+ hint="e.g. /Users/Documents/myCompiler"
+ instruction="Enter the path to the FalconJx compiler:" />
+ </s:VGroup>
+ </s:Panel>
+
+ <s:HGroup bottom="10"
+ width="100%"
+ horizontalAlign="center">
+ <s:Button id="btnBuildFlexJSUI" label="Build FlexJS UI"
+ bottom="10"
+ horizontalCenter="0"
+ click="btnBuildFlexJSUI_clickHandler(event)" />
+
+ <s:Button id="btnCompileProjectToJS" label="Compile Project to JS"
+ bottom="10"
+ horizontalCenter="0"
+ click="btnCompileProjectToJS_clickHandler(event)" />
+ </s:HGroup>
+
+</s:WindowedApplication>
Propchange: flex/asjs/branches/develop/publisher/src/Main.mxml
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,144 @@
+package org.apache.flex.asjs
+{
+
+import flash.desktop.NativeProcess;
+import flash.desktop.NativeProcessStartupInfo;
+import flash.events.NativeProcessExitEvent;
+import flash.events.ProgressEvent;
+import flash.filesystem.File;
+import flash.system.Capabilities;
+
+import mx.utils.StringUtil;
+
+import org.apache.flex.asjs.interfaces.IExecutable;
+
+public class CommandLine implements IExecutable
+{
+
+ //----------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //----------------------------------------------------------------------
+
+ public function CommandLine() {}
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //----------------------------------------------------------------------
+
+ private var _nativeProcess:NativeProcess;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // exec
+ //----------------------------------
+
+ public function exec(command:String, params:Array = null):void
+ {
+ if (params)
+ command = StringUtil.substitute(command, params);
+
+ if (!_nativeProcess)
+ init();
+
+ _nativeProcess.standardInput.writeUTFBytes(command);
+ }
+
+ //----------------------------------
+ // getCommandExecutablePaths
+ //----------------------------------
+
+ public function getCommandExecutable():File
+ {
+ var commandExecutableName:String;
+ var commandExecutablePath:String;
+
+ if (Capabilities.os.indexOf("Windows") != -1)
+ {
+ commandExecutableName = "cmd.exe";
+
+ commandExecutablePath = "c:\\" + commandExecutableName;
+ }
+ else
+ {
+ commandExecutableName = "bash";
+
+ commandExecutablePath = "/bin/" + commandExecutableName;
+ }
+
+ return new File().resolvePath(commandExecutablePath);
+ }
+
+ //----------------------------------
+ // init
+ //----------------------------------
+
+ private function init():void
+ {
+ if (NativeProcess.isSupported)
+ {
+ _nativeProcess = new NativeProcess();
+ _nativeProcess.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, errorHandler);
+ _nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, outputHandler);
+ _nativeProcess.addEventListener(NativeProcessExitEvent.EXIT, exitHandler);
+
+ var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
+ nativeProcessStartupInfo.executable = getCommandExecutable();
+
+ _nativeProcess.start(nativeProcessStartupInfo);
+ }
+ else
+ {
+ throw new Error("Application Error: NativeProcess is not supported.");
+ }
+ }
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // errorHandler
+ //----------------------------------
+
+ public function errorHandler(event:ProgressEvent):void
+ {
+ trace("ERROR: " + _nativeProcess.standardError.readUTFBytes(_nativeProcess.standardError.bytesAvailable));
+ }
+
+ //----------------------------------
+ // exitHandler
+ //----------------------------------
+
+ public function exitHandler(event:NativeProcessExitEvent):void
+ {
+ trace("EXIT CODE: " + event.exitCode);
+ }
+
+ //----------------------------------
+ // outputHandler
+ //----------------------------------
+
+ public function outputHandler(event:ProgressEvent):void
+ {
+ trace(_nativeProcess.standardOutput.readUTFBytes(_nativeProcess.standardOutput.bytesAvailable));
+ }
+
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandLine.as
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,83 @@
+package org.apache.flex.asjs
+{
+
+import flash.utils.Dictionary;
+
+import mx.utils.StringUtil;
+
+import org.apache.flex.asjs.interfaces.IExecutable;
+
+public class CommandScript implements IExecutable
+{
+
+ //----------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //----------------------------------------------------------------------
+
+ public function CommandScript()
+ {
+ this.scripts = new Dictionary();
+
+ _commandLine = new CommandLine();
+ }
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //----------------------------------------------------------------------
+
+ private var _commandLine:CommandLine;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // scripts
+ //----------------------------------
+
+ public var scripts:Dictionary;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // exec
+ //----------------------------------
+
+ public function exec(scriptName:String, params:Array = null):void
+ {
+ var script:String = scripts[scriptName];
+
+ if (params)
+ script = StringUtil.substitute(script, params);
+
+ var command:String, commands:Array = script.split("\n");
+
+ var n:int = commands.length - 1; // last line is always empty
+ for (var i:int = 0; i < n; i++)
+ {
+ command = commands[i];
+
+ trace("COMMAND: " + command);
+
+ _commandLine.exec(commands[i] + "\n", null);
+ }
+ }
+
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/CommandScript.as
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,60 @@
+package org.apache.flex.asjs
+{
+
+import flash.data.EncryptedLocalStore;
+import flash.utils.ByteArray;
+
+public class Utils
+{
+
+ //----------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //----------------------------------------------------------------------
+
+ private static const PATH:String = "Path";
+
+ //----------------------------------------------------------------------
+ //
+ // Class methods
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // readELS
+ //----------------------------------
+
+ public static function readPath(name:String):String
+ {
+ var elsValue:ByteArray = EncryptedLocalStore.getItem(name + PATH);
+ if (!elsValue)
+ return "";
+ else
+ return elsValue.readUTFBytes(elsValue.length);
+ }
+
+ //----------------------------------
+ // writeELS
+ //----------------------------------
+
+ public static function writePath(name:String, value:String):void
+ {
+ var data:ByteArray = new ByteArray();
+ data.writeUTFBytes(value);
+
+ EncryptedLocalStore.setItem(name + PATH, data);
+ }
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //----------------------------------------------------------------------
+
+ public function Utils() {}
+
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/Utils.as
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml Mon Jan 21 10:05:53 2013
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:s="library://ns.adobe.com/flex/spark"
+ xmlns:mx="library://ns.adobe.com/flex/mx">
+
+ <fx:Script><![CDATA[
+
+ import org.apache.flex.asjs.Utils;
+ import org.apache.flex.asjs.enums.BrowseTypes;
+
+ //----------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // browseType
+ //----------------------------------
+
+ private var _browseType:BrowseTypes = BrowseTypes.BROWSE_DIR;
+
+ public function get browseType():BrowseTypes
+ {
+ return _browseType;
+ }
+
+ public function set browseType(value:BrowseTypes):void
+ {
+ _browseType = value;
+ }
+
+ //----------------------------------
+ // hint
+ //----------------------------------
+
+ private var _hint:String;
+
+ [Bindable]
+ public function get hint():String
+ {
+ return _hint;
+ }
+
+ public function set hint(value:String):void
+ {
+ _hint = value;
+ }
+
+ //----------------------------------
+ // instruction
+ //----------------------------------
+
+ private var _instruction:String;
+
+ [Bindable]
+ public function get instruction():String
+ {
+ return _instruction;
+ }
+
+ public function set instruction(value:String):void
+ {
+ _instruction = value;
+ }
+
+ //----------------------------------
+ // path
+ //----------------------------------
+
+ private var _path:String;
+
+ [Bindable]
+ public function get path():String
+ {
+ return _path;
+ }
+
+ public function set path(value:String):void
+ {
+ _path = value;
+ }
+
+ //----------------------------------
+ // pathName
+ //----------------------------------
+
+ public var pathName:String;
+
+
+
+ //----------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //----------------------------------------------------------------------
+
+ //----------------------------------
+ // select_clickHandler
+ //----------------------------------
+
+ protected function select_clickHandler(event:MouseEvent):void
+ {
+ var file:File = new File();
+ file.addEventListener(Event.SELECT, select_completeHandler);
+
+ if (browseType == BrowseTypes.BROWSE_DIR)
+ file.browseForDirectory("Select the " + pathName.toUpperCase() + " directory");
+ else
+ file.browse();
+ }
+
+ //----------------------------------
+ // select_completeHandler
+ //----------------------------------
+
+ protected function select_completeHandler(event:Event):void
+ {
+ if (event.target is File)
+ path = File(event.target).nativePath;
+
+ Utils.writePath(pathName, path);
+ }
+
+ ]]></fx:Script>
+
+ <s:layout>
+ <s:VerticalLayout/>
+ </s:layout>
+
+ <fx:Declarations />
+
+ <fx:Binding source="path" destination="tiSelect.text" twoWay="true" />
+
+ <s:Label text="{instruction}"/>
+
+ <s:HGroup width="100%">
+ <s:TextInput id="tiSelect"
+ width="100%"
+ prompt="{hint}"
+ focusOut="select_completeHandler(event)"/>
+
+ <s:Button label="Select..."
+ right="0"
+ click="select_clickHandler(event)" />
+ </s:HGroup>
+
+</s:Group>
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/components/PathSelectionBox.mxml
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,50 @@
+package org.apache.flex.asjs.enums
+{
+public class BrowseTypes
+{
+
+ //----------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //----------------------------------------------------------------------
+
+ public static const BROWSE_DIR:BrowseTypes = new BrowseTypes("dir");
+ public static const BROWSE_FILE:BrowseTypes = new BrowseTypes("file");
+
+ //----------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //----------------------------------------------------------------------
+
+ public function BrowseTypes(stringValue:String)
+ {
+ this.stringValue = stringValue;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ private var stringValue:String;
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // toString
+ //----------------------------------
+
+ public function toString():String
+ {
+ return stringValue;
+ }
+
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/BrowseTypes.as
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,29 @@
+package org.apache.flex.asjs.enums
+{
+public class ScriptNames
+{
+
+ //----------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //----------------------------------------------------------------------
+
+ public static const _TEST:String = "_test";
+
+ public static const BUILD_FLEXJS_UI:String = "buildFlexJSUI";
+
+ public static const COMPILE_FALCONJS:String = "compileFalconJS";
+
+ public static const COMPILE_FALCONJX:String = "compileFalconJx";
+
+ //----------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //----------------------------------------------------------------------
+
+ public function ScriptNames() {}
+
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/enums/ScriptNames.as
------------------------------------------------------------------------------
svn:eol-style = native
Added: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as
URL: http://svn.apache.org/viewvc/flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as?rev=1436251&view=auto
==============================================================================
--- flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as (added)
+++ flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as Mon Jan 21 10:05:53 2013
@@ -0,0 +1,7 @@
+package org.apache.flex.asjs.interfaces
+{
+public interface IExecutable
+{
+ function exec(command:String, params:Array = null):void;
+}
+}
\ No newline at end of file
Propchange: flex/asjs/branches/develop/publisher/src/org/apache/flex/asjs/interfaces/IExecutable.as
------------------------------------------------------------------------------
svn:eol-style = native