WIP - vscode webview comm problem

This commit is contained in:
BoykoAlex
2019-08-23 14:51:37 -04:00
parent e136a6b536
commit 7beccbffe7
6 changed files with 98 additions and 44 deletions

View File

@@ -1,16 +1,12 @@
package org.springframework.ide.vscode.commons.sprotty.scan;
import org.eclipse.elk.alg.layered.options.LayeredMetaDataProvider;
import org.eclipse.elk.alg.layered.options.LayeredOptions;
import org.eclipse.elk.core.data.LayoutMetaDataService;
import org.eclipse.sprotty.DefaultDiagramServer;
import org.eclipse.sprotty.IDiagramExpansionListener;
import org.eclipse.sprotty.IDiagramOpenListener;
import org.eclipse.sprotty.IDiagramSelectionListener;
import org.eclipse.sprotty.IDiagramServer;
import org.eclipse.sprotty.ILayoutEngine;
import org.eclipse.sprotty.IModelUpdateListener;
import org.eclipse.sprotty.IPopupModelFactory;
import org.eclipse.sprotty.SModelCloner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -19,12 +15,6 @@ import org.springframework.ide.vscode.commons.sprotty.elk.ElkLayoutEngine;
@Configuration
public class DiagramServerConfiguration {
@Bean
public IDiagramServer diagramServer() {
DefaultDiagramServer diagramServer = new DefaultDiagramServer("spring-boot");
return diagramServer;
}
@Bean public IModelUpdateListener modelUpdateListener() {
return new IModelUpdateListener.NullImpl();
}

View File

@@ -0,0 +1,14 @@
package org.springframework.ide.vscode.commons.sprotty.scan;
import java.util.function.Consumer;
import org.eclipse.sprotty.ActionMessage;
import org.eclipse.sprotty.IDiagramServer;
public interface DiagramServerManager /*extends IDiagramServer.Provider*/ {
void setRemoteEndpoint(Consumer<ActionMessage> remoteEndpoint);
void sendMessageToServer(ActionMessage message);
}

View File

@@ -4,7 +4,6 @@ import java.util.HashSet;
import java.util.Set;
import org.eclipse.sprotty.ActionMessage;
import org.eclipse.sprotty.IDiagramServer;
import org.eclipse.sprotty.server.json.ActionTypeAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -25,8 +24,6 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import reactor.core.publisher.Mono;
@Controller
public class DiagramWebsocketServer implements WebSocketConfigurer, InitializingBean {
@@ -37,7 +34,7 @@ public class DiagramWebsocketServer implements WebSocketConfigurer, Initializing
private Gson gson;
@Autowired
private IDiagramServer diagramServer;
private DiagramServerManager diagramServers;
@Autowired
private SimpleLanguageServer server;
@@ -55,10 +52,10 @@ public class DiagramWebsocketServer implements WebSocketConfigurer, Initializing
initializeGson();
server.onSprottyMessage((jsonMessage) -> {
ActionMessage actionMessage = gson.fromJson(jsonMessage, ActionMessage.class);
diagramServer.accept(actionMessage);
diagramServers.sendMessageToServer(actionMessage);
});
server.doOnInitialized(() -> {
diagramServer.setRemoteEndpoint(message -> {
diagramServers.setRemoteEndpoint(message -> {
sendMessage((JsonObject)gson.toJsonTree(message));
});
});
@@ -99,7 +96,7 @@ public class DiagramWebsocketServer implements WebSocketConfigurer, Initializing
if (END_MESSAGE.equals(payload)) {
ActionMessage actionMessage = gson.fromJson(buff.toString(), ActionMessage.class);
buff = new StringBuilder();
diagramServer.accept(actionMessage);
diagramServers.sendMessageToServer(actionMessage);
} else {
buff.append(payload);
}