package org.opennms.features.gwt.combobox.client.presenter; import org.opennms.features.gwt.combobox.client.rest.NodeRestResponseMapper; import org.opennms.features.gwt.combobox.client.rest.NodeService; import org.opennms.features.gwt.combobox.client.view.NodeDetail; import org.opennms.features.gwt.combobox.client.view.SuggestionComboboxView; import com.google.gwt.event.shared.SimpleEventBus; 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.Window.Location; import com.google.gwt.user.client.ui.HasWidgets; public class SuggestionComboboxPresenter implements Presenter, SuggestionComboboxView.Presenter<NodeDetail>{ private final SimpleEventBus m_eventBus; private final SuggestionComboboxView<NodeDetail> m_view; private final NodeService m_nodeService; public SuggestionComboboxPresenter(SimpleEventBus eventBus, SuggestionComboboxView<NodeDetail> view, NodeService nodeService) { m_eventBus = eventBus; m_view = view; m_view.setPresenter(this); m_nodeService = nodeService; } @Override public void go(final HasWidgets container) { container.clear(); container.add(m_view.asWidget()); } public SimpleEventBus getEventBus() { return m_eventBus; } public SuggestionComboboxView<NodeDetail> getDisplay() { return m_view; } @Override public void onGoButtonClicked() { m_nodeService.getNodeByNodeLabel(m_view.getSelectedText(), new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { if(response.getStatusCode() == 200) { m_view.setData(NodeRestResponseMapper.mapNodeJSONtoNodeDetail(response.getText())); }else { //m_view.setData(NodeRestResponseMapper.mapNodeJSONtoNodeDetail(DefaultNodeService.TEST_RESPONSE)); Window.alert("Error Occurred Retreiving Nodes"); } } @Override public void onError(Request request, Throwable exception) { Window.alert("error in retrieving the Rest call"); } }); } @Override public void onEnterKeyEvent() { m_nodeService.getNodeByNodeLabel(m_view.getSelectedText(), new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { if(response.getStatusCode() == 200) { m_view.setData(NodeRestResponseMapper.mapNodeJSONtoNodeDetail(response.getText())); Window.alert("Error Occurred Retreiving Nodes"); }else { // m_view.setData(NodeRestResponseMapper.mapNodeJSONtoNodeDetail(DefaultNodeService.TEST_RESPONSE)); } } @Override public void onError(Request request, Throwable exception) { Window.alert("error in retrieving the Rest call"); } }); } public NodeService getNodeService() { return m_nodeService; } @Override public void onNodeSelected() { StringBuilder builder = new StringBuilder(); builder.append(getBaseHref() + "graph/chooseresource.htm"); builder.append("?reports=all"); builder.append("&parentResourceType=node"); builder.append("&parentResource=" + m_view.getSelectedNode().getId()); Location.assign(builder.toString()); } public native final String getBaseHref()/*-{ try{ return $wnd.getBaseHref(); }catch(err){ return ""; } }-*/; }