From 869c206c4fcc8001bd2e1d66f704290331813835 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Jan 2016 14:24:34 +1000 Subject: Initial Commit --- src/Java/binnie/craftgui/events/EventHandler.java | 53 +++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/Java/binnie/craftgui/events/EventHandler.java (limited to 'src/Java/binnie/craftgui/events/EventHandler.java') diff --git a/src/Java/binnie/craftgui/events/EventHandler.java b/src/Java/binnie/craftgui/events/EventHandler.java new file mode 100644 index 0000000000..9d2e5d2ad3 --- /dev/null +++ b/src/Java/binnie/craftgui/events/EventHandler.java @@ -0,0 +1,53 @@ +package binnie.craftgui.events; + +import binnie.craftgui.core.IWidget; +import java.util.List; + +public abstract class EventHandler +{ + Class eventClass; + Origin origin = Origin.Any; + IWidget relative = null; + + public EventHandler(Class eventClass) + { + this.eventClass = eventClass; + } + + public EventHandler setOrigin(Origin origin, IWidget relative) + { + this.origin = origin; + this.relative = relative; + return this; + } + + public abstract void onEvent(E paramE); + + public final boolean handles(Event e) + { + return (this.eventClass.isInstance(e)) && (this.origin.isOrigin(e.getOrigin(), this.relative)); + } + + public static enum Origin + { + Any, Self, Parent, DirectChild; + + private Origin() {} + + public boolean isOrigin(IWidget origin, IWidget test) + { + switch (EventHandler.1.$SwitchMap$binnie$craftgui$events$EventHandler$Origin[ordinal()]) + { + case 1: + return true; + case 2: + return test.getWidgets().contains(origin); + case 3: + return test.getParent() == origin; + case 4: + return test == origin; + } + return false; + } + } +} -- cgit