X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fadapter%2FGraphToDiagramSynchronizer.java;h=9be80c34e9c1d8c611a762e851a866dea62e0c3d;hb=0d9b90834ce56b292c00b1a39850ed842c3e4d42;hp=dd6c9b7d10f7e7e916264a30bc3f24af71180627;hpb=e5db6157fd8722c946613d4e46d7aaf6bfa92609;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/GraphToDiagramSynchronizer.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/GraphToDiagramSynchronizer.java index dd6c9b7d1..9be80c34e 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/GraphToDiagramSynchronizer.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/GraphToDiagramSynchronizer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * Copyright (c) 2007, 2018 Association for Decentralized Information Management * in Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -1302,6 +1302,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID // ITask task5 = ThreadLogger.getInstance().begin("DiagramContentRequest2"); ITask task42 = ThreadLogger.getInstance().begin("DiagramContentRequest2"); DiagramContents contents = g.syncRequest(query); + //System.err.println("contents: " + contents); task42.finish(); // task5.finish(); monitor.worked(10); @@ -1338,7 +1339,12 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID ArrayMap.keys(ProfileKeys.DIAGRAM, ProfileKeys.CANVAS, ProfileKeys.NODE_MAP).values(GraphToDiagramSynchronizer.this.diagram, canvas, dn), new CanvasNotification(canvas)); - profileObserver.listen(g, GraphToDiagramSynchronizer.this); + g.getSession().asyncRequest(new AsyncReadRequest() { + @Override + public void run(AsyncReadGraph graph) { + profileObserver.listen(graph, GraphToDiagramSynchronizer.this); + } + }); return d; @@ -1623,7 +1629,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID this.removedRouteGraphConnections.clear(); } - void processNodes(AsyncReadGraph graph) { + void processNodes(ReadGraph graph) throws DatabaseException { for (Map.Entry entry : changes.elements.entrySet()) { @@ -1635,7 +1641,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID IElement mappedElement = getMappedElement(element); if (mappedElement == null) { if (DebugPolicy.DEBUG_NODE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY ADDED ELEMENT: " @@ -1699,7 +1705,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } }; - graph.asyncRequest(new ConnectionRequest(canvas, diagram, element, errorHandler, loadListener), new AsyncProcedure() { + graph.syncRequest(new ConnectionRequest(canvas, diagram, element, errorHandler, loadListener), new AsyncProcedure() { @Override public void execute(AsyncReadGraph graph, final IElement e) { if (e == null) @@ -1792,7 +1798,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID }; //System.out.println("NODE REQUEST: " + element); - graph.asyncRequest(new NodeRequest(canvas, diagram, element, loadListener), new AsyncProcedure() { + graph.syncRequest(new NodeRequest(canvas, diagram, element, loadListener), new AsyncProcedure() { @Override public void execute(AsyncReadGraph graph, IElement e) { if (e == null) @@ -1826,7 +1832,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID case REMOVED: { IElement e = getMappedElement(element); if (DebugPolicy.DEBUG_NODE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY REMOVED ELEMENT: " @@ -1839,6 +1845,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } break; } + default: } } } @@ -1872,6 +1879,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } break; } + default: } } } @@ -1915,6 +1923,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID case REMOVED: { removedConnectionEntities.add(ce); } + default: } } @@ -1932,7 +1941,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } } - void processRouteGraphConnections(AsyncReadGraph graph) { + void processRouteGraphConnections(ReadGraph graph) throws DatabaseException { for (Map.Entry entry : changes.routeGraphConnections.entrySet()) { final Resource connection = entry.getKey(); @@ -2010,7 +2019,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } }; - graph.asyncRequest(new ConnectionRequest(canvas, diagram, connection, errorHandler, loadListener), new Procedure() { + graph.syncRequest(new ConnectionRequest(canvas, diagram, connection, errorHandler, loadListener), new Procedure() { @Override public void execute(final IElement e) { if (e == null) @@ -2039,6 +2048,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID removedRouteGraphConnections.add(e); break; } + default: } } } @@ -2052,7 +2062,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID return assertMappedConnection(connection); } - void processBranchPoints(AsyncReadGraph graph) { + void processBranchPoints(ReadGraph graph) throws DatabaseException { for (Map.Entry entry : changes.branchPoints.entrySet()) { final Resource element = entry.getKey(); @@ -2063,7 +2073,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID IElement mappedElement = getMappedElement(element); if (mappedElement == null) { if (DebugPolicy.DEBUG_NODE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY ADDED BRANCH POINT: " @@ -2115,7 +2125,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } }; - graph.asyncRequest(new NodeRequest(canvas, diagram, element, loadListener), new AsyncProcedure() { + graph.syncRequest(new NodeRequest(canvas, diagram, element, loadListener), new AsyncProcedure() { @Override public void execute(AsyncReadGraph graph, IElement e) { if (e != null) { @@ -2141,7 +2151,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID case REMOVED: { IElement e = getMappedElement(element); if (DebugPolicy.DEBUG_NODE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY REMOVED BRANCH POINT: " @@ -2154,11 +2164,12 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } break; } + default: } } } - void processConnectionSegments(AsyncReadGraph graph) { + void processConnectionSegments(ReadGraph graph) throws DatabaseException { ConnectionSegmentAdapter adapter = connectionSegmentAdapter; for (Map.Entry entry : changes.connectionSegments.entrySet()) { @@ -2170,7 +2181,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID IElement mappedElement = getMappedElement(seg); if (mappedElement == null) { if (DebugPolicy.DEBUG_EDGE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY ADDED CONNECTION SEGMENT: " + seg.toString() @@ -2178,7 +2189,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } }); - graph.asyncRequest(new EdgeRequest(canvas, errorHandler, canvasListenerSupport, diagram, adapter, seg), new AsyncProcedure() { + graph.syncRequest(new EdgeRequest(canvas, errorHandler, canvasListenerSupport, diagram, adapter, seg), new AsyncProcedure() { @Override public void execute(AsyncReadGraph graph, IElement e) { if (DebugPolicy.DEBUG_EDGE_LOAD) @@ -2206,7 +2217,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID case REMOVED: { final IElement e = getMappedElement(seg); if (DebugPolicy.DEBUG_EDGE_LOAD) - graph.asyncRequest(new ReadRequest() { + graph.syncRequest(new ReadRequest() { @Override public void run(ReadGraph graph) throws DatabaseException { System.out.println(" EXTERNALLY REMOVED CONNECTION SEGMENT: " + seg.toString() + " - " @@ -2218,6 +2229,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID } break; } + default: } } } @@ -2260,9 +2272,9 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID Object task = Timing.BEGIN("processNodesConnections"); //System.out.println("---- PROCESS NODES & CONNECTIONS BEGIN"); if (!changes.elements.isEmpty()) { - graph.syncRequest(new AsyncReadRequest() { + graph.syncRequest(new ReadRequest() { @Override - public void run(AsyncReadGraph graph) { + public void run(ReadGraph graph) throws DatabaseException { processNodes(graph); } @Override @@ -2277,9 +2289,9 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID //System.out.println("---- PROCESS BRANCH POINTS BEGIN"); if (!changes.branchPoints.isEmpty()) { - graph.syncRequest(new AsyncReadRequest() { + graph.syncRequest(new ReadRequest() { @Override - public void run(AsyncReadGraph graph) { + public void run(ReadGraph graph) throws DatabaseException { processBranchPoints(graph); } @Override @@ -2295,9 +2307,9 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID //System.out.println("---- PROCESS CONNECTION SEGMENTS BEGIN"); if (!changes.connectionSegments.isEmpty()) { - graph.syncRequest(new AsyncReadRequest() { + graph.syncRequest(new ReadRequest() { @Override - public void run(AsyncReadGraph graph) { + public void run(ReadGraph graph) throws DatabaseException { processConnectionSegments(graph); } @Override @@ -2312,9 +2324,9 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID task = Timing.BEGIN("processRouteGraphConnections"); if (!changes.routeGraphConnections.isEmpty()) { - graph.syncRequest(new AsyncReadRequest() { + graph.syncRequest(new ReadRequest() { @Override - public void run(AsyncReadGraph graph) { + public void run(ReadGraph graph) throws DatabaseException { processRouteGraphConnections(graph); } @Override @@ -2474,13 +2486,18 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID return; } - // NOTICE: Layer information is loaded from the connection entity resource - // that is shared by all segments of the same connection. - ElementFactoryUtil.loadLayersForElement(graph, layerManager, diagram, edge, info.connection, - new AsyncProcedureAdapter() { + graph.syncRequest(new AsyncReadRequest() { @Override - public void exception(AsyncReadGraph graph, Throwable t) { - error("failed to load layers for connection segment", t); + public void run(AsyncReadGraph graph) { + // NOTICE: Layer information is loaded from the connection entity resource + // that is shared by all segments of the same connection. + ElementFactoryUtil.loadLayersForElement(graph, layerManager, diagram, edge, info.connection, + new AsyncProcedureAdapter() { + @Override + public void exception(AsyncReadGraph graph, Throwable t) { + error("failed to load layers for connection segment", t); + } + }); } });