/*
* 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.gwt.example.client;
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
import org.geomajas.gwt.client.controller.PanController;
import org.geomajas.gwt.client.util.WidgetLayout;
import org.geomajas.gwt.client.widget.MapWidget;
import org.geomajas.gwt.example.base.SamplePanel;
import org.geomajas.gwt.example.base.SamplePanelFactory;
import org.geomajas.widget.layer.client.presenter.ClientWmsLayerListPresenterImpl;
import org.geomajas.widget.layer.client.presenter.CreateClientWmsPresenter;
import org.geomajas.widget.layer.client.presenter.CreateClientWmsPresenterImpl;
import org.geomajas.widget.layer.client.presenter.RemovableLayerListPresenterImpl;
import org.geomajas.widget.layer.gwt.example.client.i18n.WidgetLayerExampleMessages;
/**
* <p>
* Sample that shows the usage of the {@link org.geomajas.widget.layer.client.presenter.RemovableLayerListPresenter}.
* </p>
*
* @author Jan Venstermans
*/
public class ClientWmsLayerListSample extends SamplePanel {
private static final WidgetLayerExampleMessages MESSAGES = GWT.create(WidgetLayerExampleMessages.class);
public static final String TITLE = "LayerListClientWms";
public static final SamplePanelFactory FACTORY = new SamplePanelFactory() {
public SamplePanel createPanel() {
return new ClientWmsLayerListSample();
}
};
public Canvas getViewPanel() {
VLayout mainLayout = new VLayout();
mainLayout.setWidth100();
mainLayout.setHeight100();
// Build a map, and set a PanController:
VLayout mapLayout = new VLayout();
mapLayout.setShowEdges(true);
//final MapWidget map = new MapWidget("mapLegend", "gwtExample");
final MapWidget map = new MapWidget("mapWmsClientWithResolutions", "appWidgetLayer");
map.setController(new PanController(map));
mapLayout.addMember(map);
// Build the LayerList:
VLayout layout = new VLayout();
layout.setWidth(700);
layout.setHeight(200);
HLayout gridsLayout = new HLayout();
gridsLayout.setWidth100();
gridsLayout.setHeight100();
RemovableLayerListPresenterImpl layersManagementPresenter = new RemovableLayerListPresenterImpl(map);
layersManagementPresenter.setDragDropEnabled(true);
layersManagementPresenter.setShowDeleteButtons(false);
ClientWmsLayerListPresenterImpl clientLayerListPresenter = new ClientWmsLayerListPresenterImpl(map);
clientLayerListPresenter.setDragDropEnabled(false);
clientLayerListPresenter.setShowDeleteButtons(true);
clientLayerListPresenter.setRemoveIconUrl(WidgetLayout.iconRemove);
final CreateClientWmsPresenter createClientWmsPresenter = new CreateClientWmsPresenterImpl(map);
VLayout layoutWidget1 = new VLayout();
layoutWidget1.setIsGroup(true);
layoutWidget1.setGroupTitle(MESSAGES.layerListClientWmsAllLayersGroupTitle());
layoutWidget1.addMember(layersManagementPresenter.getWidget());
gridsLayout.addMember(layoutWidget1);
VLayout layoutWidget2 = new VLayout();
layoutWidget2.setIsGroup(true);
layoutWidget2.setGroupTitle(MESSAGES.layerListClientWmsClientLayersGroupTitle());
layoutWidget2.addMember(clientLayerListPresenter.getWidget());
gridsLayout.addMember(layoutWidget2);
HLayout addImgContainer = new HLayout(10);
addImgContainer.setAlign(Alignment.CENTER);
addImgContainer.setHeight(25);
addImgContainer.setLayoutAlign(Alignment.CENTER);
Label label = new Label(MESSAGES.layerListClientWmsAddClientLayerButtonLabel());
label.setWrap(false);
addImgContainer.addMember(label);
ImgButton addImg = new ImgButton();
addImg.setSrc(WidgetLayout.iconAdd);
addImg.setShowDown(false);
addImg.setShowRollOver(false);
addImg.setPrompt(MESSAGES.layerListClientWmsAddClientLayerButtonTooltip());
addImg.setHeight(16);
addImg.setWidth(16);
addImg.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
createClientWmsPresenter.createClientWmsLayer();
}
});
addImgContainer.addMember(addImg);
layout.addMember(addImgContainer);
layout.addMember(gridsLayout);
layout.setBorder("1px solid");
// Add both to the main layout:
mainLayout.addMember(layout);
mainLayout.addMember(mapLayout);
return mainLayout;
}
public String getDescription() {
return MESSAGES.layerListClientWmsDescription();
}
/*public String[] getConfigurationFiles() {
return new String[] { "classpath:org/geomajas/gwt/example/context/mapLegend.xml",
"classpath:org/geomajas/gwt/example/base/layerLakes110m.xml",
"classpath:org/geomajas/gwt/example/base/layerRivers50m.xml",
"classpath:org/geomajas/gwt/example/base/layerPopulatedPlaces110m.xml",
"classpath:org/geomajas/gwt/example/base/layerWmsBluemarble.xml" };*/
public String[] getConfigurationFiles() {
return new String[] {
"classpath:org/geomajas/widget/layer/gwt/example/context/appWidgetLayer.xml",
"classpath:org/geomajas/widget/layer/gwt/example/context/mapWmsClientWithResolutions.xml"};
}
public String ensureUserLoggedIn() {
return "luc";
}
}