import org.simantics.diagram.stubs.DiagramResource;
import org.simantics.diagram.synchronization.ErrorHandler;
import org.simantics.g2d.canvas.ICanvasContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import gnu.trove.list.array.TIntArrayList;
import gnu.trove.map.hash.THashMap;
*/
public class DiagramContentRequest extends BaseRequest<Resource, DiagramContents> {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DiagramContentRequest.class);
+
int previousElementCount = 32;
ErrorHandler errorHandler;
// These help loading result.elements in the correct order.
final AtomicInteger index = new AtomicInteger();
final TIntArrayList unrecognizedElementIndices = new TIntArrayList();
-
+
+ if (!g.hasStatement(data)) {
+ LOGGER.warn("Most likely diagram is being removed and therefore ordered list can not be found for {}", data);
+ return new DiagramContents(); // or null, I don't know
+ }
Collection<Resource> components = OrderedSetUtils.toList(g, data);
DiagramContents res = g.syncRequest((AsyncRead<DiagramContents>)(graph, procedure) -> {
// keep their order the same as in the ordered set.
final int elementIndex = index.getAndIncrement();
result.elements.add(component);
-
- graph.forTypes(component, new ProcedureAdapter<Set<Resource>>() {
+
+ graph.asyncRequest(new org.simantics.db.common.primitiverequest.Types(component), new ProcedureAdapter<Set<Resource>>() {
@Override
public void execute(Set<Resource> types) {