Java tutorial
package nz.org.winters.appspot.acrareporter.client; /* * Copyright 2013 Mathew Winters * 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. */ import nz.org.winters.appspot.acrareporter.client.ui.AppLoadingView; import nz.org.winters.appspot.acrareporter.client.ui.FrontPage; import nz.org.winters.appspot.acrareporter.client.ui.Overview; import nz.org.winters.appspot.acrareporter.client.ui.SignUp; import nz.org.winters.appspot.acrareporter.shared.Configuration; import nz.org.winters.appspot.acrareporter.shared.LoginInfo; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.storage.client.Storage; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; public class ViewErrorReports implements EntryPoint { private static ViewErrorReportsUiBinder uiBinder = GWT.create(ViewErrorReportsUiBinder.class); @UiField SimplePanel panel; interface ViewErrorReportsUiBinder extends UiBinder<Widget, ViewErrorReports> { } // public ViewErrorReports() // { // // initWidget(uiBinder.createAndBindUi(this)); // } // // public ViewErrorReports(String firstName) // { // initWidget(uiBinder.createAndBindUi(this)); // // } // private final RemoteDataServiceAsync remoteService = GWT.create(RemoteDataService.class); private LoginInfo loginInfo = null; // private boolean mSignup; // private VerticalPanel loginPanel = new VerticalPanel(); // private Label loginLabel = new Label( // "Please sign in to your Google Account to access the Console."); // private Anchor sigCnInLink = new Anchor("Sign In"); String getBaseURL() { String baseUrl = GWT.getHostPageBaseURL(); if (!GWT.isProdMode()) { baseUrl = "http://127.0.0.1:8888/ACRAReporter.html?gwt.codesvr=127.0.0.1:9997"; } return baseUrl; } public void onModuleLoad() { DOM.removeChild(RootPanel.getBodyElement(), DOM.getElementById("loading")); LoginServiceAsync loginService = GWT.create(LoginService.class); Window.enableScrolling(false); Window.setMargin("0px"); // this little trick ensures that when using the debug instance locally that // the // login redirects work correctly.. String baseUrl = getBaseURL(); loginService.login(baseUrl, new AsyncCallback<LoginInfo>() { public void onFailure(Throwable error) { GWT.log("login onFailure: " + error.getMessage()); handleError(error); } public void onSuccess(LoginInfo result) { loginInfo = result; // GWT.log("login url = " + loginInfo.getLoginUrl()); if (loginInfo.isLoggedIn()) { boolean signup = false; if (Configuration.appUserMode == Configuration.UserMode.umMultipleSeperate) { Storage stockStore = Storage.getLocalStorageIfSupported(); if (stockStore != null) { if (stockStore.getItem("signup") != null) { signup = stockStore.getItem("signup").equals(Boolean.toString(true)); stockStore.removeItem("signup"); } } } if (signup) { loadSignup(); } else if (loginInfo.getAppUserShared() != null) { loadConsole(); } else { Window.alert("Not a valid user"); Window.Location.replace(loginInfo.getLogoutUrl()); } } else if (Configuration.appUserMode == Configuration.UserMode.umMultipleSeperate) { loadFrontPage(); } else { loadLogin(false); } } }); } protected void loadSignup() { // RootLayoutPanel.get().add( new SignUp(loginInfo, new SignUp.Callback() { @Override public void finished() { Window.Location.replace(getBaseURL()); } }); } // private void doLogout() // { // Window.Location.replace(loginInfo.getLogoutUrl()); // } private void loadFrontPage() { RootLayoutPanel.get().add(new FrontPage(new FrontPage.Callback() { @Override public void buttonWiki() { Window.Location.replace(Configuration.wikiURL); } @Override public void buttonSignUp() { loadLogin(true); } @Override public void buttonLogin() { loadLogin(false); } })); } private void loadLogin(boolean signup) { GWT.log("load login"); // mSignup = signup; if (signup) { Storage stockStore = Storage.getLocalStorageIfSupported(); if (stockStore != null) { stockStore.setItem("signup", Boolean.toString(signup)); } else { Window.alert("HTML5 Storage Compatible Browser Required!"); } } Window.Location.replace(loginInfo.getLoginUrl()); } private void handleError(Throwable error) { Window.alert(error.getMessage()); if (error instanceof NotLoggedInException) { Window.Location.replace(loginInfo.getLogoutUrl()); } } private void loadConsole() { RootLayoutPanel.get().clear(); RootLayoutPanel.get().add(uiBinder.createAndBindUi(this)); // panel.add(new OldMainPage(loginInfo)); panel.add(new Overview(loginInfo)); } public void startLoading() { AppLoadingView.getInstance().start(); } public void stopLoading() { AppLoadingView.getInstance().stop(); } // @UiHandler("buttonLogout") // void onButtonLogoutClick(ClickEvent event) // { // if(Window.confirm("Logout of your google account?")) // { // Window.Location.replace(loginInfo.getLogoutUrl()); // } // } }