2021-10-14 11:34:04 +02:00
|
|
|
package org.gcube.portlets.user.geoportaldataviewer.client.ui.dandd;
|
|
|
|
|
2023-06-15 12:08:37 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
2021-10-14 11:34:04 +02:00
|
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent;
|
|
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.DO_LAYER_ACTION;
|
|
|
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
|
|
|
|
|
|
|
import com.google.gwt.core.client.GWT;
|
|
|
|
import com.google.gwt.dom.client.Element;
|
|
|
|
import com.google.gwt.event.shared.HandlerManager;
|
|
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
|
|
import com.google.gwt.user.client.Event;
|
|
|
|
import com.google.gwt.user.client.EventListener;
|
|
|
|
import com.google.gwt.user.client.Random;
|
|
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
|
|
|
|
public class RangeSlider extends Composite {
|
|
|
|
|
|
|
|
private static RangeSliderUiBinder uiBinder = GWT.create(RangeSliderUiBinder.class);
|
|
|
|
|
|
|
|
interface RangeSliderUiBinder extends UiBinder<Widget, RangeSlider> {
|
|
|
|
}
|
|
|
|
|
|
|
|
@UiField
|
|
|
|
Element theSlider;
|
|
|
|
|
|
|
|
private String sliderId;
|
|
|
|
|
|
|
|
private HandlerManager applicationBus;
|
|
|
|
|
|
|
|
private LayerItem layer;
|
|
|
|
|
|
|
|
public RangeSlider(HandlerManager applicationBus, LayerItem layer) {
|
|
|
|
this.applicationBus = applicationBus;
|
|
|
|
this.layer = layer;
|
|
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
|
|
sliderId = "slider-" + Random.nextInt();
|
|
|
|
theSlider.addClassName("slider");
|
|
|
|
theSlider.setId(sliderId);
|
2023-06-15 12:08:37 +02:00
|
|
|
theSlider.setTitle("Set opacity of the layer");
|
|
|
|
theSlider.setPropertyObject("value", GeoportalDataViewerConstants.INITIAL_LAYER_OPACITY*100);
|
2021-10-14 11:34:04 +02:00
|
|
|
|
|
|
|
bindEvents();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void bindEvents() {
|
|
|
|
|
|
|
|
Event.sinkEvents(theSlider, Event.ONMOUSEUP);
|
|
|
|
Event.setEventListener(theSlider, new EventListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onBrowserEvent(Event event) {
|
|
|
|
if (Event.ONMOUSEUP == event.getTypeInt()) {
|
|
|
|
GWT.log("Event.ONMOUSEUP");
|
|
|
|
DoActionOnDetailLayersEvent actionChangeOpacity = new DoActionOnDetailLayersEvent(
|
2023-01-31 15:24:45 +01:00
|
|
|
DO_LAYER_ACTION.OPACITY, layer, null);
|
2021-10-14 11:34:04 +02:00
|
|
|
int value = Integer.parseInt((String) theSlider.getPropertyObject("value"));
|
2023-06-15 12:08:37 +02:00
|
|
|
// GWT.log("opacity int value: "+value);
|
|
|
|
double opacity = (double) ((double) value / 100);
|
|
|
|
GWT.log("opacity double value: " + opacity);
|
2021-10-14 11:34:04 +02:00
|
|
|
actionChangeOpacity.setOpacity(opacity);
|
|
|
|
applicationBus.fireEvent(actionChangeOpacity);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|