/** * This file is part of ObjectFabric (http://objectfabric.org). * * ObjectFabric is licensed under the Apache License, Version 2.0, the terms * of which may be found at http://www.apache.org/licenses/LICENSE-2.0.html. * * Copyright ObjectFabric Inc. * * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ package examples.client; import org.objectfabric.AsyncCallback; import org.objectfabric.GWTWorkspace; import org.objectfabric.IndexListener; import org.objectfabric.Resource; import org.objectfabric.TArrayLong; import org.objectfabric.WebSocket; import org.objectfabric.Workspace; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.Element; import com.google.gwt.i18n.client.NumberFormat; /** * Code for the project's home page. */ @SuppressWarnings("unchecked") public class Main implements EntryPoint { public void onModuleLoad() { // Like opening a browser Workspace w = new GWTWorkspace(); // Enables WebSocket connections w.addURIHandler(new WebSocket()); // Get array of long and stay connected through WebSocket String uri = "ws://test.objectfabric.org/array"; w.openAsync(uri, new AsyncCallback<Resource>() { @Override public void onSuccess(Resource result) { final TArrayLong array = (TArrayLong) result.get(); final NumberFormat format = NumberFormat.getDecimalFormat(); // Called when an array element is set array.addListener(new IndexListener() { @Override public void onSet(int i) { Element div = Document.get().getElementById("div" + i); div.setInnerHTML(format.format(array.get(i))); } }); } @Override public void onFailure(Exception e) { } }); } }