]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/listeners/TestManagerServiceAdapter.java
Processes list view
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / listeners / TestManagerServiceAdapter.java
1 package org.argeo.slc.client.ui.listeners;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.slc.client.ui.ClientUiPlugin;
6 import org.argeo.slc.core.attachment.Attachment;
7 import org.argeo.slc.core.attachment.SimpleAttachment;
8 import org.argeo.slc.core.test.tree.TreeTestResult;
9 import org.argeo.slc.core.test.tree.TreeTestResultListener;
10 import org.argeo.slc.msg.test.tree.AddTreeTestResultAttachmentRequest;
11 import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
12 import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;
13 import org.argeo.slc.msg.test.tree.ResultPartRequest;
14 import org.argeo.slc.services.TestManagerService;
15 import org.argeo.slc.test.TestResultPart;
16 import org.eclipse.ui.handlers.IHandlerService;
17
18 /** In memory access to a test manager service */
19 public class TestManagerServiceAdapter implements TreeTestResultListener {
20 private static final Log log = LogFactory
21 .getLog(TestManagerServiceAdapter.class);
22
23 private Boolean onlyOnClose = false;
24
25 private TestManagerService testManagerService;
26
27 public void resultPartAdded(TreeTestResult testResult,
28 TestResultPart testResultPart) {
29 if (onlyOnClose)
30 return;
31
32 if (testResult.getResultParts().size() == 1
33 && testResult.getResultParts().values().iterator().next()
34 .getParts().size() == 1) {
35 CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(
36 testResult);
37 testManagerService.createTreeTestResult(req);
38 } else {
39 ResultPartRequest req = new ResultPartRequest(testResult);
40 testManagerService.addResultPart(req);
41 }
42 }
43
44 public void close(TreeTestResult testResult) {
45
46 if (onlyOnClose) {
47 CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(
48 testResult);
49 testManagerService.createTreeTestResult(req);
50 } else {
51 CloseTreeTestResultRequest req = new CloseTreeTestResultRequest(
52 testResult);
53 testManagerService.closeTreeTestResult(req);
54 }
55
56 // TODO : clean this -> pb of thread && commandID hardCoded.
57 // We force the refresh of the list view.
58 ClientUiPlugin.getDefault().getWorkbench().getDisplay()
59 .syncExec(new Runnable() {
60 public void run() {
61 IHandlerService handlerService = (IHandlerService) ClientUiPlugin
62 .getDefault().getWorkbench()
63 .getService(IHandlerService.class);
64 try {
65 handlerService
66 .executeCommand(
67 "org.argeo.slc.client.ui.refreshResultList",
68 null);
69 handlerService
70 .executeCommand(
71 "org.argeo.slc.client.ui.refreshProcessList",
72 null);
73
74 } catch (Exception e) {
75 log.error("Cannot refresh views: " + e);
76 }
77 }
78 }
79
80 );
81
82 }
83
84 public void addAttachment(TreeTestResult testResult, Attachment attachment) {
85 if (onlyOnClose)
86 return;
87 AddTreeTestResultAttachmentRequest req = new AddTreeTestResultAttachmentRequest();
88 req.setResultUuid(testResult.getUuid());
89 req.setAttachment((SimpleAttachment) attachment);
90 testManagerService.addAttachment(req);
91
92 }
93
94 /** Publishes the test result only when it gets closed. */
95 public void setOnlyOnClose(Boolean onlyOnClose) {
96 this.onlyOnClose = onlyOnClose;
97 }
98
99 public void setTestManagerService(TestManagerService testManagerService) {
100 this.testManagerService = testManagerService;
101 }
102
103 }