From: yukihane Date: Sat, 27 Aug 2011 15:04:20 +0000 (+0900) Subject: 通知処理実装 X-Git-Tag: test20110903_ver2.a.0~118^2~12 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f99959ae02f91f59fb83b6fa89c8294716016f91;p=coroid%2Finqubus.git 通知処理実装 --- diff --git a/frontend/src/yukihane/inqubus/manager/TaskManage.java b/frontend/src/yukihane/inqubus/manager/TaskManage.java index d165824..b38531d 100644 --- a/frontend/src/yukihane/inqubus/manager/TaskManage.java +++ b/frontend/src/yukihane/inqubus/manager/TaskManage.java @@ -25,7 +25,7 @@ public class TaskManage { private final ExecutorService convertExecutorService; private final Map> downloadTargets = new HashMap<>(); private final Map> convertTargets = new HashMap<>(); - private final TaskManageListener clientListner; + private final TaskManageListener clientListener; public TaskManage() { this(1, 1, null); @@ -38,7 +38,7 @@ public class TaskManage { public TaskManage(int maxDownload, int maxConvert, TaskManageListener listener) { downloadExecutorService = Executors.newFixedThreadPool(maxDownload); convertExecutorService = Executors.newFixedThreadPool(maxConvert); - this.clientListner = listener; + this.clientListener = listener; } public synchronized boolean add(RequestProcess request) { @@ -69,59 +69,77 @@ public class TaskManage { this.rowId = rowId; } + private void notify(TaskStatus status) { + notify(status, 0.0, ""); + } + + private void notify(TaskStatus status, double percentage, String message) { + if (clientListener == null) { + return; + } + clientListener.process(rowId, TaskKind.DOWNLOAD, status, percentage, message); + } + @Override public void process(DownloadProgress progress) { - if (clientListner != null) { - // TODO - clientListner.process(rowId, TaskKind.DOWNLOAD, TaskStatus.DOING, 0.0, ""); - } + // TOOD + notify(TaskStatus.DOING, 0.0, ""); } @Override public void cancelled() { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.CANCELLED); } @Override public void done(DownloadResult result) { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.DONE); } @Override public void error(Throwable th) { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.ERROR, 0.0, th.getMessage()); } } private class ConvertListener implements WorkerListener { - private final int id; + private final int rowId; + + private ConvertListener(int rowId) { + this.rowId = rowId; + } - private ConvertListener(int id) { - this.id = id; + private void notify(TaskStatus status) { + notify(status, 0.0, ""); + } + + private void notify(TaskStatus status, double percentage, String message) { + if (clientListener == null) { + return; + } + clientListener.process(rowId, TaskKind.DOWNLOAD, status, percentage, message); } @Override public void process(ConvertProgress progress) { - if (clientListner != null) { - // TODO - clientListner.process(id, TaskKind.CONVERT, TaskStatus.DOING, 0.0, ""); - } + // TOOD + notify(TaskStatus.DOING, 0.0, ""); } @Override public void cancelled() { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.CANCELLED); } @Override public void done(ConvertResult result) { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.DONE); } @Override public void error(Throwable th) { - throw new UnsupportedOperationException("Not supported yet."); + notify(TaskStatus.ERROR, 0.0, th.getMessage()); } } } diff --git a/frontend/src/yukihane/inqubus/manager/TaskStatus.java b/frontend/src/yukihane/inqubus/manager/TaskStatus.java index 7a7735f..a8bb282 100644 --- a/frontend/src/yukihane/inqubus/manager/TaskStatus.java +++ b/frontend/src/yukihane/inqubus/manager/TaskStatus.java @@ -6,7 +6,7 @@ package yukihane.inqubus.manager; */ public enum TaskStatus { - READY("待機"), DOING("実行"), DONE("完了"); + READY("待機"), DOING("実行"), DONE("完了"), CANCELLED("キャンセル"), ERROR("エラー"); private final String text; private TaskStatus(String text) {