1 29 30 package nextapp.echo2.testapp.interactive; 31 32 import nextapp.echo2.app.Button; 33 import nextapp.echo2.app.TaskQueueHandle; 34 35 41 public class GhostTask { 42 43 private InteractiveApp app; 44 private int clicksPerIteration = 1; 45 private boolean indefiniteAllowed; 46 private int iteration = 0; 47 private String [] script; 48 private int scriptIndex = 0; 49 private String [] startupScript; 50 51 private TaskQueueHandle taskQueue; 52 53 private int totalIterations = -1; 54 private int runTime = -1; 55 private long stopTime = -1; 56 57 private Runnable task = new Runnable () { 58 59 62 public void run() { 63 for (int i = 0; i < clicksPerIteration; ++i) { 64 if (script == null) { 65 RandomClick.clickRandomButton(); 66 } else { 67 Button button = (Button) app.getDefaultWindow().getComponent(script[scriptIndex]); 68 button.doAction(); 69 ++scriptIndex; 70 if (scriptIndex >= script.length) { 71 scriptIndex = 0; 72 } 73 } 74 } 75 if (stopTime != -1 && System.currentTimeMillis() > stopTime) { 76 app.setGhostIterationWindowTitle(-1); 77 app.stopGhostTest(); 79 } else if (totalIterations != -1 && iteration >= totalIterations) { 80 app.setGhostIterationWindowTitle(-1); 81 app.stopGhostTest(); 83 } else if (indefiniteAllowed) { 84 ++iteration; 85 app.setGhostIterationWindowTitle(iteration); 86 app.enqueueTask(taskQueue, this); 87 } 88 } 89 }; 90 91 98 public GhostTask() { 99 super(); 100 indefiniteAllowed = !InteractiveApp.LIVE_DEMO_SERVER; 101 } 102 103 public int getClicksPerIteration() { 104 return clicksPerIteration; 105 } 106 107 public int getRunTime() { 108 return runTime; 109 } 110 111 public String [] getScript() { 112 return script; 113 } 114 115 public String [] getStartupScript() { 116 return startupScript; 117 } 118 119 public int getTotalIterations() { 120 return totalIterations; 121 } 122 123 public void setClicksPerIteration(int clicksPerIteration) { 124 this.clicksPerIteration = clicksPerIteration; 125 } 126 127 public void setScript(String [] script) { 128 this.script = script; 129 } 130 131 public void setRunTime(int runTime) { 132 this.runTime = runTime; 133 this.totalIterations = -1; 134 } 135 136 public void setStartupScript(String [] startupScript) { 137 this.startupScript = startupScript; 138 } 139 140 public void setTotalIterations(int totalIterations) { 141 this.totalIterations = totalIterations; 142 this.runTime = -1; 143 } 144 145 void startTask(InteractiveApp app, TaskQueueHandle taskQueue) { 146 this.app = app; 147 this.taskQueue = taskQueue; 148 if (runTime != -1) { 149 stopTime = System.currentTimeMillis() + runTime; 150 } 151 app.enqueueTask(taskQueue, task); 152 } 153 } 154 | Popular Tags |