// Path: src/main/java/com/dcp/sm/config/compile/IzpackAntCompiler.java
// public class IzpackAntCompiler {
//     
//     private String target_file = "";
//     
//     /**
//      * Change the target file
//      * @param TARGET_FILE
//      */
//     public void setTarget(String TARGET_FILE) {
//         target_file = TARGET_FILE;
//     }
//     /**
//      * Get target install file
//      * @return
//      */
//     public String getTarget() {
//         return target_file;
//     }
// 
//     /**
//      * Compile IzPack using Ant Task defined target
//      * @return int
//      */
//     private int antCompile() {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlIzpackAntBuild, "izpack");
//         
//         comp.runTarget("izpack-standalone");
//         return 0;
//     }
//     
//     /**
//      * Public compile function, uses one compile method from above
//      * @return int
//      * @throws IOException
//      * @throws InterruptedException
//      * @throws IllegalArgumentException
//      * @throws IllegalAccessException
//      * @throws InvocationTargetException
//      */
// 	public int compile() throws IOException, InterruptedException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
// 	{
// 	    return antCompile();
// 	}
//     
//     /**
//      * Run IzPack generated package using Ant Task defined target with Trace mode enabled
//      * @return int
//      */
//     private int antDebug(String appName) {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlDebugAntBuild, appName);
//         
//         comp.runTarget("debug");
//         return 0;
//     }
// 	
//     /**
//      * Public debug function, uses one compile method from above
//      * @throws IOException
//      * @throws InterruptedException
//      */
//     public int debug(String appName) throws IOException, InterruptedException {
//         return antDebug(appName);
// 	}
//     
//     /**
//      * Run IzPack generated package using Ant Task defined target
//      * @return int
//      */
//     private int antRun(String appName) {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlRunAntBuild, appName);
//         
//         comp.runTarget("run");
//         return 0;
//     }
//     
//     /**
//      * Public run function, uses one run method from above
//      * @throws IOException
//      * @throws InterruptedException
//      * @throws IllegalArgumentException
//      * @throws IllegalAccessException
//      * @throws InvocationTargetException
//      */
//     public int run(String appName) throws IOException, InterruptedException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
//         return antRun(appName);
//     }
//     
// }
// 
// Path: src/main/java/com/dcp/sm/logic/factory/TypeFactory.java
// public enum LOG_LEVEL {
//     DEBUG(0, "DEBUG"),
//     INFO(1, "INFO"),
//     WARN(2, "WARNING"),
//     ERR(3, "ERROR");
//         
//     private int _level;
//     private String _tag;
//     private LOG_LEVEL(int level, String tag)
//     {
//         _level = level;
//         _tag = tag;
//     }
//     @Override
//     public String toString()
//     {
//         return this._tag;
//     }
//         
//     public int value()
//     {
//         return this._level;
//     }
// }
// 
// Path: src/main/java/com/dcp/sm/main/log/Out.java
// public class Out
// {
//     //Log
//     private static List<String> log = new ArrayList<String>();//Global Log
//     public static List<String> getLog() { return log; }
//     private static int displayLevel = 1;//logs to display must be >= than this
//     
//     private static List<String> compileLog = new ArrayList<String>();//Izpack compile Log
//     public static List<String> getCompileLog() { return compileLog; }
//     
//     //Pivot GUI Component Repaint for log update
//     private static Component logger = null;
//     public static Component getLogger() { return logger; }
//     public static void setLogger(Component logger) { Out.logger = logger; }
//     
//     //Clear the stream cache
//     public static void clearCompileLog() {
//         compileLog.clear();
//     }
//     
//     //Add a new empty line
//     public static void newLine() {
//         print(LOG_LEVEL.INFO, "");
//     }
//     
//     /**
//      * Prints a string to the output stream
//      * @param text: log text
//      * @param outStream: output stream
//      */
//     public static void print(String text, PrintStream outStream) {
//         outStream.println(text);
//     }
//     
//     /**
//      * print text with a tag
//      * format: [TAG] TXT
//      * @param TAG: tag name
//      * @param TXT: text to log
//      */
//     public static void print(LOG_LEVEL level, String msg) {
//         print("["+level.toString()+"] "+msg, System.out);
//         log.add(msg);
//         final String log_TXT = msg;
//         
//         if (level.value() >= displayLevel)// display if >= than threshold
//             log(log_TXT);
//     }
//     
//     public static void log(final String msg) {
//         ApplicationContext.queueCallback(new Runnable() {//Enqueue GUI display repaint
//             @Override public void run()
//             {
//                 compileLog.add(msg);
//                 if (getLogger() != null) getLogger().repaint();//Component update
//             }
//         });
//     }
//     
// }


import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import org.apache.pivot.util.concurrent.Task;
import org.apache.pivot.util.concurrent.TaskExecutionException;
import org.apache.pivot.wtk.Component;
import com.dcp.sm.config.compile.IzpackAntCompiler;
import com.dcp.sm.logic.factory.TypeFactory.LOG_LEVEL;
import com.dcp.sm.main.log.Out;
package com.dcp.sm.gui.pivot.tasks;







