aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/events/EventHandler.java
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
commit869c206c4fcc8001bd2e1d66f704290331813835 (patch)
tree96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/events/EventHandler.java
parentec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff)
downloadGT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip
Initial Commit
Diffstat (limited to 'src/Java/binnie/craftgui/events/EventHandler.java')
-rw-r--r--src/Java/binnie/craftgui/events/EventHandler.java53
1 files changed, 53 insertions, 0 deletions
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<E extends Event>
+{
+ Class<E> eventClass;
+ Origin origin = Origin.Any;
+ IWidget relative = null;
+
+ public EventHandler(Class<E> 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;
+ }
+ }
+}