import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;
import org.simantics.db.procedure.AsyncProcedure;
import org.simantics.diagram.content.EdgeResource;
+import org.simantics.diagram.internal.DebugPolicy;
import org.simantics.diagram.stubs.DiagramResource;
import org.simantics.diagram.synchronization.ErrorHandler;
import org.simantics.g2d.canvas.ICanvasContext;
*/
public class EdgeRequest extends BaseRequest2<EdgeResource, IElement> {
+ final GraphToDiagramSynchronizer synchronizer;
final ErrorHandler errorHandler;
final ListenerSupport listenerSupport;
final IDiagram diagram;
final ConnectionSegmentAdapter adapter;
- public EdgeRequest(ICanvasContext canvas, ErrorHandler errorHandler, ListenerSupport listenerSupport, IDiagram diagram, ConnectionSegmentAdapter adapter, EdgeResource resource) {
+ public EdgeRequest(GraphToDiagramSynchronizer synchronizer, ICanvasContext canvas, ErrorHandler errorHandler, ListenerSupport listenerSupport, IDiagram diagram, ConnectionSegmentAdapter adapter, EdgeResource resource) {
super(canvas, resource);
assert(adapter != null);
+ assert(synchronizer != null);
+ this.synchronizer = synchronizer;
this.errorHandler = errorHandler;
this.listenerSupport = listenerSupport;
this.diagram = diagram;
@Override
public void execute(AsyncReadGraph graph, IElement element) {
+
+ if (DebugPolicy.DEBUG_EDGE_LOAD)
+ System.out.println(" SPAWNED EDGE SEGMENT: " + element + " " + data);
+
+ // Register this for updates to work correctly
+ synchronizer.mapElementIfNew(data, element);
+
// task.finish();
// Tell the procedure to use this element
procedure.execute(graph, element);