package org.opennms.features.gwt.graph.resource.list.client.presenter;
import org.opennms.features.gwt.graph.resource.list.client.view.DefaultResourceListView;
import org.opennms.features.gwt.graph.resource.list.client.view.KscCustomSelectionView;
import org.opennms.features.gwt.graph.resource.list.client.view.ResourceListItem;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.Window.Location;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;
public class KscCustomReportListPresenter extends DefaultResourceListPresenter implements Presenter {
public interface SelectionDisplay{
HasClickHandlers getSubmitButton();
String getSelectAction();
Widget asWidget();
}
private SelectionDisplay m_selectionDisplay;
public KscCustomReportListPresenter(DefaultResourceListView<ResourceListItem> view, SearchPopupDisplay searchPopup, JsArray<ResourceListItem> dataList, SelectionDisplay selectionDisplay, String baseUrl) {
super(view, searchPopup, dataList, baseUrl);
initializeSelectionDisplay(selectionDisplay);
}
private void initializeSelectionDisplay(SelectionDisplay selectionDisplay) {
m_selectionDisplay = selectionDisplay;
m_selectionDisplay.getSubmitButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(getBaseUrl() + "/KSC/formProcMain.htm");
if(m_selectionDisplay.getSelectAction() != null) {
if(m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.VIEW)) {
urlBuilder.append("?report_action=View");
}else if(m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.CUSTOMIZE)) {
urlBuilder.append("?report_action=Customize");
}else if(m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.CREATE_NEW)) {
urlBuilder.append("?report_action=Create");
}else if(m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.CREATE_NEW_FROM_EXISTING)) {
urlBuilder.append("?report_action=CreateFrom");
}else if(m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.DELETE)) {
urlBuilder.append("?report_action=Delete");
}
if(getView().getSelectedResource() != null) {
urlBuilder.append("&report=" + getView().getSelectedResource().getId());
Location.assign(urlBuilder.toString());
} else if(getView().getSelectedResource() == null && m_selectionDisplay.getSelectAction().equals(KscCustomSelectionView.CREATE_NEW)) {
Location.assign(urlBuilder.toString());
}else {
getView().showWarning();
}
} else {
getView().showWarning();
}
}
});
}
@Override
public void go(HasWidgets container) {
super.go(container);
container.add(m_selectionDisplay.asWidget());
}
@Override
public void onResourceItemSelected() {
//Don't do anything on selection
}
}