public String getRunListJSON() { ExecutionMonitorAPI monitor = config.getDomainExecutionMonitor(); ArrayList<Object> list = new ArrayList<Object>(); for (RuntimePlan exe : monitor.getRunList()) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("runtimeInfo", exe.getRuntimeInfo()); map.put("id", exe.getID()); if (exe.getQueue() != null) { int numtotal = exe.getQueue().getAllSteps().size(); int numdone = exe.getQueue().getFinishedSteps().size(); ArrayList<RuntimeStep> running_steps = exe.getQueue().getRunningSteps(); ArrayList<RuntimeStep> failed_steps = exe.getQueue().getFailedSteps(); map.put("running_jobs", this.getStepIds(running_steps)); map.put("failed_jobs", this.getStepIds(failed_steps)); map.put("percent_done", numdone * 100.0 / numtotal); map.put("percent_running", running_steps.size() * 100.0 / numtotal); map.put("percent_failed", failed_steps.size() * 100.0 / numtotal); } list.add(map); } return json.toJson(list); }