package org.gcube.portlets.user.geoportaldataviewer.client.ui; import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerOSM; import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.NavLink; import com.github.gwtbootstrap.client.ui.Tab; import com.github.gwtbootstrap.client.ui.constants.IconType; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; public class GeonaDataViewMainPanel extends Composite { private static GeonaDataViewMainPanelUiBinder uiBinder = GWT.create(GeonaDataViewMainPanelUiBinder.class); interface GeonaDataViewMainPanelUiBinder extends UiBinder { } @UiField Tab mapTabPanel; @UiField NavLink dataPointSelection; @UiField NavLink dataBoxSelection; @UiField Button removeQuery; // @UiField // ButtonGroup buttonGroup; private MapPanel mapPanel; private OpenLayerOSM map; public GeonaDataViewMainPanel() { initWidget(uiBinder.createAndBindUi(this)); mapPanel = new MapPanel("600px"); mapTabPanel.add(mapPanel); bindHandlers(); dataPointSelection.setIcon(IconType.SCREENSHOT); dataBoxSelection.setIcon(IconType.BOOKMARK); removeQuery.setIcon(IconType.REMOVE); } public void setMapHeight(int height) { mapPanel.setHeight(height + "px"); } public MapPanel getMapPanel() { return mapPanel; } public void setMap(OpenLayerOSM map) { this.map = map; } public void bindHandlers() { dataPointSelection.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { map.removeQueryInteractions(); GWT.log("dataPointSelection.isActive() " + dataPointSelection.isActive()); if (!dataPointSelection.isActive()) { map.addPointVectorSource(); } removeQuery.setVisible(true); //dataBoxSelection.setActive(false); //dataBoxSelection.getElement().removeClassName("active"); } }); dataBoxSelection.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { map.removeQueryInteractions(); GWT.log("dataBoxSelection.isActive() " + dataBoxSelection.isActive()); if (!dataBoxSelection.isActive()) { map.addExtentInteraction(); } removeQuery.setVisible(true); //dataPointSelection.setActive(false); //dataPointSelection.getElement().removeClassName("active"); } }); removeQuery.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { map.removeQueryInteractions(); removeQuery.setVisible(false); } }); } }