package de.uni_luebeck.inb.krabbenhoeft.eQTL.client.scroller; public class RegisterForAutomation { public static interface HasAutomationHandlers { public void onMouseOver(String fromBP, int itemIndex); public void onMouseOut(String fromBP, int itemIndex); public void onMouseClick(String fromBP, int itemIndex); } public static interface HasObjectAutomationHandlers { public void onMouseOver(Object object); public void onMouseOut(Object object); public void onMouseClick(Object object); } public static int regCounter = 0; public static String register(String baseId, HasAutomationHandlers registerMe) { String id = "d" + (regCounter++) + "b"; registerInner(baseId, id, registerMe); return "document." + baseId + "." + id; } public static native void registerInner(String baseId, String id, HasAutomationHandlers registerMe) /*-{ var foo = registerMe; $doc[baseId][id] = { over: function(f,i) { foo.@de.uni_luebeck.inb.krabbenhoeft.eQTL.client.scroller.RegisterForAutomation.HasAutomationHandlers::onMouseOver(Ljava/lang/String;I)(f,i); }, out: function(f,i) { foo.@de.uni_luebeck.inb.krabbenhoeft.eQTL.client.scroller.RegisterForAutomation.HasAutomationHandlers::onMouseOut(Ljava/lang/String;I)(f,i); }, click: function(f,i) { foo.@de.uni_luebeck.inb.krabbenhoeft.eQTL.client.scroller.RegisterForAutomation.HasAutomationHandlers::onMouseClick(Ljava/lang/String;I)(f,i); }, }; }-*/; public static native void clearBaseId(String baseId) /*-{ $doc[baseId] = {}; }-*/; }