package org.opennms.features.gwt.ksc.add.client; import java.util.List; import org.opennms.features.gwt.ksc.add.client.rest.DefaultKscReportService; import org.opennms.features.gwt.ksc.add.client.rest.KscReportService; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.NodeList; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.Response; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.RootPanel; public class KSCResourceAddGraph implements EntryPoint { final static public boolean DEBUG = true; final static private String m_debugResponse = "{" + "\"@totalCount\":\"2\"," + "\"@count\":\"2\"," + "\"kscReport\":[" + "{\"@label\":\"Test\",\"@id\":\"0\"}," + "{\"@label\":\"Test 2\",\"@id\":\"1\"}" + "]" + "}"; public void onModuleLoad() { final KscReportService service = new DefaultKscReportService(); final NodeList<Element> nodes = RootPanel.getBodyElement().getElementsByTagName("opennms-addKscReport"); if (nodes.getLength() > 0) { service.getAllReports(new RequestCallback() { @Override public void onResponseReceived(final Request request, final Response response) { final String responseText; if (response.getStatusCode() == 200) { responseText = response.getText(); } else { if (DEBUG) { responseText = m_debugResponse; } else { Window.alert("Error occurred retrieving list of KSC reports (response was " + response.getStatusCode() + "."); responseText = null; } } if (responseText != null) { handleResponseText(nodes, responseText); } } @Override public void onError(final Request request, final Throwable exception) { if (DEBUG) { handleResponseText(nodes, m_debugResponse); } else { Window.alert("Error occurred retrieving list of KSC reports: " + exception.getLocalizedMessage()); } } public void handleResponseText(final NodeList<Element> nodes, final String responseText) { final List<KscReport> reports = KscReportRestResponseMapper.translate(responseText); for (int i = 0; i < nodes.getLength(); i++) { createView(nodes.getItem(i), reports); } } }); } } private void createView(final Element elem, final List<KscReport> kscReportList) { final GraphInfo info = new GraphInfo(elem); GWT.log("creating view for graph " + info); new AppController(kscReportList, info).go(RootPanel.get(elem.getId())); } }