X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.g2d%2Fsrc%2Forg%2Fsimantics%2Fg2d%2Fcanvas%2Fimpl%2FAbstractCanvasParticipant.java;h=a7950d26d6cf268939661b4120abf2b37917ff0a;hp=4de85481281222fc2646c8960bd452f51dffb6f6;hb=eaacbec0a17e8576b7502680de298fc14c51eef9;hpb=09414975498828d06ac41a95a1e3ee5c2531b934 diff --git a/bundles/org.simantics.g2d/src/org/simantics/g2d/canvas/impl/AbstractCanvasParticipant.java b/bundles/org.simantics.g2d/src/org/simantics/g2d/canvas/impl/AbstractCanvasParticipant.java index 4de854812..a7950d26d 100644 --- a/bundles/org.simantics.g2d/src/org/simantics/g2d/canvas/impl/AbstractCanvasParticipant.java +++ b/bundles/org.simantics.g2d/src/org/simantics/g2d/canvas/impl/AbstractCanvasParticipant.java @@ -12,6 +12,8 @@ package org.simantics.g2d.canvas.impl; import java.lang.reflect.Field; +import java.util.HashSet; +import java.util.Set; import org.simantics.g2d.canvas.ICanvasContext; import org.simantics.g2d.canvas.ICanvasParticipant; @@ -171,6 +173,9 @@ public abstract class AbstractCanvasParticipant implements ICanvasParticipant { AbstractCanvasParticipant.this.depsSatisfied = depsSatisfied; } }; + + Set missingDependencies = new HashSet<>(); + @SuppressWarnings("unchecked") private void _itemAdded(IContext sender, ICanvasParticipant item) { @@ -532,8 +537,12 @@ public abstract class AbstractCanvasParticipant implements ICanvasParticipant { continue; Field f = rd.field; Object o = f.get(this); - if (o == null) + if (o == null) { + missingDependencies.add(f); return false; + } else { + missingDependencies.remove(f); + } } } catch (Exception e) { throw new RuntimeException(e);