Search in sources :

Example 1 with JsCommandResult

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;
}
Also used : JsCommandResult(io.deephaven.web.client.api.console.JsCommandResult) LazyPromise(io.deephaven.web.client.fu.LazyPromise) CustomEventInit(elemental2.dom.CustomEventInit) JsVariableChanges(io.deephaven.web.client.api.console.JsVariableChanges)

Aggregations

CustomEventInit (elemental2.dom.CustomEventInit)1 JsCommandResult (io.deephaven.web.client.api.console.JsCommandResult)1 JsVariableChanges (io.deephaven.web.client.api.console.JsVariableChanges)1 LazyPromise (io.deephaven.web.client.fu.LazyPromise)1