/* * Copyright 2013 Daniel Kurka * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.googlecode.gwtphonegap.client.inappbrowser.browser; import com.google.gwt.core.client.JavaScriptObject; import com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserCallback; import com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserReferenceBaseImpl; public class InAppBrowserReferenceBrowserImpl extends InAppBrowserReferenceBaseImpl { private final JavaScriptObject windowRef; public InAppBrowserReferenceBrowserImpl(JavaScriptObject windowRef) { this.windowRef = windowRef; } @Override public native void close() /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; ref.close(); }-*/; @Override protected void addJavaScriptHandlers() { } @Override public native void show() /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; ref.show(); }-*/; @Override public native void executeScript(String code, InAppBrowserCallback callback) /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; var script = ref.document.createElement('script'); script.type = 'text/javascript'; script.innerText = code; ref.document.head.appendChild(script); var c = function(){ callback.@com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserCallback::done(*)(null); }; setTimeout($entry(c), 1); }-*/; @Override public native void executeScriptFromUrl(String url, InAppBrowserCallback callback) /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; var script = ref.document.createElement('script'); script.type = 'text/javascript'; script.src = url; ref.document.head.appendChild(script); var c = function(){ callback.@com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserCallback::done(*)(null); }; setTimeout($entry(c), 1); }-*/; @Override public native void injectCss(String css, InAppBrowserCallback callback) /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; var link = ref.document.createElement('style'); link.type = 'text/css'; link.innertText = css; ref.document.head.appendChild(link); var c = function(){ callback.@com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserCallback::done(*)(null); }; setTimeout($entry(c), 1); }-*/; //<link rel="stylesheet" type="text/css" href="themes/euroPort/master/styles.css"> @Override public native void injectCssFromUrl(String url, InAppBrowserCallback callback) /*-{ var ref = this.@com.googlecode.gwtphonegap.client.inappbrowser.browser.InAppBrowserReferenceBrowserImpl::windowRef; var link = ref.document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = url; ref.document.head.appendChild(link); var c = function(){ callback.@com.googlecode.gwtphonegap.client.inappbrowser.InAppBrowserCallback::done(*)(null); }; setTimeout($entry(c), 1); }-*/; }