X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2Fevents%2Fadapter%2FAbstractEventAdapter.java;h=a0e0fd47feaecdf4f834db1d24230ac29b535413;hp=ef718456847e26c59b273c8c82429ba0594ad0c8;hb=96ae58fda842dcd8266192eeb1399324b092154a;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/adapter/AbstractEventAdapter.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/adapter/AbstractEventAdapter.java index ef7184568..a0e0fd47f 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/adapter/AbstractEventAdapter.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/adapter/AbstractEventAdapter.java @@ -53,4 +53,13 @@ public abstract class AbstractEventAdapter { delegator.handleEvent(e); } + protected void syncHandleEvent(Event e) { + if (queue instanceof IEventHandler) + ((IEventHandler) queue).handleEvent(e); + else if (delegator != null && EventTypes.passes(delegator, e)) + delegator.handleEvent(e); + else + throw new UnsupportedOperationException("Cannot handle event synchronously, no handler available: " + e); + } + }