/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.widget.layer.client.presenter; import org.geomajas.gwt.client.map.layer.InternalClientWmsLayer; import org.geomajas.gwt.client.map.layer.Layer; import org.geomajas.gwt.client.widget.MapWidget; /** * Default implementation of {@link RemovableLayerListPresenter}. * * @author Jan Venstermans * */ public class RemovableLayerListPresenterImpl extends LayerListPresenterImpl implements RemovableLayerListPresenter, RemovableLayerListPresenter.Handler { private boolean showDeleteButtons; private String removeIconUrl; public RemovableLayerListPresenterImpl(MapWidget mapwidget) { super(mapwidget); showDeleteButtons = true; } @Override protected LayerListPresenter.View createViewInConstructor() { return createLayerListWithRemoveButtonView(); } protected RemovableLayerListPresenter.View createLayerListWithRemoveButtonView() { RemovableLayerListPresenter.View view = org.geomajas.widget.layer.client.Layer.getViewFactory(). createLayerListWithRemoveButtonView(); view.setHandler(this); view.setDragDropEnabled(isDragDropEnabled()); if (removeIconUrl != null) { view.setRemoveIconUrl(removeIconUrl); } return view; } public boolean isShowDeleteButtons() { return showDeleteButtons; } @Override public void setShowDeleteButtons(boolean showDeleteButtons) { if (this.showDeleteButtons != showDeleteButtons) { this.showDeleteButtons = showDeleteButtons; //change view setView(showDeleteButtons ? createLayerListWithRemoveButtonView() : createLayerListView()); } } @Override public void setRemoveIconUrl(String removeIconUrl) { this.removeIconUrl = removeIconUrl; if (getView() instanceof RemovableLayerListPresenter.View) { ((RemovableLayerListPresenter.View) getView()).setRemoveIconUrl(removeIconUrl); } } @Override public void onRemoveClientWmsLayer(InternalClientWmsLayer layer) { getMapWidget().getMapModel().removeLayer(layer); } @Override public void onToggleVisibility(Layer layer) { super.onToggleVisibility(layer); } }