/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2011 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
* OpenNMS(R) is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* OpenNMS(R) is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenNMS(R). If not, see:
* http://www.gnu.org/licenses/
*
* For more information contact:
* OpenNMS(R) Licensing <license@opennms.org>
* http://www.opennms.org/
* http://www.opennms.com/
*******************************************************************************/
package org.opennms.features.gwt.graph.resource.list.client.presenter;
import java.util.List;
import org.opennms.features.gwt.graph.resource.list.client.view.DefaultResourceListView;
import org.opennms.features.gwt.graph.resource.list.client.view.KscChooseResourceListView;
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 KscGraphResourceListPresenter extends DefaultResourceListPresenter implements Presenter, KscChooseResourceListView.Presenter<ResourceListItem> {
public interface ViewChoiceDisplay{
HasClickHandlers getViewButton();
HasClickHandlers getChooseButton();
Widget asWidget();
}
SearchPopupDisplay m_searchPopup;
List<ResourceListItem> m_dataList;
private ViewChoiceDisplay m_viewChoiceDisplay;
public KscGraphResourceListPresenter(DefaultResourceListView<ResourceListItem> view, SearchPopupDisplay searchPopupView, JsArray<ResourceListItem> resourceList, ViewChoiceDisplay viewChoiceDisplay, String baseUrl) {
super(view, searchPopupView, resourceList, baseUrl);
initializeViewChoiceDisplay(viewChoiceDisplay);
}
private void initializeViewChoiceDisplay(ViewChoiceDisplay viewChoiceDisplay) {
m_viewChoiceDisplay = viewChoiceDisplay;
viewChoiceDisplay.getChooseButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
ResourceListItem resource = getView().getSelectedResource();
if(resource != null) {
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append( getBaseUrl() + "/KSC/customGraphEditDetails.htm");
urlBuilder.append("?resourceId=" + resource.getId());
Location.assign(urlBuilder.toString());
}else {
getView().showWarning();
}
}
});
viewChoiceDisplay.getViewButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
ResourceListItem resource = getView().getSelectedResource();
if(resource != null){
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(getBaseUrl() + "KSC/customGraphChooseResource.htm");
urlBuilder.append("?selectedResourceId=");
urlBuilder.append("&resourceId=" + resource.getId());
Location.assign(urlBuilder.toString());
}else{
getView().showWarning();
}
}
});
}
@Override
public void go(HasWidgets container) {
super.go(container);
container.add(m_viewChoiceDisplay.asWidget());
}
@Override
public void onResourceItemSelected() {
}
}