package org.opennms.features.gwt.graph.resource.list.client;
import org.opennms.features.gwt.graph.resource.list.client.view.ResourceListItem;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.user.client.Window.Navigator;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class GraphResourceList implements EntryPoint {
/**
* This is the entry point method.
*/
public void onModuleLoad() {
if(Navigator.getUserAgent().contains("MSIE")) {
NodeList<Element> divs = RootPanel.getBodyElement().getElementsByTagName("div");
for(int k = 0; k < divs.getLength(); k++) {
Element element = divs.getItem(k);
if(element.hasAttribute("name")) {
if(element.getAttribute("name").equals("opennms-kscChooseResourceList")) {
createKscChooseResourceView(element);
}else if(element.getAttribute("name").equals("opennms-graphResourceList")) {
createGraphResourceView(element);
}else if(element.getAttribute("name").equals("opennms-nodeSnmpReportList")) {
createKscReportListView(element);
}else if(element.getAttribute("name").equals("opennms-kscCustomReportList")) {
createKscCustomReportView(element);
}else if(element.getAttribute("name").equals("opennms-reportSelectionList")) {
createReportSelectView(element);
}
}
}
}else {
NodeList<Element> kscChooseResourceList = RootPanel.getBodyElement().getElementsByTagName("opennms:kscChooseResourceList");
if(kscChooseResourceList.getLength() > 0) {
for(int i = 0; i < kscChooseResourceList.getLength(); i++) {
Element elem = kscChooseResourceList.getItem(i);
createKscChooseResourceView(elem);
}
}
NodeList<Element> graphResourceListNodes = RootPanel.getBodyElement().getElementsByTagName("opennms:graphResourceList");
if(graphResourceListNodes.getLength() > 0) {
for(int i = 0; i < graphResourceListNodes.getLength(); i++) {
Element elem = graphResourceListNodes.getItem(i);
createGraphResourceView(elem);
}
}
NodeList<Element> nodeSnmpReportNodes = RootPanel.getBodyElement().getElementsByTagName("opennms:nodeSnmpReportList");
if(nodeSnmpReportNodes.getLength() > 0) {
for(int i = 0; i < nodeSnmpReportNodes.getLength(); i++) {
Element elem = nodeSnmpReportNodes.getItem(i);
createKscReportListView(elem);
}
}
NodeList<Element> kscCustomReportNodes = RootPanel.getBodyElement().getElementsByTagName("opennms:kscCustomReportList");
if(kscCustomReportNodes.getLength() > 0) {
for(int i = 0; i < kscCustomReportNodes.getLength(); i++) {
Element elem = kscCustomReportNodes.getItem(i);
createKscCustomReportView(elem);
}
}
NodeList<Element> reportSelectListNodes = RootPanel.getBodyElement().getElementsByTagName("opennms:reportSelectionList");
if(reportSelectListNodes.getLength() > 0) {
for(int i = 0; i < reportSelectListNodes.getLength(); i++) {
Element elem = reportSelectListNodes.getItem(i);
createReportSelectView(elem);
}
}
}
}
private void createReportSelectView(Element element) {
ReportSelectListAppController reportSelectListAppController = new ReportSelectListAppController(getResourceListData(getDataObjectAttribute(element)), getBaseUrl());
reportSelectListAppController.go(RootPanel.get(element.getId()));
}
private void createKscCustomReportView(Element element) {
KscCustomReportAppController kscCustomReportList = new KscCustomReportAppController(getResourceListData(getDataObjectAttribute(element)), getBaseUrl());
kscCustomReportList.go(RootPanel.get(element.getId()));
}
private void createKscReportListView(Element element) {
KscReportListAppController nodeSnmpReportList = new KscReportListAppController(getResourceListData(getDataObjectAttribute(element)), getBaseUrl());
nodeSnmpReportList.go(RootPanel.get(element.getId()));
}
private void createGraphResourceView(Element element) {
ResourceListAppController resourceListView = new ResourceListAppController(getResourceListData(getDataObjectAttribute(element)), getBaseUrl());
resourceListView.go(RootPanel.get(element.getId()));
}
private void createKscChooseResourceView(Element elem) {
KscChooseResourceAppController appView = new KscChooseResourceAppController(getResourceListData(getDataObjectAttribute(elem)), getBaseUrl());
appView.go(RootPanel.get(elem.getId()));
}
private String getDataObjectAttribute(Element elem) {
return elem.getAttribute("dataObject") != null ? elem.getAttribute("dataObject") : "data";
}
public final native String getBaseUrl() /*-{
try{
return $wnd.getBaseHref();
}catch(err){
return "";
}
}-*/;
public final native JsArray<ResourceListItem> getResourceListData(String dataObject) /*-{
return $wnd[dataObject].records;
}-*/;
}