From: Marko Luukkainen Date: Mon, 25 Feb 2019 12:21:42 +0000 (+0000) Subject: Merge "DelayedWriteGraph denyValue should deny the value statement as well" into... X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=a41e6ca92a50b8062a9d865e1de8fa7b87115025;hp=10d6ba69ed8e043b5c288cbbf442d04dabacddaa;p=simantics%2Fplatform.git Merge "DelayedWriteGraph denyValue should deny the value statement as well" into release/1.35.1 --- diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java index 3eb17213b..e8047450e 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/binding/factory/TroveBindingsProvider.java @@ -75,7 +75,6 @@ public class TroveBindingsProvider implements BindingProvider { for (int i=0; i m = ((Map)map); - Binding kb = getKeyBinding(); - for (Object k : m.keySet()) - { - if (kb.equals(k, key)) - return k; - } - return key; - } @SuppressWarnings("unchecked") @Override public void put(Object map, Object key, Object value) { Map m = ((Map)map); - Object ck = getComparableKey(m, key); - m.remove(ck); m.put(key, value); } @@ -254,8 +236,6 @@ public class HashMapBinding extends MapBinding { public void putAll(Object map, Map src) throws BindingException { Map m = ((Map )map); for (Entry e : (Set >) src.entrySet()) { - Object ck = getComparableKey(map, e.getKey()); - m.remove(ck); m.put(e.getKey(), e.getValue()); } } diff --git a/bundles/org.simantics.g2d/src/org/simantics/g2d/event/adapter/SWTMouseEventAdapter.java b/bundles/org.simantics.g2d/src/org/simantics/g2d/event/adapter/SWTMouseEventAdapter.java index 924c7c252..1da7fe647 100644 --- a/bundles/org.simantics.g2d/src/org/simantics/g2d/event/adapter/SWTMouseEventAdapter.java +++ b/bundles/org.simantics.g2d/src/org/simantics/g2d/event/adapter/SWTMouseEventAdapter.java @@ -166,8 +166,8 @@ public class SWTMouseEventAdapter extends AbstractEventAdapter implements MouseL sender, e.time & 0xffffffff, MOUSE_ID, buttonStatus, getStateMask(e), getControlPosition(e), getScreenPosition(e), - MouseWheelMovedEvent.WHEEL_UNIT_SCROLL, - 0, + MouseWheelMovedEvent.WHEEL_UNIT_SCROLL, + MouseWheelMovedEvent.SCROLL_AMOUNT_ZERO, e.count )); } diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/EventQueue.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/EventQueue.java index 9b0980600..d3ab61355 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/EventQueue.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/EventQueue.java @@ -42,20 +42,19 @@ public class EventQueue implements IEventQueue, IEventHandler { return EventTypes.AnyMask; } - /** - * - */ - private MouseWheelMovedEvent lastMouseWheelMovedEvent; - private static final String DISABLE_DUPLICATE_REMOVAL = "org.simantics.scenegraph.g2d.events.disableDuplicateMouseWheelEvent"; private static final boolean IGNORE_DUPLICATE = !Boolean.parseBoolean(System.getProperty(DISABLE_DUPLICATE_REMOVAL)); private boolean ignoreDuplicateMouseWheelMovedEvent(Event e) { if (IGNORE_DUPLICATE && e instanceof MouseWheelMovedEvent) { - if (e.time > 0 && (lastMouseWheelMovedEvent != null && lastMouseWheelMovedEvent.time < 0)) { + MouseWheelMovedEvent event = (MouseWheelMovedEvent) e; + // if (e.time > 0 && (lastMouseWheelMovedEvent != null && lastMouseWheelMovedEvent.time < 0)) { + // apparently this is a better way to distinguish between SWT & AWT events + // SWT based event constructs the scrollAmount to = 0 + // See org.simantics.g2d.event.adapter.SWTMouseEventAdapter.mouseScrolled(MouseEvent) L171 + if (event.scrollAmount != MouseWheelMovedEvent.SCROLL_AMOUNT_ZERO) { return true; } - lastMouseWheelMovedEvent = (MouseWheelMovedEvent) e; } return false; } diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/MouseEvent.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/MouseEvent.java index 92c97b787..8070ae358 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/MouseEvent.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/events/MouseEvent.java @@ -154,6 +154,8 @@ public abstract class MouseEvent extends Event { private static final long serialVersionUID = -7896477913481842708L; + public static final int SCROLL_AMOUNT_ZERO = 0; + /** * Constant representing scrolling by "units" (like scrolling with the * arrow keys) diff --git a/bundles/org.simantics.utils/src/org/simantics/utils/ReflectionUtils.java b/bundles/org.simantics.utils/src/org/simantics/utils/ReflectionUtils.java index b9d794e40..7f0f6c589 100644 --- a/bundles/org.simantics.utils/src/org/simantics/utils/ReflectionUtils.java +++ b/bundles/org.simantics.utils/src/org/simantics/utils/ReflectionUtils.java @@ -58,6 +58,14 @@ public class ReflectionUtils { public static Class getSingleParameterTypeExtending(Class clazz) { Type t = clazz.getGenericSuperclass(); + while (t instanceof Class) { + Class cl = (Class) t; + t = cl.getGenericSuperclass(); + if (t == null) { + // according to javadoc, we have reached java.lang.Object so no can do + break; + } + } if(t instanceof Class) { throw new UnsupportedOperationException("Missing parameter type for input class '" + clazz.getCanonicalName() + "'"); } else if (t instanceof ParameterizedType) {