use of io.deephaven.web.client.api.console.JsCommandResult in project deephaven-core by deephaven.
the class IdeSession method runCode.
public CancellablePromise<JsCommandResult> runCode(String code) {
LazyPromise<JsCommandResult> promise = new LazyPromise<>();
ExecuteCommandRequest request = new ExecuteCommandRequest();
request.setConsoleId(this.result);
request.setCode(code);
Promise<ExecuteCommandResponse> runCodePromise = Callbacks.grpcUnaryPromise(c -> {
connection.consoleServiceClient().executeCommand(request, connection.metadata(), c::apply);
});
runCodePromise.then(response -> {
JsVariableChanges changes = JsVariableChanges.from(response.getChanges());
promise.succeed(new JsCommandResult(changes, response.getErrorMessage()));
return null;
}, err -> {
promise.fail(err);
return null;
});
CancellablePromise<JsCommandResult> result = promise.asPromise(() -> {
// connection.consoleServiceClient().cancelCommand(cancelRequest, connection.metadata());
throw new UnsupportedOperationException("cancelCommand");
});
CommandInfo commandInfo = new CommandInfo(code, result);
final CustomEventInit event = CustomEventInit.create();
event.setDetail(commandInfo);
fireEvent(IdeSession.EVENT_COMMANDSTARTED, event);
return result;
}
Aggregations