public class TaskIzpackRun extends Task<Boolean>
{
// Path: src/main/java/com/dcp/sm/config/compile/IzpackAntCompiler.java
// public class IzpackAntCompiler {
//     
//     private String target_file = "";
//     
//     /**
//      * Change the target file
//      * @param TARGET_FILE
//      */
//     public void setTarget(String TARGET_FILE) {
//         target_file = TARGET_FILE;
//     }
//     /**
//      * Get target install file
//      * @return
//      */
//     public String getTarget() {
//         return target_file;
//     }
// 
//     /**
//      * Compile IzPack using Ant Task defined target
//      * @return int
//      */
//     private int antCompile() {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlIzpackAntBuild, "izpack");
//         
//         comp.runTarget("izpack-standalone");
//         return 0;
//     }
//     
//     /**
//      * Public compile function, uses one compile method from above
//      * @return int
//      * @throws IOException
//      * @throws InterruptedException
//      * @throws IllegalArgumentException
//      * @throws IllegalAccessException
//      * @throws InvocationTargetException
//      */
// 	public int compile() throws IOException, InterruptedException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
// 	{
// 	    return antCompile();
// 	}
//     
//     /**
//      * Run IzPack generated package using Ant Task defined target with Trace mode enabled
//      * @return int
//      */
//     private int antDebug(String appName) {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlDebugAntBuild, appName);
//         
//         comp.runTarget("debug");
//         return 0;
//     }
// 	
//     /**
//      * Public debug function, uses one compile method from above
//      * @throws IOException
//      * @throws InterruptedException
//      */
//     public int debug(String appName) throws IOException, InterruptedException {
//         return antDebug(appName);
// 	}
//     
//     /**
//      * Run IzPack generated package using Ant Task defined target
//      * @return int
//      */
//     private int antRun(String appName) {
//         AntCompiler comp = new AntCompiler(IOFactory.xmlRunAntBuild, appName);
//         
//         comp.runTarget("run");
//         return 0;
//     }
//     
//     /**
//      * Public run function, uses one run method from above
//      * @throws IOException
//      * @throws InterruptedException
//      * @throws IllegalArgumentException
//      * @throws IllegalAccessException
//      * @throws InvocationTargetException
//      */
//     public int run(String appName) throws IOException, InterruptedException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
//         return antRun(appName);
//     }
//     
// }
// 
// Path: src/main/java/com/dcp/sm/logic/factory/TypeFactory.java
// public enum LOG_LEVEL {
//     DEBUG(0, "DEBUG"),
//     INFO(1, "INFO"),
//     WARN(2, "WARNING"),
//     ERR(3, "ERROR");
//         
//     private int _level;
//     private String _tag;
//     private LOG_LEVEL(int level, String tag)
//     {
//         _level = level;
//         _tag = tag;
//     }
//     @Override
//     public String toString()
//     {
//         return this._tag;
//     }
//         
//     public int value()
//     {
//         return this._level;
//     }
// }
// 
// Path: src/main/java/com/dcp/sm/main/log/Out.java
// public class Out
// {
//     //Log
//     private static List<String> log = new ArrayList<String>();//Global Log
//     public static List<String> getLog() { return log; }
//     private static int displayLevel = 1;//logs to display must be >= than this
//     
//     private static List<String> compileLog = new ArrayList<String>();//Izpack compile Log
//     public static List<String> getCompileLog() { return compileLog; }
//     
//     //Pivot GUI Component Repaint for log update
//     private static Component logger = null;
//     public static Component getLogger() { return logger; }
//     public static void setLogger(Component logger) { Out.logger = logger; }
//     
//     //Clear the stream cache
//     public static void clearCompileLog() {
//         compileLog.clear();
//     }
//     
//     //Add a new empty line
//     public static void newLine() {
//         print(LOG_LEVEL.INFO, "");
//     }
//     
//     /**
//      * Prints a string to the output stream
//      * @param text: log text
//      * @param outStream: output stream
//      */
//     public static void print(String text, PrintStream outStream) {
//         outStream.println(text);
//     }
//     
//     /**
//      * print text with a tag
//      * format: [TAG] TXT
//      * @param TAG: tag name
//      * @param TXT: text to log
//      */
//     public static void print(LOG_LEVEL level, String msg) {
//         print("["+level.toString()+"] "+msg, System.out);
//         log.add(msg);
//         final String log_TXT = msg;
//         
//         if (level.value() >= displayLevel)// display if >= than threshold
//             log(log_TXT);
//     }
//     
//     public static void log(final String msg) {
//         ApplicationContext.queueCallback(new Runnable() {//Enqueue GUI display repaint
//             @Override public void run()
//             {
//                 compileLog.add(msg);
//                 if (getLogger() != null) getLogger().repaint();//Component update
//             }
//         });
//     }
//     
// }


// Path: src/main/java/com/dcp/sm/gui/pivot/tasks/TaskIzpackRun.java
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import org.apache.pivot.util.concurrent.Task;
import org.apache.pivot.util.concurrent.TaskExecutionException;
import org.apache.pivot.wtk.Component;
import com.dcp.sm.config.compile.IzpackAntCompiler;
import com.dcp.sm.logic.factory.TypeFactory.LOG_LEVEL;
import com.dcp.sm.main.log.Out;

package com.dcp.sm.gui.pivot.tasks;







public class TaskIzpackRun extends Task<Boolean>
{
    IzpackAntCompiler compiler = new IzpackAntCompiler();//IzPack Compiler Class