package com.eas.facade; public class JsFacade { public native static void init()/*-{ function predefine(aDeps, aName, aDefiner) { @com.eas.core.Predefine::predefine(Lcom/google/gwt/core/client/JavaScriptObject;Ljava/lang/String;Lcom/google/gwt/core/client/JavaScriptObject;)(aDeps, aName, aDefiner); } predefine(['environment', 'logger', 'resource', 'id', 'md5', 'invoke', 'orm', 'core/report', 'rpc', 'extend', 'ui', 'forms', 'forms/anchors', 'forms/form'], 'facade', function(Environment, Logger, Resource, Id, Md5, Invoke, Orm, Report, Rpc, extend, Ui, Forms, Anchors, Form) { var module = {}; Object.defineProperty(module, "logout", { value : function(onSuccess, onFailure) { return module.principal.logout(onSuccess, onFailure); } }); Object.defineProperty(module, "export", { value : function(aTarget) { module.require = aTarget.require; aTarget.P = module; } }); for ( var e in Environment) { if (e === '$H') continue; (function() { var p = e; Object.defineProperty(module, p, { enumerable : true, get : function(){ return Environment[p]; } }); }()); } Object.defineProperty(module, 'Logger', { enumerable : true, value : Logger }); Object.defineProperty(module, 'Resource', { enumerable : true, value : Resource }); Object.defineProperty(module, 'ID', { enumerable : true, value : Id }); Object.defineProperty(module, 'IdGenerator', { enumerable : true, value : Id }); Object.defineProperty(module, 'MD5', { enumerable : true, value : Md5 }); Object.defineProperty(module, 'Form', { enumerable : true, value : Form }); Object.defineProperty(module, 'MD5Generator', { enumerable : true, value : Md5 }); for ( var o in Orm) { if (o === '$H') continue; (function() { var p = o; Object.defineProperty(module, p, { enumerable : true, get : function(){ return Orm[p]; } }); }()); } Object.defineProperty(module, 'Report', { enumerable : true, value : Report }); Object.defineProperty(module, "invokeDelayed", { value : Invoke.delayed }); Object.defineProperty(module, 'invokeLater', { value : Invoke.later }); Object.defineProperty(module, 'ServerModule', { enumerable : true, value : Rpc.Proxy }); Object.defineProperty(module, 'requireRemotes', { enumerable : true, value : Rpc.requireRemotes }); Object.defineProperty(module, 'extend', { enumerable : true, value : extend }); // aka forms/index... function accept(constructors) { for (var c in constructors) { if (c === '$H') continue; Object.defineProperty(module, c, { enumerable : true, value : constructors[c] }); } } accept(@com.eas.widgets.WidgetsPublisher::getConstructors()()); accept(@com.eas.bound.BoundPublisher::getConstructors()()); accept(@com.eas.grid.GridPublisher::getConstructors()()); accept(@com.eas.menu.MenuPublisher::getConstructors()()); accept(@com.eas.ui.EventsPublisher::getConstructors()()); for (var u in Ui) { if (u === '$H') continue; (function() { var p = u; Object.defineProperty(module, p, { enumerable : true, get : function(){ return Ui[p]; } }); }()); } for (var f in Forms) { if (f === '$H') continue; (function() { var p = f; if(module[p] !== Forms[p]){ // See Forms.loadWidgets,Forms.readWidgets and Ui.loadWidgets,Ui.readWidgets Object.defineProperty(module, p, { enumerable : true, get : function(){ return Forms[p]; } }); } }()); } Object.defineProperty(module, 'Anchors', { enumerable : true, value : Anchors }); return module; }); }-*/; }