]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/base/PostEventCommand.java
ff6d4fd13d5aa6d20e0894339c02bee95fc68569
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / base / PostEventCommand.java
1 package org.simantics.document.swt.core.base;
2
3 import java.util.Map;
4
5 import org.simantics.document.server.handler.AbstractEventHandler;
6 import org.simantics.document.server.io.CommandContext;
7 import org.simantics.document.server.io.CommandContextImpl;
8 import org.simantics.document.swt.core.SWTDocument;
9
10 public class PostEventCommand extends AbstractEventCommand {
11     
12     private AbstractEventHandler handler;
13     private CommandContextImpl parameters;
14     
15     public PostEventCommand(SWTDocument document, AbstractEventHandler handler, Map<String, String> parameters) {
16         this(document, handler, parameters, null);
17     }
18     
19     public PostEventCommand(SWTDocument document, AbstractEventHandler handler, Map<String, String> parameters, PostEventCommand next) {
20         super(document);
21         this.handler = handler;
22         this.parameters = new CommandContextImpl();
23         for(Map.Entry<String, String> entry : parameters.entrySet()) {
24                 this.parameters.putString(entry.getKey(), entry.getValue());
25         }
26         this.next = next;
27     }
28
29     @Override
30     public void handleCommand() {
31         document.post(handler, parameters);
32     }
33
34     @Override
35     public void commandSuccess() {
36         if(next != null)
37             next.handleCommand();
38     }
39
40     @Override
41     public void commandError(String errorMessage) {
42         System.err.println(this + " failed: " + errorMessage);
43     }
44
45 }