public CompletableFuture<MessageActionItem> sendShowMessageRequest( ShowMessageRequestParams requestParams) { CompletableFuture<MessageActionItem> result = new CompletableFuture<>(); if (showMessageRequestEndpointIds.isEmpty()) { result.complete(null); } for (String endpointId : endpointIds) { requestTransmitter .newRequest() .endpointId(endpointId) .methodName("window/showMessageRequest") .paramsAsDto(requestParams) .sendAndReceiveResultAsDto(MessageActionItem.class) .onSuccess( actionItem -> { if (!result.isDone()) { result.complete(actionItem); } }) .onFailure( jsonRpcError -> result.completeExceptionally(new Exception(jsonRpcError.getMessage()))); } return result; }
@Test public void testName() throws Exception { CompletableFuture<MessageActionItem> future = new CompletableFuture<>(); when(transmitter.sendShowMessageRequest(any())).thenReturn(future); ServerInitializerImpl initializer = new ServerInitializerImpl(); CheLanguageClient client = new CheLanguageClient(eventService, transmitter, "id"); CompletableFuture<Pair<LanguageServer, InitializeResult>> initialize = initializer.initialize(launcher, client, "/tmp"); Pair<LanguageServer, InitializeResult> resultPair = initialize.get(); server = resultPair.first; ArgumentCaptor<ShowMessageRequestParams> captor = ArgumentCaptor.forClass(ShowMessageRequestParams.class); verify(transmitter, timeout(1500)).sendShowMessageRequest(captor.capture()); ShowMessageRequestParams value = captor.getValue(); assertNotNull(value); assertEquals(value.getType(), MessageType.Error); assertEquals(value.getMessage(), "Error Message!!!!"); }
public JsonRpcPromise<MessageActionItem> processNotificationRequest( ShowMessageRequestParams params) { JsonRpcPromise<MessageActionItem> result = new JsonRpcPromise<>(); MessageDialogPresenter dialogPresenter = provider.get(); dialogPresenter.show( params.getMessage(), params.getType().toString(), params.getActions(), actionItem -> { result .getSuccessConsumer() .ifPresent(consumer -> consumer.accept("ws-agent", actionItem)); }); return result; }
@Inject private void configureShowMessageRequestReceiver( Provider<ShowMessageRequestProcessor> provider, RequestHandlerConfigurator configurator) { configurator .newConfiguration() .methodName("window/showMessageRequest") .paramsAsDto(ShowMessageRequestParams.class) .resultAsPromiseDto(MessageActionItem.class) .withPromise(params -> provider.get().processNotificationRequest(params)); }
public void show( String content, String title, List<MessageActionItem> actions, Consumer<MessageActionItem> callback) { this.callback = callback; view.setContent(content); view.setTitle(title); view.setActions(actions); view.showDialog(); }
public void setActions(List<MessageActionItem> actions) { actions.forEach( action -> { Button button = new Button(); button.setText(action.getTitle()); button.addClickHandler(clickEvent -> actionDelegate.onAction(action)); button.addStyleName(style.actionButton()); rootPanel.add(button); }); }
@Override public CompletableFuture<MessageActionItem> showMessageRequest(ShowMessageRequestParams requestParams) { return null; }
public ShowMessageRequestParams(final List<MessageActionItem> actions) { this.actions = actions; }
/** * The message action items to present. */ @Pure public List<MessageActionItem> getActions() { return this.actions; }
/** * The message action items to present. */ public void setActions(final List<MessageActionItem> actions) { this.actions = actions; }
public CompletableFuture<MessageActionItem> showMessageRequest(final ShowMessageRequestParams requestParams) { return this.noImpl3.showMessageRequest(requestParams); }
@Override public CompletableFuture<MessageActionItem> showMessageRequest(ShowMessageRequestParams requestParams) { throw new UnsupportedOperationException(); }
@Override public CompletableFuture<MessageActionItem> showMessageRequest( ShowMessageRequestParams requestParams) { return transmitter.sendShowMessageRequest(requestParams); }
@Override public void onAction(MessageActionItem actionItem) { view.closeDialog(); callback.accept(actionItem); }
@Override public void setActions(List<MessageActionItem> actions) { footer.setActions(actions); }
/** * Sends the message to the client, to be displayed on a UI element. * Waits for an answer from the user and returns the selected * action. * * @param type * @param msg * @return */ public MessageActionItem showNotificationMessageRequest(MessageType type, String msg, List<MessageActionItem> actions){ ShowMessageRequestParams $ = new ShowMessageRequestParams(); $.setMessage(msg); $.setType(type); $.setActions(actions); return client.showMessageRequest($).join(); }
/** * The show message request is sent from a server to a client to ask the * client to display a particular message in the user interface. In addition * to the show message notification the request allows to pass actions and * to wait for an answer from the client. */ @JsonRequest("window/showMessageRequest") CompletableFuture<MessageActionItem> showMessageRequest(ShowMessageRequestParams requestParams);
void setActions(List<MessageActionItem> actions);
void onAction(MessageActionItem actionItem);