- added a progress bar for items to validate
- finished added svn + git as items to validate

git-svn-id: https://svn.apache.org/repos/asf/flex/whiteboard@1451080 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/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 9ace7d8..9cd8ae6 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,8 +1,10 @@
 package org.apache.flex.utilities.developerToolSuite.infrastructure.command {

     import mx.logging.ILogger;

+    import mx.resources.ResourceManager;

 

     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.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     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;

@@ -21,7 +23,7 @@
         public var context:Context;

 

         [Inject]

-        public var settings:ISettingsModel;

+        public var settings:SettingModel;

 

         [MessageDispatcher]

         public var dispatch:Function;

@@ -35,8 +37,18 @@
         private var _svnCompleted:Boolean;

         private var _gitCompleted:Boolean;

 

+        private var _progress:SettingsValidationProgressModel;

+

         public function execute():void {

 

+            _progress = settings.validationInProgress as SettingsValidationProgressModel;

+            _progress.isStarted = true;

+            _progress.nbSteps = 6;

+            _progress.currentStepLabel = "VALIDATING_JAVA_HOME";

+            _progress.currentStep = 1;

+

+            settings.validationInProgress = _progress;

+

             dispatch(new ValidateJavaPathMessage(settings.JAVA_HOME));

             dispatch(new ValidateAntPathMessage(settings.ANT_HOME));

             dispatch(new ValidateMavenPathMessage(settings.MAVEN_HOME));

@@ -48,60 +60,80 @@
         [CommandComplete]

         public function validateJavaPathCommandCompleted(trigger:ValidateJavaPathMessage):void {

             _javaCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_ANT_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandError]

         public function validateJavaPathCommandError(trigger:ValidateJavaPathMessage):void {

             _javaCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_ANT_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandComplete]

         public function validateAntPathCommandCompleted(trigger:ValidateAntPathMessage):void {

             _antCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_MAVEN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandError]

         public function validateAntPathCommandError(trigger:ValidateAntPathMessage):void {

             _antCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_MAVEN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandComplete]

         public function validateMavenPathCommandCompleted(trigger:ValidateMavenPathMessage):void {

             _mavenCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_CYGWIN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandError]

         public function validateMavenPathCommandError(fault:Error, trigger:ValidateMavenPathMessage):void {

             _mavenCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_CYGWIN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandComplete]

         public function validateCygwinPathCommandCompleted(trigger:ValidateCygwinPathMessage):void {

             _cygwinCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_SVN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandError]

         public function validateCygwinPathCommandError(fault:Error, trigger:ValidateCygwinPathMessage):void {

             _cygwinCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_SVN_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandComplete]

         public function validateSvnPathCommandCompleted(trigger:ValidateSvnPathMessage):void {

             _svnCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_GIT_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

         [CommandError]

         public function validateSvnPathCommandError(fault:Error, trigger:ValidateSvnPathMessage):void {

             _svnCompleted = true;

+            _progress.currentStepLabel = "VALIDATING_GIT_HOME";

+            _progress.currentStep += 1;

             checkValidationsCompleted();

         }

 

@@ -119,6 +151,7 @@
 

         private function checkValidationsCompleted():void {

             if (_antCompleted && _mavenCompleted && _javaCompleted && _cygwinCompleted && _svnCompleted && _gitCompleted) {

+                _progress.isStarted = false;

                 launchUI();

             }

         }

@@ -127,7 +160,7 @@
             callback(CommandCallBack.DEFAULT_RESULT);

 

             with (settings) {

-                if (javaEnabled && antEnabled && mavenEnabled && cygwinEnabled && (_svnCompleted || _gitCompleted)) {

+                if (javaEnabled && antEnabled && mavenEnabled && cygwinEnabled && (svnEnabled || gitEnabled)) {

                     // open last project or create project

                 } else {

                     SettingsWindow.show(context);

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/KeepCenteredBehavior.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/KeepCenteredBehavior.as
new file mode 100644
index 0000000..b69d79e
--- /dev/null
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/KeepCenteredBehavior.as
@@ -0,0 +1,44 @@
+package org.apache.flex.utilities.developerToolSuite.presentation.behavior.setting {

+    import com.adobe.cairngorm.popup.PopUpBase;

+    import com.adobe.cairngorm.popup.PopUpEvent;

+

+    import flash.display.DisplayObject;

+

+    import flash.events.Event;

+

+    import mx.core.FlexGlobals;

+

+    import mx.core.IFlexDisplayObject;

+

+    public class KeepCenteredBehavior extends PlayEffectsBehavior {

+        private var popup:IFlexDisplayObject;

+

+        private var base:PopUpBase;

+

+        override public function apply(base:PopUpBase):void {

+            super.apply(base);

+            this.base = base;

+            base.addEventListener(PopUpEvent.OPENED, onOpened);

+        }

+

+        private function onOpened(event:PopUpEvent):void {

+            popup = event.popup;

+            popup.addEventListener(Event.RESIZE, onResize);

+            popup.stage.addEventListener(Event.RESIZE, onResize, false, 0, true);

+            base.addEventListener(PopUpEvent.CLOSING, onClosing);

+        }

+

+        private function onResize(event:Event):void {

+            popup.x = (popup.stage.width - popup.width) / 2;

+            popup.y = (popup.stage.height - popup.height) / 2;

+        }

+

+        private function onClosing(event:Event):void {

+            base.removeEventListener(PopUpEvent.CLOSING, onClosing);

+            popup.removeEventListener(Event.RESIZE, onResize);

+            if (popup.stage) {

+                popup.stage.removeEventListener(Event.RESIZE, onResize);

+            }

+        }

+    }

+}

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/PlayEffectsBehavior.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/PlayEffectsBehavior.as
new file mode 100644
index 0000000..1f9f3be
--- /dev/null
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/behavior/setting/PlayEffectsBehavior.as
@@ -0,0 +1,89 @@
+package org.apache.flex.utilities.developerToolSuite.presentation.behavior.setting {

+    import com.adobe.cairngorm.popup.IPopUpBehavior;

+    import com.adobe.cairngorm.popup.PopUpBase;

+    import com.adobe.cairngorm.popup.PopUpEvent;

+

+    import mx.core.UIComponent;

+    import mx.effects.Effect;

+    import mx.events.EffectEvent;

+    import mx.events.FlexEvent;

+

+    /**

+     * Plays effects when a popup opens and closes. The effects need to be

+     * specified with the <code>openEffect</code> and <code>closeEffect</code>

+     * properties.

+     */

+    public class PlayEffectsBehavior implements IPopUpBehavior {

+        //------------------------------------------------------------------------

+        //

+        //  Private Variables

+        //

+        //------------------------------------------------------------------------

+

+        private var closingEvent:PopUpEvent;

+

+        //------------------------------------------------------------------------

+        //

+        //  Public Properties

+        //

+        //------------------------------------------------------------------------

+

+        /** The effect to play as the popup opens. */

+        public var openEffect:Effect;

+

+        /** The effect to play as the popup closes. */

+        public var closeEffect:Effect;

+

+        private var popup:PopUpBase;

+

+        //------------------------------------------------------------------------

+        //

+        //  Implementation : IPopUpBehavior

+        //

+        //------------------------------------------------------------------------

+

+        public function apply(base:PopUpBase):void {

+            this.popup = base;

+

+            base.addEventListener(PopUpEvent.OPENING, onOpening);

+            base.addEventListener(PopUpEvent.CLOSING, onClosing);

+        }

+

+        //------------------------------------------------------------------------

+        //

+        //  Event Listeners

+        //

+        //------------------------------------------------------------------------

+

+        private function onOpening(event:PopUpEvent):void {

+            UIComponent(event.popup).callLater(handleStart, [ event ]);

+        }

+

+        private function handleStart(event:PopUpEvent):void {

+            popup.dispatchEvent(new FlexEvent(FlexEvent.SHOW));

+            if (openEffect) {

+                openEffect.play([ event.popup ]);

+            }

+        }

+

+        private function onClosing(event:PopUpEvent):void {

+            if (closeEffect) {

+                closingEvent = event;

+                closingEvent.suspendClosure();

+

+                closeEffect.startDelay = 100;

+                closeEffect.play([ event.popup ]);

+                closeEffect.addEventListener(EffectEvent.EFFECT_END, onCloseEffectEnd);

+            }

+        }

+

+        private function onCloseEffectEnd(event:EffectEvent):void {

+            popup.dispatchEvent(new FlexEvent(FlexEvent.HIDE));

+

+            closeEffect.removeEventListener(EffectEvent.EFFECT_END, onCloseEffectEnd);

+

+            closingEvent.resumeClosure();

+            closingEvent = null;

+        }

+    }

+}

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 bd89131..ef28b84 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
@@ -53,6 +53,8 @@
         <s:layout>

             <s:HorizontalLayout horizontalAlign="center" paddingBottom="16"/>

         </s:layout>

+        <s:Button label="{resourceManager.getString('SettingsWindow', 'REFRESH_ALL')}"

+                  click="refreshAll()"/>

         <s:Button label="{resourceManager.getString('SettingsWindow', 'CLOSE')}"

                   click="closeWindow()"/>

     </s:Group>

@@ -63,6 +65,7 @@
         import mx.managers.PopUpManager;

 

         import org.apache.flex.utilities.developerToolSuite.infrastructure.event.SettingsWindowEvent;

+        import org.spicefactory.parsley.core.command.ManagedCommandFactory;

         import org.spicefactory.parsley.core.context.Context;

 

         private static var __window:SettingsWindow;

@@ -83,6 +86,9 @@
         [Inject]

         public var context:Context;

 

+        [Inject]

+        public var launchUICommand:ManagedCommandFactory;

+

         [Init]

         public function init():void {

             dispatchEvent(new SettingsWindowEvent(SettingsWindowEvent.OPENED));

@@ -105,5 +111,9 @@
             dispatchEvent(new SettingsWindowEvent(SettingsWindowEvent.CLOSED));

             __window = null;

         }

+

+        private function refreshAll():void {

+            launchUICommand.newInstance().execute();

+        }

         ]]></fx:Script>

 </s:TitleWindow>

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/ToolHomeFormItem.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/ToolHomeFormItem.mxml
index 3d10df1..4a03eb9 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/ToolHomeFormItem.mxml
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/ToolHomeFormItem.mxml
@@ -88,7 +88,7 @@
 

         private function creationCompleteHandler(event:FlexEvent):void {

             validator.validate();

-            dispatch(new validateToolMessageClass(propertyValue));

+            //dispatch(new validateToolMessageClass(propertyValue));

         }

 

         private function browseButton_clickHandler(event:MouseEvent):void {

@@ -120,7 +120,7 @@
             _installationPathValidated = value;

             validator.validate();

 

-            if (_installationPathValidated) {

+            if (_installationPathValidated && toolHomeLocation.text) {

                 dispatch(new SaveSettingMessage(propertyName, toolHomeLocation.text));

             }

         }

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/VCSFormItem.mxml b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/VCSFormItem.mxml
index 074170c..1d338d5 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/VCSFormItem.mxml
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.component-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/presentation/graphic/settings/formItem/VCSFormItem.mxml
@@ -36,6 +36,8 @@
         </s:VGroup>

     </s:helpContent>

     <fx:Script><![CDATA[

+        import flash.filesystem.File;

+

         import mx.events.FlexEvent;

 

         import org.apache.flex.utilities.developerToolSuite.presentation.graphic.Asset;

@@ -49,7 +51,7 @@
         [Bindable]

         public var helpLabelResourcesString:String;

         [Bindable]

-        public var helpUrlText:String

+        public var helpUrlText:String;

         [Bindable]

         public var helpUrl:String;

         [Bindable]

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsModel.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsModel.as
index fd811b9..90f9818 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsModel.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsModel.as
@@ -39,5 +39,7 @@
         function get svnEnabled():Boolean;

 

         function get gitEnabled():Boolean;

+

+        function get validationInProgress():ISettingsValidationInProgressModel;

     }

 }

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsValidationInProgressModel.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsValidationInProgressModel.as
new file mode 100644
index 0000000..97254cb
--- /dev/null
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/ISettingsValidationInProgressModel.as
@@ -0,0 +1,12 @@
+package org.apache.flex.utilities.developerToolSuite.executor.domain {

+

+    public interface ISettingsValidationInProgressModel {

+        function get isStarted():Boolean;

+

+        function get nbSteps():uint;

+

+        function get currentStep():uint;

+

+        function get currentStepLabel():String;

+    }

+}

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingModel.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingModel.as
index 0d472d5..6722d60 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingModel.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingModel.as
@@ -44,6 +44,11 @@
 

         private var _appBounds:String;

         private var _appDisplayState:String;

+        private var _validationInProgress:ISettingsValidationInProgressModel;

+

+        function SettingModel() {

+            _validationInProgress = new SettingsValidationProgressModel();

+        }

 

         public function get availableLanguages():ArrayCollection {

             return new ArrayCollection(LocaleUtil.AVAILABLE_LANGUAGES);

@@ -187,5 +192,14 @@
         public function set appDisplayState(value:String):void {

             _appDisplayState = value;

         }

+

+        public function get validationInProgress():ISettingsValidationInProgressModel {

+            return _validationInProgress;

+        }

+

+        [Bindable]

+        public function set validationInProgress(value:ISettingsValidationInProgressModel):void {

+            _validationInProgress = value;

+        }

     }

 }

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingsValidationProgressModel.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingsValidationProgressModel.as
new file mode 100644
index 0000000..2753e33
--- /dev/null
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/domain/SettingsValidationProgressModel.as
@@ -0,0 +1,73 @@
+package org.apache.flex.utilities.developerToolSuite.executor.domain {

+    import flash.events.Event;

+    import flash.events.EventDispatcher;

+    import flash.events.ProgressEvent;

+

+    public class SettingsValidationProgressModel extends EventDispatcher implements ISettingsValidationInProgressModel {

+

+        private var _isStarted:Boolean;

+        private var _nbSteps:uint;

+        private var _currentStep:uint;

+        private var _currentStepLabel:String = "";

+

+        public function get isStarted():Boolean {

+            return _isStarted;

+        }

+

+        public function get nbSteps():uint {

+            return _nbSteps;

+        }

+

+        public function get currentStep():uint {

+            return _currentStep;

+        }

+

+        public function get currentStepLabel():String {

+            return _currentStepLabel;

+        }

+

+        [Bindable]

+        public function set isStarted(value:Boolean):void {

+            _isStarted = value;

+        }

+

+        public function set nbSteps(value:uint):void {

+

+            var evt:Event;

+

+            if (value != _nbSteps && value != _currentStep) {

+                evt = new ProgressEvent(ProgressEvent.PROGRESS);

+                ProgressEvent(evt).bytesLoaded = _currentStep;

+                ProgressEvent(evt).bytesTotal = value;

+            } else {

+                evt = new Event(Event.COMPLETE);

+            }

+

+            _nbSteps = value;

+

+            dispatchEvent(evt);

+        }

+

+        public function set currentStep(value:uint):void {

+

+            var evt:Event;

+

+            if (value != _currentStep && value != _nbSteps) {

+                evt = new ProgressEvent(ProgressEvent.PROGRESS);

+                ProgressEvent(evt).bytesLoaded = value;

+                ProgressEvent(evt).bytesTotal = _nbSteps;

+            } else {

+                evt = new Event(Event.COMPLETE);

+            }

+

+            _currentStep = value;

+

+            dispatchEvent(evt);

+        }

+

+        [Bindable]

+        public function set currentStepLabel(value:String):void {

+            _currentStepLabel = value;

+        }

+    }

+}

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/SaveSettingsCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/SaveSettingsCommand.as
index 7d784fd..3273963 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/SaveSettingsCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/SaveSettingsCommand.as
@@ -17,6 +17,8 @@
 package org.apache.flex.utilities.developerToolSuite.executor.infrastructure.command {

     import mx.utils.ObjectUtil;

 

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.ISettingsValidationInProgressModel;

+

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.SaveSettingsMessage;

     import org.spicefactory.lib.reflect.ClassInfo;

     import org.spicefactory.lib.reflect.Property;

@@ -36,7 +38,8 @@
             sql = "";

             for (var i:uint=0; i < classInfo.getProperties().length; i++) {

                 var property:Property = classInfo.getProperties()[i] as Property;

-                sql += "UPDATE setting SET value='" + _msg.settings[property.name] + "' WHERE name='" + property.name + "';";

+                if (!(property.type is ISettingsValidationInProgressModel))

+                    sql += "UPDATE setting SET value='" + _msg.settings[property.name] + "' WHERE name='" + property.name + "';";

             }

 

             super.prepareSql();

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateAntPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateAntPathCommand.as
index edaba60..b40349d 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateAntPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateAntPathCommand.as
@@ -22,6 +22,7 @@
     import mx.utils.ObjectUtil;

 

     import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateAntPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

 

@@ -39,7 +40,9 @@
         public function execute(msg:ValidateAntPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

             _msg = msg;

+

             settings.antEnabled = false;

+

             executeCommand();

         }

 

@@ -86,6 +89,7 @@
             }

 

             _done = true;

+

             if (output.indexOf("Apache Ant(TM) version") > -1) {

                 settings.antEnabled = true;

                 result(CommandCallBack.DEFAULT_RESULT);

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateCygwinPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateCygwinPathCommand.as
index bc22f4f..82127eb 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateCygwinPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateCygwinPathCommand.as
@@ -21,6 +21,7 @@
     import mx.utils.ObjectUtil;

 

     import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateCygwinPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.nativeProcess.NativeShellHelper;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

@@ -39,7 +40,9 @@
         public function execute(msg:ValidateCygwinPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

             _msg = msg;

+

             settings.cygwinEnabled = false;

+

             executeCommand();

         }

 

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateGitPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateGitPathCommand.as
index 331b40c..cb0b88c 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateGitPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateGitPathCommand.as
@@ -21,6 +21,7 @@
     import mx.utils.ObjectUtil;

 

     import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateGitPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

 

@@ -35,7 +36,9 @@
 

         public function execute(msg:ValidateGitPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

+

             settings.gitEnabled = false;

+

             executeCommand();

         }

 

@@ -58,6 +61,7 @@
             }

 

             _done = true;

+

             if (output.indexOf("git version") > -1) {

                 settings.gitEnabled = true;

                 result(CommandCallBack.DEFAULT_RESULT);

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateJavaPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateJavaPathCommand.as
index 139f0cc..03cf97b 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateJavaPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateJavaPathCommand.as
@@ -21,9 +21,10 @@
     import mx.logging.ILogger;

     import mx.utils.ObjectUtil;

 

-    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

-    import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateJavaPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateJavaPathMessage;

 

     public class ValidateJavaPathCommand extends AbstractShellCommand {

 

@@ -39,7 +40,9 @@
         public function execute(msg:ValidateJavaPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

             _msg = msg;

+

             settings.javaEnabled = false;

+

             executeCommand();

         }

 

@@ -84,8 +87,8 @@
             if (_done) {

                 return;

             }

-

             _done = true;

+

             if (output.indexOf("1.6.") > -1) {

                 settings.javaEnabled = true;

                 result(CommandCallBack.DEFAULT_RESULT);

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateMavenPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateMavenPathCommand.as
index 3ca12fd..73d4dd3 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateMavenPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateMavenPathCommand.as
@@ -22,6 +22,7 @@
     import mx.utils.ObjectUtil;

 

     import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateMavenPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

 

@@ -39,7 +40,9 @@
         public function execute(msg:ValidateMavenPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

             _msg = msg;

+

             settings.mavenEnabled = false;

+

             executeCommand();

         }

 

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateSvnPathCommand.as b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateSvnPathCommand.as
index adbc8bd..e4fe929 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateSvnPathCommand.as
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.executor-lib/src/main/flex/org/apache/flex/utilities/developerToolSuite/executor/infrastructure/command/ValidateSvnPathCommand.as
@@ -21,6 +21,7 @@
     import mx.utils.ObjectUtil;

 

     import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingModel;

+    import org.apache.flex.utilities.developerToolSuite.executor.domain.SettingsValidationProgressModel;

     import org.apache.flex.utilities.developerToolSuite.executor.infrastructure.message.ValidateSvnPathMessage;

     import org.apache.flex.utilities.developerToolSuite.executor.application.util.LogUtil;

 

@@ -35,7 +36,9 @@
 

         public function execute(msg:ValidateSvnPathMessage):void {

             LOG.debug("Executing Command with message: {0}", ObjectUtil.toString(msg));

+

             settings.svnEnabled = false;

+

             executeCommand();

         }

 

@@ -58,6 +61,7 @@
             }

 

             _done = true;

+

             if (output.indexOf("Subversion command-line client") > -1) {

                 settings.svnEnabled = true;

                 result(CommandCallBack.DEFAULT_RESULT);

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 7858713..9f325d4 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
@@ -18,12 +18,15 @@
 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                        xmlns:s="library://ns.adobe.com/flex/spark"
                        xmlns:parsley="http://www.spicefactory.org/parsley"
+                       xmlns:behavior="org.apache.flex.utilities.developerToolSuite.presentation.behavior.setting.*"
+                       xmlns:mx="library://ns.adobe.com/flex/mx"
                        title="Apache Flex Developer Tool Suite"
                        width="800" height="550"
                        displayStateChange="displayStateChangeHandler(event)"
                        closing="closingHandler(event)">
 
     <fx:Declarations>
+
         <parsley:ContextBuilder>
             <parsley:ViewSettings autowireComponents="true"/>
             <parsley:FlexConfig type="{ApplicationContext}"/>
@@ -31,6 +34,16 @@
             <parsley:FlexConfig type="{ExecutorContext}"/>
         </parsley:ContextBuilder>
         <parsley:Configure/>
+
+        <parsley:PopUp open="{applicationSettings.validationInProgress.isStarted}" center="true" modal="true">
+            <parsley:behaviors>
+                <behavior:KeepCenteredBehavior/>
+            </parsley:behaviors>
+            <mx:ProgressBar id="progressBar" mode="event" source="{applicationSettings.validationInProgress}"
+                            textAlign="center" labelPlacement="center" width="350"
+                            progress="progressBar_progressHandler(event)"/>
+        </parsley:PopUp>
+
     </fx:Declarations>
 
     <fx:Metadata>
@@ -73,13 +86,14 @@
         public var applicationMenu:ApplicationMenu;
 
         [Inject]
+        [Bindable]
         public var applicationSettings:ISettingsModel;
 
         [MessageDispatcher]
         public var dispatch:Function;
 
-        private var alert:Alert;
-        private var appBounds:Rectangle;
+        private var _alert:Alert;
+        private var _appBounds:Rectangle;
 
         [Init]
         public function init():void {
@@ -88,20 +102,20 @@
 
             dispatch(new InitApplicationMessage());
 
-            alert = Alert.show(resourceManager.getString('Application', 'WELCOME_MSG'), resourceManager.getString('Application', 'WELCOME_TITLE'));
+            _alert = Alert.show(resourceManager.getString('Application', 'WELCOME_MSG'), resourceManager.getString('Application', 'WELCOME_TITLE'));
         }
 
         [MessageHandler]
         public function applicationReady(msg:ApplicationReadyMessage):void {
 
-            PopUpManager.removePopUp(alert);
+            PopUpManager.removePopUp(_alert);
             menu = applicationMenu;
 
             if (applicationSettings.appBounds) {
                 var bounds:Array = applicationSettings.appBounds.split(",");
-                appBounds = nativeWindow.bounds = new Rectangle(bounds[0], bounds[1], bounds[2], bounds[3]);
+                _appBounds = nativeWindow.bounds = new Rectangle(bounds[0], bounds[1], bounds[2], bounds[3]);
             } else {
-                appBounds = nativeWindow.bounds = new Rectangle(120, 120, 1200, 825);
+                _appBounds = nativeWindow.bounds = new Rectangle(120, 120, 1200, 825);
             }
 
             if (applicationSettings.appDisplayState) {
@@ -126,6 +140,11 @@
             menu = applicationMenu;
         }
 
+        private function progressBar_progressHandler(event:ProgressEvent):void {
+            if (applicationSettings.validationInProgress.currentStepLabel)
+                progressBar.label = resourceManager.getString('SettingsWindow', applicationSettings.validationInProgress.currentStepLabel) + " ( %1 / %2 )";
+        }
+
         private function displayStateChangeHandler(event:NativeWindowDisplayStateEvent):void {
             if (event.afterDisplayState == NativeWindowDisplayState.NORMAL) {
                 addMoveAndResizeListeners();
@@ -147,7 +166,7 @@
         }
 
         private function moveAndResizeHandler(event:NativeWindowBoundsEvent):void {
-            appBounds = event.afterBounds;
+            _appBounds = event.afterBounds;
         }
 
         private function closingHandler(event:Event):void {
@@ -155,7 +174,7 @@
             event.preventDefault();
 
             var settingsToSave:Object = {};
-            settingsToSave.appBounds = appBounds.x + "," + appBounds.y + "," + appBounds.width + "," + appBounds.height;
+            settingsToSave.appBounds = _appBounds.x + "," + _appBounds.y + "," + _appBounds.width + "," + _appBounds.height;
             settingsToSave.appDisplayState = nativeWindow.displayState;
 
             dispatch(new ExitApplicationMessage(settingsToSave));
diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/en_US/SettingsWindow.properties b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/en_US/SettingsWindow.properties
index ff2b953..b7c92aa 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/en_US/SettingsWindow.properties
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/en_US/SettingsWindow.properties
@@ -21,3 +21,10 @@
 VCS=Version Control System

 VCS_INTRO=Should match the one(s) the SDK(s) you want to use.

 SHOULD_BE_IN_PATH=Should be in your path

+VALIDATING_JAVA_HOME=Validating: Java

+VALIDATING_ANT_HOME=Validating: Ant

+VALIDATING_MAVEN_HOME=Validating: Maven

+VALIDATING_CYGWIN_HOME=Validating: Cygwin

+VALIDATING_SVN_HOME=Validating: Svn

+VALIDATING_GIT_HOME=Validating: Git

+REFRESH_ALL=Validate all

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/fr_FR/SettingsWindow.properties b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/fr_FR/SettingsWindow.properties
index 500634d..813c5a5 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/fr_FR/SettingsWindow.properties
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.locale/src/main/resources/locale/fr_FR/SettingsWindow.properties
@@ -21,3 +21,10 @@
 VCS=Système de contrôle de version

 VCS_INTRO=Il(s) doit/doivent correspondre à celui/ceux des SDK(s)\nque vous voulez utiliser.

 SHOULD_BE_IN_PATH=Doit être dans votre chemin d'accès

+VALIDATING_JAVA_HOME=Validation de: Java

+VALIDATING_ANT_HOME=Validation de: Ant

+VALIDATING_MAVEN_HOME=Validation de: Maven

+VALIDATING_CYGWIN_HOME=Validation de: Cygwin

+VALIDATING_SVN_HOME=Validation de: Svn

+VALIDATING_GIT_HOME=Validation de: Git

+REFRESH_ALL=Tout Valider

diff --git a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.standard-theme/src/main/resources/default.css b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.standard-theme/src/main/resources/default.css
index fe8b19b..4f28b3a 100644
--- a/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.standard-theme/src/main/resources/default.css
+++ b/fthomas/developerToolSuite/trunk/org.apache.flex.utilities.developerToolSuite.standard-theme/src/main/resources/default.css
@@ -23,6 +23,16 @@
     skinClass: ClassReference("org.apache.flex.utilities.developerToolSuite.ApplicationSkin");

 }

 

+asf|SettingsValidationInProgressWindow {

+    borderAlpha: 1;

+    borderThickness: 2;

+    borderVisible: true;

+    borderStyle: outset;

+    backgroundAlpha: 1;

+    backgroundColor: #ffffff;

+}

+

+

 .stackedForm {

     skinClass: ClassReference("spark.skins.spark.StackedFormSkin");

 }

diff --git a/fthomas/developerToolSuite/trunk/pom.xml b/fthomas/developerToolSuite/trunk/pom.xml
index bcaf0c0..75e5aae 100644
--- a/fthomas/developerToolSuite/trunk/pom.xml
+++ b/fthomas/developerToolSuite/trunk/pom.xml
@@ -115,35 +115,43 @@
             <artifactId>spicelib-reflect</artifactId>
             <version>3.0.0</version>
             <type>swc</type>
-            <scope>internal</scope>
         </dependency>
         <dependency>
             <groupId>org.spicefactory.spicelib</groupId>
             <artifactId>spicelib-util</artifactId>
             <version>3.1.0</version>
             <type>swc</type>
-            <scope>internal</scope>
         </dependency>
         <dependency>
             <groupId>org.spicefactory.spicelib</groupId>
             <artifactId>spicelib-commands</artifactId>
             <version>3.1.0</version>
             <type>swc</type>
-            <scope>internal</scope>
         </dependency>
         <dependency>
             <groupId>org.spicefactory.spicelib</groupId>
             <artifactId>parsley-core</artifactId>
             <version>3.0.0</version>
             <type>swc</type>
-            <scope>internal</scope>
         </dependency>
         <dependency>
             <groupId>org.spicefactory.spicelib</groupId>
             <artifactId>parsley-flex</artifactId>
             <version>3.0.0</version>
             <type>swc</type>
-            <scope>internal</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.spicefactory.spicelib</groupId>
+            <artifactId>parsley-popup</artifactId>
+            <version>3.0.2</version>
+            <type>swc</type>
+        </dependency>
+        <dependency>
+            <groupId>net.sourceforge.abobe.cairngorm</groupId>
+            <artifactId>cairngorm-popup</artifactId>
+            <version>1.7</version>
+            <type>swc</type>
+            <classifier>flex4</classifier>
         </dependency>
     </dependencies>