--- /dev/null
+package org.simantics.document.swt.core.base;\r
+\r
+import java.util.Map;\r
+\r
+import org.simantics.document.server.handler.AbstractEventHandler;\r
+import org.simantics.document.server.io.CommandContext;\r
+import org.simantics.document.server.io.CommandContextImpl;\r
+import org.simantics.document.swt.core.SWTDocument;\r
+\r
+public class PostEventCommand extends AbstractEventCommand {\r
+ \r
+ private AbstractEventHandler handler;\r
+ private CommandContextImpl parameters;\r
+ \r
+ public PostEventCommand(SWTDocument document, AbstractEventHandler handler, Map<String, String> parameters) {\r
+ this(document, handler, parameters, null);\r
+ }\r
+ \r
+ public PostEventCommand(SWTDocument document, AbstractEventHandler handler, Map<String, String> parameters, PostEventCommand next) {\r
+ super(document);\r
+ this.handler = handler;\r
+ this.parameters = new CommandContextImpl();\r
+ for(Map.Entry<String, String> entry : parameters.entrySet()) {\r
+ this.parameters.putString(entry.getKey(), entry.getValue());\r
+ }\r
+ this.next = next;\r
+ }\r
+\r
+ @Override\r
+ public void handleCommand() {\r
+ document.post(handler, parameters);\r
+ }\r
+\r
+ @Override\r
+ public void commandSuccess() {\r
+ if(next != null)\r
+ next.handleCommand();\r
+ }\r
+\r
+ @Override\r
+ public void commandError(String errorMessage) {\r
+ System.err.println(this + " failed: " + errorMessage);\r
+ }\r
+\r
+}\r