WIP: ports, links

This commit is contained in:
BoykoAlex
2019-08-29 19:25:03 -04:00
parent 1a7bcf76a9
commit d1e39fef5e
10 changed files with 285 additions and 34 deletions

View File

@@ -1,5 +1,6 @@
package org.springframework.ide.vscode.commons.sprotty.scan;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.function.Consumer;
@@ -8,6 +9,7 @@ import org.eclipse.sprotty.ActionMessage;
import org.eclipse.sprotty.DefaultDiagramServer;
import org.eclipse.sprotty.IDiagramServer;
import org.eclipse.sprotty.ILayoutEngine;
import org.eclipse.sprotty.IPopupModelFactory;
import org.eclipse.sprotty.RequestModelAction;
import org.eclipse.sprotty.SGraph;
import org.slf4j.Logger;
@@ -40,6 +42,9 @@ public class DefaultDiagramServerManager implements DiagramServerManager {
@Autowired
private ILayoutEngine layoutEngine;
@Autowired
private Optional<IPopupModelFactory> popups;
private Consumer<ActionMessage> remoteEndpoint;
private IDiagramServer getDiagramServer(String clientId) {
@@ -48,6 +53,7 @@ public class DefaultDiagramServerManager implements DiagramServerManager {
DefaultDiagramServer diagramServer = new DefaultDiagramServer(clientId);
diagramServer.setRemoteEndpoint(this::sendMessageToRemoteEndpoint);
diagramServer.setLayoutEngine(layoutEngine);
diagramServer.setPopupModelFactory(popups.orElse(null));
return diagramServer;
});
} catch (ExecutionException e) {

View File

@@ -1,8 +1,12 @@
package org.springframework.ide.vscode.commons.sprotty.scan;
import java.util.Optional;
import org.eclipse.elk.alg.layered.options.LayeredMetaDataProvider;
import org.eclipse.sprotty.ILayoutEngine;
import org.eclipse.sprotty.SGraph;
import org.eclipse.sprotty.layout.ElkLayoutEngine;
import org.eclipse.sprotty.layout.SprottyLayoutConfigurator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -10,9 +14,10 @@ import org.springframework.context.annotation.Configuration;
public class DiagramServerConfiguration {
@Bean
public ILayoutEngine layoutEngine() {
public ILayoutEngine layoutEngine(Optional<SprottyLayoutConfigurator> configurator) {
ElkLayoutEngine.initialize(new LayeredMetaDataProvider());
return new ElkLayoutEngine();
final ElkLayoutEngine engine = new ElkLayoutEngine();
return (root) -> engine.layout((SGraph)root, configurator.orElse(null));
}
}