- LaunchUICommand run w/o dispatching messages - ToolPathValidator trigger resource changes - Refactored a bit git-svn-id: https://svn.apache.org/repos/asf/flex/whiteboard@1450334 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/SettingsContext.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/UIContext.mxml similarity index 92% rename from fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/SettingsContext.mxml rename to fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/UIContext.mxml index bf82bee..762429a 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/SettingsContext.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/application/config/UIContext.mxml
@@ -23,7 +23,11 @@ <parsley:DynamicObject type="{GeneralMenu}"/> <parsley:MapCommand type="{MenuActionCommand}"/> - <parsley:MapCommand type="{LaunchUICommand}"/> + + <parsley:CommandFactory id="launchUICommand"> + <parsley:Command type="{LaunchUICommand}"/> + </parsley:CommandFactory> + <parsley:MapCommand type="{ExitUICommand}"/> <menu:ApplicationMenuPM/>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/ExitUICommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/ExitUICommand.as index 241ce09..9a03db4 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/ExitUICommand.as +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/ExitUICommand.as
@@ -9,14 +9,14 @@ import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.CommandCallBackError; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.CommandCallBackResult; import org.apache.flex.utilities.developerToolSuite.infrastructure.message.ApplicationExitReadyMessage; - import org.apache.flex.utilities.developerToolSuite.infrastructure.message.RequestExitApplicationMessage; + import org.apache.flex.utilities.developerToolSuite.infrastructure.message.ExitApplicationMessage; public class ExitUICommand extends AbstractDBCommand { - private var _msg:RequestExitApplicationMessage; + private var _msg:ExitApplicationMessage; private var _terminateCommand:Function; - public function execute(msg:RequestExitApplicationMessage):void { + public function execute(msg:ExitApplicationMessage):void { log.debug("Executing Command with message: " + ObjectUtil.toString(msg)); this._msg = msg; executeAsync();
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/LaunchUICommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/LaunchUICommand.as index f72559d..9ace7d8 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/LaunchUICommand.as +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/command/LaunchUICommand.as
@@ -1,14 +1,15 @@ package org.apache.flex.utilities.developerToolSuite.infrastructure.command { import mx.logging.ILogger; + import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil; import org.apache.flex.utilities.developerToolSuite.executor.domain.ISettingsModel; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.CommandCallBack; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateAntPathMessage; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateCygwinPathMessage; + import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateGitPathMessage; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateJavaPathMessage; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateMavenPathMessage; - import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil; - import org.apache.flex.utilities.developerToolSuite.infrastructure.message.LaunchUIMessage; + import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateSvnPathMessage; import org.apache.flex.utilities.developerToolSuite.presentation.graphic.settings.SettingsWindow; import org.spicefactory.parsley.core.context.Context; @@ -31,29 +32,33 @@ private var _antCompleted:Boolean; private var _mavenCompleted:Boolean; private var _cygwinCompleted:Boolean; + private var _svnCompleted:Boolean; + private var _gitCompleted:Boolean; - public function execute(msg:LaunchUIMessage):void { + public function execute():void { dispatch(new ValidateJavaPathMessage(settings.JAVA_HOME)); dispatch(new ValidateAntPathMessage(settings.ANT_HOME)); dispatch(new ValidateMavenPathMessage(settings.MAVEN_HOME)); dispatch(new ValidateCygwinPathMessage(settings.CYGWIN_HOME)); + dispatch(new ValidateSvnPathMessage()); + dispatch(new ValidateGitPathMessage()); } [CommandComplete] - public function validateJavaPathCommandError(trigger:ValidateJavaPathMessage):void { + public function validateJavaPathCommandCompleted(trigger:ValidateJavaPathMessage):void { _javaCompleted = true; checkValidationsCompleted(); } [CommandError] - public function validateJavaPathCommand(trigger:ValidateJavaPathMessage):void { + public function validateJavaPathCommandError(trigger:ValidateJavaPathMessage):void { _javaCompleted = true; checkValidationsCompleted(); } [CommandComplete] - public function validateAntPathCommand(trigger:ValidateAntPathMessage):void { + public function validateAntPathCommandCompleted(trigger:ValidateAntPathMessage):void { _antCompleted = true; checkValidationsCompleted(); } @@ -65,7 +70,7 @@ } [CommandComplete] - public function validateMavenPathCommand(trigger:ValidateMavenPathMessage):void { + public function validateMavenPathCommandCompleted(trigger:ValidateMavenPathMessage):void { _mavenCompleted = true; checkValidationsCompleted(); } @@ -77,7 +82,7 @@ } [CommandComplete] - public function validateCygwinPathCommand(trigger:ValidateCygwinPathMessage):void { + public function validateCygwinPathCommandCompleted(trigger:ValidateCygwinPathMessage):void { _cygwinCompleted = true; checkValidationsCompleted(); } @@ -88,20 +93,46 @@ checkValidationsCompleted(); } + [CommandComplete] + public function validateSvnPathCommandCompleted(trigger:ValidateSvnPathMessage):void { + _svnCompleted = true; + checkValidationsCompleted(); + } + + [CommandError] + public function validateSvnPathCommandError(fault:Error, trigger:ValidateSvnPathMessage):void { + _svnCompleted = true; + checkValidationsCompleted(); + } + + [CommandComplete] + public function validateGitPathCommandCompleted(trigger:ValidateGitPathMessage):void { + _gitCompleted = true; + checkValidationsCompleted(); + } + + [CommandError] + public function validateGiyPathCommandError(fault:Error, trigger:ValidateGitPathMessage):void { + _gitCompleted = true; + checkValidationsCompleted(); + } + private function checkValidationsCompleted():void { - if (_antCompleted && _mavenCompleted && _javaCompleted && _cygwinCompleted) + if (_antCompleted && _mavenCompleted && _javaCompleted && _cygwinCompleted && _svnCompleted && _gitCompleted) { launchUI(); + } } private function launchUI():void { + callback(CommandCallBack.DEFAULT_RESULT); + with (settings) { - if (javaEnabled && antEnabled && mavenEnabled && cygwinEnabled) { + if (javaEnabled && antEnabled && mavenEnabled && cygwinEnabled && (_svnCompleted || _gitCompleted)) { // open last project or create project } else { SettingsWindow.show(context); } } - callback(CommandCallBack.DEFAULT_RESULT); } } }
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/ModalWindowEvent.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/SettingsWindowEvent.as similarity index 70% rename from fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/ModalWindowEvent.as rename to fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/SettingsWindowEvent.as index f568e52..e14d13a 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/ModalWindowEvent.as +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/event/SettingsWindowEvent.as
@@ -1,12 +1,12 @@ package org.apache.flex.utilities.developerToolSuite.infrastructure.event { import flash.events.Event; - public class ModalWindowEvent extends Event { + public class SettingsWindowEvent extends Event { public static const OPENED:String = "opened"; public static const CLOSED:String = "closed"; - public function ModalWindowEvent(type:String) { + public function SettingsWindowEvent(type:String) { super(type); } }
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/ExitApplicationMessage.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/ExitApplicationMessage.as new file mode 100644 index 0000000..0baaefc --- /dev/null +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/ExitApplicationMessage.as
@@ -0,0 +1,9 @@ +package org.apache.flex.utilities.developerToolSuite.infrastructure.message { + public class ExitApplicationMessage { + public var settings:Object; + + public function ExitApplicationMessage(settings:Object) { + this.settings = settings; + } + } +}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/LaunchUIMessage.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/LaunchUIMessage.as deleted file mode 100644 index 16be3da..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/LaunchUIMessage.as +++ /dev/null
@@ -1,6 +0,0 @@ -package org.apache.flex.utilities.developerToolSuite.infrastructure.message { - public class LaunchUIMessage { - public function LaunchUIMessage() { - } - } -}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/RequestExitApplicationMessage.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/RequestExitApplicationMessage.as deleted file mode 100644 index 1ded05a..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/infrastructure/message/RequestExitApplicationMessage.as +++ /dev/null
@@ -1,11 +0,0 @@ -package org.apache.flex.utilities.developerToolSuite.infrastructure.message { - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.SaveSettingsMessage; - - public class RequestExitApplicationMessage{ - public var settings:Object; - - public function RequestExitApplicationMessage(settings:Object) { - this.settings = settings; - } - } -}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/validator/ToolPathValidator.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/validator/ToolPathValidator.as index 64ba2f9..fce4508 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/validator/ToolPathValidator.as +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/validator/ToolPathValidator.as
@@ -31,21 +31,28 @@ //doValidation method should accept an Object type parameter override protected function doValidation(value:Object):Array { // create an array to return. - var ValidatorResults:Array = new Array(); + var validatorResults:Array = []; // Call base class doValidation(). - ValidatorResults = super.doValidation(value); + validatorResults = super.doValidation(value); // Return if there are errors. - if (ValidatorResults.length > 0) { - return ValidatorResults; + if (validatorResults.length > 0) { + return validatorResults; } if (Boolean(value) == false) { - ValidatorResults.push(new ValidationResult(true, null, "Tool Home Path Error", + validatorResults.push(new ValidationResult(true, null, "Tool Home Path Error", resourceManager.getString('SettingsWindow', errorStringResourceString))); - return ValidatorResults; + return validatorResults; } - return ValidatorResults; + return validatorResults; + } + + override protected function resourcesChanged():void { + super.resourcesChanged(); + + // Re-validate to get the localized error string displayed correctly. + validate(); } } }
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/config/SettingsContext.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/config/SettingsContext.mxml deleted file mode 100644 index 0aafcd3..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/config/SettingsContext.mxml +++ /dev/null
@@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<fx:Object xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:parsley="http://www.spicefactory.org/parsley" - xmlns:menu="org.apache.flex.utilities.developerToolSuite.presentation.behavior.menu.*"> - - <fx:Declarations> - <parsley:DynamicObject type="{GeneralMenu}"/> - - <parsley:MapCommand type="{MenuActionCommand}"/> - <parsley:MapCommand type="{LaunchUICommand}"/> - - <menu:ApplicationMenuPM/> - </fx:Declarations> - - <fx:Script><![CDATA[ - import org.apache.flex.utilities.developerToolSuite.infrastructure.command.LaunchUICommand; - import org.apache.flex.utilities.developerToolSuite.infrastructure.command.MenuActionCommand; - import org.apache.flex.utilities.developerToolSuite.infrastructure.command.LaunchUICommand; - import org.apache.flex.utilities.developerToolSuite.presentation.graphic.menu.GeneralMenu; - ]]></fx:Script> -</fx:Object>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/menu/ApplicationMenu.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/menu/ApplicationMenu.mxml index 6622a47..3e8d103 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/menu/ApplicationMenu.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/menu/ApplicationMenu.mxml
@@ -16,9 +16,7 @@ limitations under the License. --> <mx:FlexNativeMenu 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:parsley="http://www.spicefactory.org/parsley"> + xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script><![CDATA[ import mx.events.FlexNativeMenuEvent; @@ -40,14 +38,14 @@ labelFunction = model.getMenuItemLabel; dataProvider = model.dataProvider; addEventListener(FlexNativeMenuEvent.ITEM_CLICK, menu_itemClickHandler); - ResourceManager.getInstance().addEventListener(Event.CHANGE, localeChangeHandler); + ResourceManager.getInstance().addEventListener(Event.CHANGE, resourceManager_changeHandler); } private function menu_itemClickHandler(event:FlexNativeMenuEvent):void { dispatch(new MenuActionMessage(event.item)); } - private function localeChangeHandler(event:Event):void { + private function resourceManager_changeHandler(event:Event):void { dataProvider = model.dataProvider; } ]]></fx:Script>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/SettingsWindow.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/SettingsWindow.mxml index e819451..bd89131 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/SettingsWindow.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/SettingsWindow.mxml
@@ -31,8 +31,8 @@ </fx:Declarations> <fx:Metadata> - [Event(name="opened", type="org.apache.flex.utilities.developerToolSuite.infrastructure.event.ModalWindowEvent")] - [Event(name="closed", type="org.apache.flex.utilities.developerToolSuite.infrastructure.event.ModalWindowEvent")] + [Event(name="opened", type="org.apache.flex.utilities.developerToolSuite.infrastructure.event.SettingsWindowEvent")] + [Event(name="closed", type="org.apache.flex.utilities.developerToolSuite.infrastructure.event.SettingsWindowEvent")] [ManagedEvents("opened,closed")] </fx:Metadata> @@ -62,7 +62,7 @@ import mx.events.ResizeEvent; import mx.managers.PopUpManager; - import org.apache.flex.utilities.developerToolSuite.infrastructure.event.ModalWindowEvent; + import org.apache.flex.utilities.developerToolSuite.infrastructure.event.SettingsWindowEvent; import org.spicefactory.parsley.core.context.Context; private static var __window:SettingsWindow; @@ -85,7 +85,7 @@ [Init] public function init():void { - dispatchEvent(new ModalWindowEvent(ModalWindowEvent.OPENED)); + dispatchEvent(new SettingsWindowEvent(SettingsWindowEvent.OPENED)); } private function addedToStageHandler(event:Event):void { @@ -102,7 +102,7 @@ private function closeWindow():void { PopUpManager.removePopUp(this); - dispatchEvent(new ModalWindowEvent(ModalWindowEvent.CLOSED)); + dispatchEvent(new SettingsWindowEvent(SettingsWindowEvent.CLOSED)); __window = null; } ]]></fx:Script>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/application/config/ExecutorContext.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/application/config/ExecutorContext.mxml index 76a65a0..f2c841f 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/application/config/ExecutorContext.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/application/config/ExecutorContext.mxml
@@ -18,8 +18,7 @@ <fx:Object xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:parsley="http://www.spicefactory.org/parsley" xmlns:database="org.apache.flex.utilities.developerToolSuite.executor.application.database.*" - xmlns:domain="org.apache.flex.utilities.developerToolSuite.executor.domain.*" - xmlns:nativeprocess="org.apache.flex.utilities.developerToolSuite.executor.application.nativeProcess.*"> + xmlns:domain="org.apache.flex.utilities.developerToolSuite.executor.domain.*"> <fx:Declarations> <database:ApplicationDB/>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/config/ExecutorContext.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/config/ExecutorContext.mxml deleted file mode 100644 index 01a443b..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/config/ExecutorContext.mxml +++ /dev/null
@@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<fx:Object xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:parsley="http://www.spicefactory.org/parsley" - xmlns:database="org.apache.flex.utilities.developerToolSuite.executor.infrastructure.database.*" - xmlns:domain="org.apache.flex.utilities.developerToolSuite.executor.domain.*" - xmlns:nativeprocess="org.apache.flex.utilities.developerToolSuite.executor.infrastructure.nativeProcess.*"> - - <fx:Declarations> - <database:ApplicationDB/> - - <parsley:MapCommand messageType="{InitApplicationMessage}"> - <parsley:CommandSequence> - <parsley:Command type="{InitDBCommand}"/> - <parsley:Command type="{GetEnvironmentVariablesCommand}"/> - <parsley:Command type="{GetSettingsFromDBCommand}"/> - </parsley:CommandSequence> - </parsley:MapCommand> - - - <parsley:MapCommand type="{ChangeLanguageCommand}"/> - <parsley:MapCommand type="{SaveSettingsCommand}"/> - <parsley:MapCommand type="{SaveSettingCommand}"/> - <parsley:MapCommand type="{ValidateJavaPathCommand}"/> - <parsley:MapCommand type="{ValidateAntPathCommand}"/> - <parsley:MapCommand type="{ValidateMavenPathCommand}"/> - <parsley:MapCommand type="{ValidateSvnPathCommand}"/> - <parsley:MapCommand type="{ValidateGitPathCommand}"/> - <parsley:MapCommand type="{ValidateCygwinPathCommand}"/> - - <domain:SettingModel id="applicationModel"/> - </fx:Declarations> - - <fx:Script><![CDATA[ - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ChangeLanguageCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.GetEnvironmentVariablesCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.GetSettingsFromDBCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.InitDBCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.SaveSettingCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.SaveSettingsCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateAntPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateCygwinPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateGitPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateJavaPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateMavenPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command.ValidateSvnPathCommand; - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.InitApplicationMessage; - ]]></fx:Script> -</fx:Object>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/database/ApplicationDB.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/database/ApplicationDB.as deleted file mode 100644 index 5aea330..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/database/ApplicationDB.as +++ /dev/null
@@ -1,80 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ -package org.apache.flex.utilities.developerToolSuite.executor.infrastructure.database { - import flash.data.SQLConnection; - import flash.data.SQLStatement; - import flash.events.SQLErrorEvent; - import flash.events.SQLEvent; - import flash.filesystem.File; - import flash.net.Responder; - - import mx.logging.ILogger; - import mx.utils.ObjectUtil; - - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.util.LogUtil; - - public class ApplicationDB { - - private static var LOG:ILogger = LogUtil.getLogger(ApplicationDB); - - public static const DATABASE_NAME:String = "DTSDB.db"; - private static var _conn:SQLConnection; - - public var DBReady:Boolean; - - public function ApplicationDB() { - } - - public function connect():void { - if (DBReady) { - return; - } - - LOG.debug("Connecting async DB: " + ApplicationDB.DATABASE_NAME); - _conn = new SQLConnection(); - - _conn.addEventListener(SQLEvent.OPEN, openHandler); - _conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); - - // The database file is in the application storage directory - var folder:File = File.applicationStorageDirectory; - var dbFile:File = folder.resolvePath(DATABASE_NAME); - - _conn.openAsync(dbFile); - } - - public function close():void { - LOG.debug("Closing async DB: " + ApplicationDB.DATABASE_NAME); - _conn.close(); - DBReady = false; - } - - private function openHandler(event:SQLEvent):void { - DBReady = true; - LOG.debug("the database was opened successfully"); - } - - private function errorHandler(event:SQLErrorEvent):void { - LOG.error("Error while opening the DB: " + ObjectUtil.toString(event.error)); - } - - public function executeSqlStatement(stmt:SQLStatement, responder:Responder):void { - stmt.sqlConnection = _conn; - stmt.execute(-1, responder); - } - } -}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/nativeProcess/NativeShellHelper.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/nativeProcess/NativeShellHelper.as deleted file mode 100644 index 74b12b9..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/nativeProcess/NativeShellHelper.as +++ /dev/null
@@ -1,217 +0,0 @@ -package org.apache.flex.utilities.developerToolSuite.executor.infrastructure.nativeProcess { - import flash.desktop.NativeProcess; - import flash.desktop.NativeProcessStartupInfo; - import flash.events.Event; - import flash.events.EventDispatcher; - import flash.events.IOErrorEvent; - import flash.events.NativeProcessExitEvent; - import flash.events.ProgressEvent; - import flash.filesystem.File; - import flash.system.Capabilities; - - import mx.logging.ILogger; - - import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.util.LogUtil; - - public class NativeShellHelper extends EventDispatcher { - - // Use trace during tests as AIR thru Maven doesn't support resource xml config files for logging. - private static var LOG:ILogger; - - private static var _gcLocker:GCLocker; - - private var _process:NativeProcess; - private var _isRunning:Boolean; - - private var _isLogEnabled:Boolean; - - public function NativeShellHelper() { - super(); - if (!LOG) { - LOG = LogUtil.getLogger(NativeShellHelper); - } - if (!_gcLocker) { - _gcLocker = new GCLocker(); - } - _process = new NativeProcess(); - } - - public function get process():NativeProcess { - return _process; - } - - public function get isRunning():Boolean { - return _isRunning; - } - - public function run(command:Vector.<String> = null, shell:String = null):void { - - if (_isRunning) { - throw new Error("NativeProcessHelper is currently busy"); - return; - } - _isRunning = true; - - //Avoid the garbage collection - _gcLocker.lock(this); - - if (!shell) { - shell = getShellPath(); - } - - LOG.debug("Executing: " + shell + " " + command.join(" ")); - - var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); - - var file:File = File.applicationDirectory.resolvePath(shell); - nativeProcessStartupInfo.executable = file; - nativeProcessStartupInfo.arguments = command; - - _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, dispatch2, false, 0, true); - _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, dispatch2, false, 0, true); - _process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, dispatch2, false, 0, true); - _process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, dispatch2, false, 0, true); - _process.addEventListener(NativeProcessExitEvent.EXIT, exitHandler, false, -100, true); - _process.start(nativeProcessStartupInfo); - } - - public function logMessages():void { - if (_isLogEnabled) { - return; - } - _isLogEnabled = true; - _process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, outputDataLogHandler, false, 0, true); - _process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, errorDataLogHandler, false, 0, true); - _process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, IOErrorLogHandler, false, 0, true); - _process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, IOErrorLogHandler, false, 0, true); - _process.addEventListener(NativeProcessExitEvent.EXIT, exitLogHandler, false, 0, true); - } - - private function errorDataLogHandler(event:ProgressEvent):void { - trace(_process.standardError.readUTFBytes(_process.standardError.bytesAvailable)); - //LOG.error(_process.standardError.readUTFBytes(_process.standardError.bytesAvailable)); - } - - private function exitLogHandler(event:NativeProcessExitEvent):void { - trace("Process exited with " + event.exitCode); - //LOG.info("Process exited with " + event.exitCode); - - } - - private function IOErrorLogHandler(event:IOErrorEvent):void { - trace(event.toString()); - //LOG.error(event.toString()); - } - - private function outputDataLogHandler(event:ProgressEvent):void { - var output:String = _process.standardOutput.readUTFBytes(_process.standardOutput.bytesAvailable); - trace("Output: " + output); - //LOG.info("Output: " + output); - } - - private function dispatch2(e:Event):void { - this.dispatchEvent(e); - } - - private function exitHandler(e:Event):void { - _gcLocker.release(this); - _process = null; - _isRunning = false; - this.dispatchEvent(e); - } - - public static function get OS():String { - var os:String; - - if (Capabilities.os.toLowerCase().indexOf("win") > -1) { - os = "win"; - } else if (Capabilities.os.toLowerCase().indexOf("mac") > -1) { - os = "mac"; - } else if (Capabilities.os.toLowerCase().indexOf("linux") > -1) { - os = "linux"; - } - - return os; - } - - public function get OS():String { - return NativeShellHelper.OS; - } - - public function getShellPath():String { - var shellPath:String; - - if (OS == "win") { - shellPath = "C:/Windows/System32/cmd.exe"; - } else if (OS == "mac") { - shellPath = "/Applications/Utilities/Terminal.app"; - } else if (OS == "linux") { - - var file:File; - try { - file = new File("/bin/bash"); - if (file.exists) { - shellPath = file.nativePath; - } - } catch (err:Error) { - } - ; - - if (!shellPath) { - try { - file = new File("/bin/bsh"); - if (file.exists) { - shellPath = file.nativePath; - } - } catch (err:Error) { - } - ; - } - - if (!shellPath) { - try { - file = new File("/bin/csh"); - if (file.exists) { - shellPath = file.nativePath; - } - } catch (err:Error) { - } - ; - } - } - if (!shellPath) { - throw new Error("Unsupported System"); - } - - return shellPath; - } - - public static function formatPath(path:String):String { - return path.replace(/\\/g, "/"); - } - - public function formatPath(path:String):String { - return NativeShellHelper.formatPath(path); - } - } -} -internal class GCLocker { - - private var _lockedRefs:Array; - - public function GCLocker() { - _lockedRefs = []; - } - - public function release(ref:*):void { - var i:int = _lockedRefs.indexOf(ref); - - if (i >= 0) { - _lockedRefs.splice(i, 1); - } - } - - public function lock(ref:*):void { - _lockedRefs[_lockedRefs.length] = ref; - } -}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/util/LogUtil.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/util/LogUtil.as deleted file mode 100644 index f529d60..0000000 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/util/LogUtil.as +++ /dev/null
@@ -1,13 +0,0 @@ -package org.apache.flex.utilities.developerToolSuite.executor.infrastructure.util { - import avmplus.getQualifiedClassName; - - import mx.logging.ILogger; - import mx.logging.Log; - - public class LogUtil { - public static function getLogger(category:*):ILogger { - var className:String = getQualifiedClassName(category).replace("::", "."); - return Log.getLogger(className); - } - } -}
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/ApplicationContext.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/ApplicationContext.mxml index 823299b..41f30e9 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/ApplicationContext.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/ApplicationContext.mxml
@@ -16,10 +16,7 @@ limitations under the License. --> <fx:Object xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:parsley="http://www.spicefactory.org/parsley" - xmlns:menu="org.apache.flex.utilities.developerToolSuite.presentation.behavior.menu.*" - xmlns:menuGraphic="org.apache.flex.utilities.developerToolSuite.presentation.graphic.menu.*" - xmlns:domain="org.apache.flex.utilities.developerToolSuite.executor.domain.*"> + xmlns:menuGraphic="org.apache.flex.utilities.developerToolSuite.presentation.graphic.menu.*"> <fx:Declarations> <menuGraphic:ApplicationMenu/>
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/MainApplication.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/MainApplication.mxml index 393be72..7858713 100644 --- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/MainApplication.mxml +++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.host-swf/src/main/flex/org/apache/flex/utilities/developerToolSuite/MainApplication.mxml
@@ -27,7 +27,7 @@ <parsley:ContextBuilder> <parsley:ViewSettings autowireComponents="true"/> <parsley:FlexConfig type="{ApplicationContext}"/> - <parsley:FlexConfig type="{SettingsContext}"/> + <parsley:FlexConfig type="{UIContext}"/> <parsley:FlexConfig type="{ExecutorContext}"/> </parsley:ContextBuilder> <parsley:Configure/> @@ -49,17 +49,24 @@ import mx.logging.targets.TraceTarget; import mx.managers.PopUpManager; - import org.apache.flex.utilities.developerToolSuite.application.config.SettingsContext; + import org.apache.flex.utilities.developerToolSuite.application.config.UIContext; import org.apache.flex.utilities.developerToolSuite.executor.application.config.ExecutorContext; import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil; import org.apache.flex.utilities.developerToolSuite.executor.domain.ISettingsModel; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ApplicationReadyMessage; import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.InitApplicationMessage; - import org.apache.flex.utilities.developerToolSuite.infrastructure.event.ModalWindowEvent; + import org.apache.flex.utilities.developerToolSuite.infrastructure.event.SettingsWindowEvent; import org.apache.flex.utilities.developerToolSuite.infrastructure.message.ApplicationExitReadyMessage; - import org.apache.flex.utilities.developerToolSuite.infrastructure.message.LaunchUIMessage; - import org.apache.flex.utilities.developerToolSuite.infrastructure.message.RequestExitApplicationMessage; + import org.apache.flex.utilities.developerToolSuite.infrastructure.message.ExitApplicationMessage; import org.apache.flex.utilities.developerToolSuite.presentation.graphic.menu.ApplicationMenu; + import org.spicefactory.parsley.core.command.ManagedCommandFactory; + import org.spicefactory.parsley.core.context.Context; + + [Inject] + public var context:Context; + + [Inject] + public var launchUICommand:ManagedCommandFactory; [Inject] [Bindable] @@ -106,16 +113,16 @@ LogUtil.getLogger(this).info('Application ready'); - dispatch(new LaunchUIMessage()); + launchUICommand.newInstance().execute(); } [MessageHandler(selector='opened')] - public function modalWindowOpenedHandler(event:ModalWindowEvent):void { + public function settingsWindowOpenedHandler(event:SettingsWindowEvent):void { menu = null; } [MessageHandler(selector='closed')] - public function modalWindowClosedHandler(event:ModalWindowEvent):void { + public function settingsWindowClosedHandler(event:SettingsWindowEvent):void { menu = applicationMenu; } @@ -151,7 +158,7 @@ settingsToSave.appBounds = appBounds.x + "," + appBounds.y + "," + appBounds.width + "," + appBounds.height; settingsToSave.appDisplayState = nativeWindow.displayState; - dispatch(new RequestExitApplicationMessage(settingsToSave)); + dispatch(new ExitApplicationMessage(settingsToSave)); } [MessageHandler]