WIP - vscode webview comm problem
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user