/*
* 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.gwt2.plugin.corewidget.client.map.mapcontrolpanel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import org.geomajas.gwt2.plugin.corewidget.client.map.mapcontrolpanel.resource.MapControlPanelResource;
import java.util.logging.Logger;
/**
* Default implementation of {@link MapControlPanelView}.
*
* @author Dosi Bingov
*/
public class MapControlPanelViewImpl implements MapControlPanelView {
private Logger log = Logger.getLogger(MapControlPanelViewImpl.class.getName());
private MapControlPanelPresenter presenter;
private VerticalPanel contentPanel;
private MapControlPanelResource resource;
private static final MapControlPanelUiBinder UIBINDER = GWT.create(MapControlPanelUiBinder.class);
/**
* UI binder interface.
*
* @author Dosi Bingov
*
*/
interface MapControlPanelUiBinder extends UiBinder<Widget, MapControlPanelViewImpl> {
}
public MapControlPanelViewImpl(MapControlPanelResource mapControlPanelResource) {
resource = mapControlPanelResource;
contentPanel = (VerticalPanel) UIBINDER.createAndBindUi(this);
contentPanel.setStyleName(mapControlPanelResource.css().mapControlPanel());
resource.css().ensureInjected();
}
// ------------------------------------------------------------------------
// Public methods:
// ------------------------------------------------------------------------
@Override
public Widget asWidget() {
return contentPanel;
}
@Override
public void setPresenter(MapControlPanelPresenter presenter) {
this.presenter = presenter;
}
@Override
public void moveWidget(int fromIndex, int toIndex) {
Widget widget = contentPanel.getWidget(fromIndex);
contentPanel.remove(fromIndex);
contentPanel.insert(widget, toIndex);
}
@Override
public void add(Widget widget) {
contentPanel.add(widget);
}
@Override
public boolean removeWidget(int index) {
return contentPanel.remove(index);
}
@Override
public int getWidgetCount() {
return contentPanel.getWidgetCount();
}
@Override
public Widget getWidgetAt(int index) {
return contentPanel.getWidget(index);
}
// ------------------------------------------------------------------------
// Private methods:
// ------------------------------------------------------------------------
}