![JAR search and dependency download from the Maven repository](/logo.png)
com.google.gwt.angular.client.AngularApp Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of angulargwt Show documentation
Show all versions of angulargwt Show documentation
Fork of AngularGWT based on ltgt's maven-plugin
package com.google.gwt.angular.client;
import com.google.gwt.angular.client.impl.AngularModuleBase;
import com.google.gwt.core.client.Callback;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.ScriptInjector;
import com.google.gwt.query.client.Function;
import com.google.gwt.query.client.Promise;
import com.google.gwt.query.client.Promise.Deferred;
import com.google.gwt.query.client.plugins.deferred.PromiseFunction;
import elemental.client.Browser;
import elemental.js.util.JsArrayOfString;
/**
* Entry point classes define onModuleLoad()
.
*/
public abstract class AngularApp extends AngularEntryPoint {
private static final String ANGULAR_MIN_JS_URL = "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js";
/**
* This is the entry point method.
*/
public final void onModuleLoad() {
loadAngular();
super.onModuleLoad();
}
private void loadAngular() {
if(!isInjected()) {
Promise loadAngular = new ScriptLoader();
loadAngular.done(new Function() {
public void f() {
Browser.getWindow().getConsole().info("loading angularjs succeeded.");
injectModules();
}
});
loadAngular.fail(new Function() {
public void f() {
Browser.getWindow().getConsole().warn("loading angularjs failed.");
}
});
} else {
Browser.getWindow().getConsole().info("angularjs already loaded.");
injectModules();
}
}
private void injectModules() {
final JsArrayOfString moduleNames = JsArrayOfString.create();
final AngularModule[] modules = main();
for (int i = 0; i < modules.length; i++) {
moduleNames.push(((AngularModuleBase) modules[i]).moduleName());
}
bootstrap(moduleNames);
}
private native final boolean isInjected() /*-{
if (!(typeof $wnd.angular === "undefined") && !(null===$wnd.angular)) {
return true;
}
return false;
}-*/;
private native void bootstrap(JsArrayOfString moduleNames) /*-{
$wnd.angular.bootstrap($doc, moduleNames);
}-*/;
/**
* Override this and invoke GWT.create() on your modules.
*/
private final static class ScriptLoader extends PromiseFunction {
@Override
public void f(final Deferred dfd) {
ScriptInjector
.fromUrl(ANGULAR_MIN_JS_URL)
.setCallback(new Callback() {
@Override
public void onFailure(Exception reason) {
dfd.reject(reason);
}
@Override
public void onSuccess(Void result) {
dfd.resolve();
}
}).setWindow(ScriptInjector.TOP_WINDOW).inject();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy