package cz.cuni.mff.d3s.been.web.pages.task; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.PageRenderLinkSource; import cz.cuni.mff.d3s.been.api.BeenApiException; import cz.cuni.mff.d3s.been.core.task.Debug; import cz.cuni.mff.d3s.been.core.task.ModeEnum; import cz.cuni.mff.d3s.been.core.task.TaskEntry; import cz.cuni.mff.d3s.been.core.task.TaskProperty; import cz.cuni.mff.d3s.been.web.components.Layout; import cz.cuni.mff.d3s.been.web.model.TaskSupport; import cz.cuni.mff.d3s.been.web.pages.DetailPage; import cz.cuni.mff.d3s.been.web.pages.Page; /** * User: donarus Date: 4/22/13 Time: 1:38 PM */ @Page.Navigation(section = Layout.Section.TASK_DETAIL) public class Detail extends DetailPage { @Inject private PageRenderLinkSource pageRenderLinkSource; @Property private String arg; @Property private TaskProperty property; private TaskEntry task; public TaskEntry getTask() throws BeenApiException { if (this.task == null) { this.task = getApi().getTask(itemId); } return task; } @Override public void setupRender() { super.setupRender(); } public String taskDebugToString(Debug debug) { if (debug == null) return "NONE"; if (debug.getMode() == ModeEnum.NONE) return "NONE"; else if (debug.getMode() == ModeEnum.LISTEN) return "LISTEN, port: " + debug.getPort(); else if (debug.getMode() == ModeEnum.CONNECT) return "CONNECT, host: " + debug.getHost() + ", port: " + debug.getPort(); throw new IllegalStateException("Invalid enum value."); } public boolean isTaskInFinalState(String taskId) throws BeenApiException { return new TaskSupport(getApi()).isTaskInFinalState(taskId); } Object onKillTask(String taskId) throws BeenApiException, InterruptedException { new TaskSupport(getApi()).killTask(taskId); return pageRenderLinkSource.createPageRenderLinkWithContext(Detail.class, taskId); } Object onRemoveTask(String taskId) throws BeenApiException, InterruptedException { new TaskSupport(getApi()).removeKilledTask(taskId); return Tree.class; } }