package org.netxilia.server.js; import static org.netxilia.server.jslib.NetxiliaGlobal.$; import static org.netxilia.server.js.NX.nx; import static org.stjs.javascript.Global.$properties; import static org.stjs.javascript.Global.alert; import org.netxilia.server.js.data.AdminDescription; import org.netxilia.server.js.data.DataSourceConfiguration; import org.netxilia.server.jslib.NetxiliaJQuery; import org.stjs.javascript.Map; import org.stjs.javascript.dom.Element; import org.stjs.javascript.functions.Callback1; import org.stjs.javascript.jquery.Event; import org.stjs.javascript.jquery.plugins.TabsOptions; import org.stjs.javascript.jquery.plugins.TabsUI; import org.stjs.javascript.jquery.plugins.UIEventHandler; public class Admin { private Long datasource; private AdminDescription desc; public void init(AdminDescription desc) { final Admin that = this; this.desc = desc; $("#datasources").tabs(new TabsOptions<NetxiliaJQuery>() { { select = new UIEventHandler<TabsUI<NetxiliaJQuery>>() { public boolean onEvent(Event event, TabsUI<NetxiliaJQuery> ui, Element THIS) { if (ui.index < that.desc.datasources.$length()) { that.viewDatasource(that.desc.datasources.$get(ui.index)); } else { that.newDatasource(); } return false; } }; } }); $("#datasources").tabs("select", 0); that.viewDatasource(that.desc.datasources.$get(0)); $("#createAdminForm").validate(); } public void viewDatasource(DataSourceConfiguration ds) { Map<String, Object> map = $properties(ds); for (String att : map) { $("#ds-" + att).val(map.$get(att)); } } public void testDatasource() { if (this.datasource != null) { nx.resources.ds.test(this.datasource, new Callback1<String>() { @Override public void $invoke(String msg) { alert(msg); } }, null); } } public void newDatasource() { this.viewDatasource(new DataSourceConfiguration() { { id = null; name = ""; driver = ""; url = ""; username = ""; password = ""; } }); } }