Skip to content

Commit

Permalink
- Project > Clean to Gradle project now executes 'gradle clean' inste…
Browse files Browse the repository at this point in the history
…ad of manual file/folder clean (reference #547)
  • Loading branch information
rat-moonshine committed May 17, 2019
1 parent 0ea8720 commit d19e1e8
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ package actionScripts.impls
import actionScripts.factory.FileLocation;
import actionScripts.interfaces.IFlexCoreBridge;
import actionScripts.plugin.actionscript.as3project.AS3ProjectPlugin;
import actionScripts.plugin.actionscript.as3project.clean.CleanProject;
import actionScripts.plugin.actionscript.as3project.files.HiddenFilesPlugin;
import actionScripts.plugin.actionscript.as3project.files.SaveFilesPlugin;
import actionScripts.plugin.actionscript.as3project.vo.AS3ProjectVO;
Expand Down Expand Up @@ -79,6 +78,7 @@ package actionScripts.impls
import actionScripts.plugins.as3project.mxmlc.MXMLCJavaScriptPlugin;
import actionScripts.plugins.as3project.mxmlc.MXMLCPlugin;
import actionScripts.plugins.away3d.Away3DPlugin;
import actionScripts.plugins.clean.CleanProject;
import actionScripts.plugins.core.ProjectBridgeImplBase;
import actionScripts.plugins.git.GitHubPlugin;
import actionScripts.plugins.gradle.GradleBuildPlugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
// No warranty of merchantability or fitness of any kind.
// Use this software at your own risk.
////////////////////////////////////////////////////////////////////////////////
package actionScripts.plugin.actionscript.as3project.clean
package actionScripts.plugins.clean
{
import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.NativeProcessExitEvent;
import flash.utils.clearTimeout;
import flash.utils.setTimeout;

Expand All @@ -32,24 +33,28 @@ package actionScripts.plugin.actionscript.as3project.clean
import actionScripts.events.RefreshTreeEvent;
import actionScripts.factory.FileLocation;
import actionScripts.plugin.IPlugin;
import actionScripts.plugin.PluginBase;
import actionScripts.plugin.actionscript.as3project.vo.AS3ProjectVO;
import actionScripts.plugin.console.ConsoleOutputEvent;
import actionScripts.plugin.core.compiler.ProjectActionEvent;
import actionScripts.plugin.java.javaproject.vo.JavaProjectVO;
import actionScripts.plugin.project.ProjectType;
import actionScripts.plugins.build.ConsoleBuildPluginBase;
import actionScripts.utils.UtilsCore;
import actionScripts.valueObjects.ConstantsCoreVO;
import actionScripts.valueObjects.ProjectVO;

import components.popup.SelectOpenedFlexProject;
import components.views.project.TreeView;

public class CleanProject extends PluginBase implements IPlugin
public class CleanProject extends ConsoleBuildPluginBase implements IPlugin
{
private var loader: DataAgent;
private var selectProjectPopup:SelectOpenedFlexProject;

private var currentTargets:Array;
private var folderCount:int;
private var currentProjectName:String;
private var currentCleanType:uint;

override public function get name():String { return "Clean Project"; }
override public function get author():String { return ConstantsCoreVO.MOONSHINE_IDE_LABEL +" Project Team"; }
Expand Down Expand Up @@ -142,10 +147,12 @@ package actionScripts.plugin.actionscript.as3project.clean

if (project is AS3ProjectVO)
{
currentCleanType = ProjectType.AS3PROJ_AS_AIR;
cleanAS3Project(project as AS3ProjectVO);
}
else if (project is JavaProjectVO)
{
currentCleanType = ProjectType.JAVA;
cleanJavaProject(project as JavaProjectVO);
}
//GrailsProjectVO is handled in GrailsBuildPlugin
Expand All @@ -154,13 +161,24 @@ package actionScripts.plugin.actionscript.as3project.clean

private function cleanJavaProject(project:JavaProjectVO):void
{
var targets:Array = [project.folderLocation.resolvePath("target"), project.folderLocation.resolvePath("build")];
for each (var target:FileLocation in targets)
if (project.hasGradleBuild())
{
if (UtilsCore.isGradleAvailable())
{
start(Vector.<String>(["gradle clean"]), project.folderLocation);
}
else
{
dispatcher.dispatchEvent(new ConsoleOutputEvent(ConsoleOutputEvent.CONSOLE_PRINT, "Project clean failed: Missing Gradle configuration in Moonshine settings.", false, false, ConsoleOutputEvent.TYPE_ERROR));
}
}
else if (project.hasPom())
{
var target:FileLocation = project.folderLocation.resolvePath("target");
if (target.fileBridge.exists)
{
currentTargets.push(target);

target.fileBridge.getFile.addEventListener(IOErrorEvent.IO_ERROR, onCleanProjectIOException);
target.fileBridge.getFile.addEventListener(Event.COMPLETE, onProjectFolderComplete);
target.fileBridge.deleteDirectoryAsync(true);
Expand All @@ -171,6 +189,19 @@ package actionScripts.plugin.actionscript.as3project.clean
}
}
}

override protected function onNativeProcessExit(event:NativeProcessExitEvent):void
{
super.onNativeProcessExit(event);

if (event.exitCode == 0)
{
if (currentCleanType == ProjectType.JAVA)
{
dispatcher.dispatchEvent(new ConsoleOutputEvent(ConsoleOutputEvent.CONSOLE_PRINT, "Project cleaned succssfully."));
}
}
}

private function cleanAS3Project(as3Project:AS3ProjectVO):void
{
Expand Down

0 comments on commit d19e1e8

Please sign in to comment.