geoportal-data-viewer-app/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java

130 lines
3.3 KiB
Java
Raw Normal View History

2020-10-23 18:18:06 +02:00
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
2020-10-27 16:04:34 +01:00
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerOSM;
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
2020-10-26 17:40:38 +01:00
import com.github.gwtbootstrap.client.ui.Button;
2020-11-02 17:04:31 +01:00
import com.github.gwtbootstrap.client.ui.NavLink;
2020-10-23 18:18:06 +02:00
import com.github.gwtbootstrap.client.ui.Tab;
import com.github.gwtbootstrap.client.ui.TabPanel;
2020-10-28 11:19:12 +01:00
import com.github.gwtbootstrap.client.ui.constants.IconType;
2020-10-23 18:18:06 +02:00
import com.google.gwt.core.client.GWT;
2020-10-26 17:40:38 +01:00
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
2020-10-23 18:18:06 +02:00
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.HTML;
2020-10-23 18:18:06 +02:00
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<Widget, GeonaDataViewMainPanel> {
}
@UiField
2020-10-27 10:19:32 +01:00
Tab mapTabPanel;
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
@UiField
2020-11-02 17:04:31 +01:00
NavLink dataPointSelection;
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
@UiField
2020-11-02 17:04:31 +01:00
NavLink dataBoxSelection;
2020-10-28 11:19:12 +01:00
@UiField
2020-11-02 17:04:31 +01:00
Button removeQuery;
@UiField
TabPanel mainTabPanel;
2020-11-02 17:04:31 +01:00
// @UiField
// ButtonGroup buttonGroup;
2020-10-28 11:19:12 +01:00
2020-10-27 10:19:32 +01:00
private MapPanel mapPanel;
2020-10-26 17:40:38 +01:00
2020-10-27 16:04:34 +01:00
private OpenLayerOSM map;
2020-10-28 11:19:12 +01:00
private HandlerManager eventBus;
public GeonaDataViewMainPanel(HandlerManager eventBus) {
2020-10-23 18:18:06 +02:00
initWidget(uiBinder.createAndBindUi(this));
this.eventBus = eventBus;
2020-10-27 10:19:32 +01:00
mapPanel = new MapPanel("600px");
mapTabPanel.add(mapPanel);
2020-10-26 17:40:38 +01:00
bindHandlers();
2020-10-28 11:19:12 +01:00
dataPointSelection.setIcon(IconType.SCREENSHOT);
dataBoxSelection.setIcon(IconType.BOOKMARK);
2020-11-02 17:04:31 +01:00
removeQuery.setIcon(IconType.REMOVE);
2020-10-23 18:18:06 +02:00
}
2020-10-28 11:19:12 +01:00
2020-10-27 10:19:32 +01:00
public void setMapHeight(int height) {
2020-10-28 11:19:12 +01:00
mapPanel.setHeight(height + "px");
2020-10-26 11:01:07 +01:00
}
2020-10-23 18:18:06 +02:00
2020-10-27 10:19:32 +01:00
public MapPanel getMapPanel() {
return mapPanel;
2020-10-23 18:18:06 +02:00
}
2020-10-28 11:19:12 +01:00
2020-10-27 16:04:34 +01:00
public void setMap(OpenLayerOSM map) {
2020-10-26 17:40:38 +01:00
this.map = map;
}
2020-10-28 11:19:12 +01:00
public void bindHandlers() {
2020-10-26 17:40:38 +01:00
dataPointSelection.addClickHandler(new ClickHandler() {
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
@Override
public void onClick(ClickEvent event) {
2020-10-28 11:19:12 +01:00
map.removeQueryInteractions();
GWT.log("dataPointSelection.isActive() " + dataPointSelection.isActive());
if (!dataPointSelection.isActive()) {
map.addPointVectorSource();
}
2020-11-02 17:04:31 +01:00
removeQuery.setVisible(true);
//dataBoxSelection.setActive(false);
2020-10-28 11:19:12 +01:00
//dataBoxSelection.getElement().removeClassName("active");
2020-10-26 17:40:38 +01:00
}
});
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
dataBoxSelection.addClickHandler(new ClickHandler() {
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
@Override
public void onClick(ClickEvent event) {
2020-10-28 11:19:12 +01:00
map.removeQueryInteractions();
2020-10-30 17:32:05 +01:00
GWT.log("dataBoxSelection.isActive() " + dataBoxSelection.isActive());
2020-10-28 11:19:12 +01:00
if (!dataBoxSelection.isActive()) {
map.addExtentInteraction();
}
2020-11-02 17:04:31 +01:00
removeQuery.setVisible(true);
//dataPointSelection.setActive(false);
2020-10-28 11:19:12 +01:00
//dataPointSelection.getElement().removeClassName("active");
2020-10-26 17:40:38 +01:00
}
});
2020-11-02 17:04:31 +01:00
removeQuery.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
map.removeQueryInteractions();
removeQuery.setVisible(false);
}
});
2020-10-28 11:19:12 +01:00
2020-10-26 17:40:38 +01:00
}
public void addNewTab(ConcessioneDV cdv) {
Tab tab = new Tab();
String nome = cdv.getNome();
tab.setHeading(nome);
tab.add(new HTML(cdv.toString()));
mainTabPanel.add(tab);
tab.asWidget().getElement().focus();
}
2020-10-23 18:18:06 +02:00
}