merged manually with branch 'layer_switcher' #21991
parent
834f48431d
commit
dba98bfd0f
@ -1,204 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-module deploy-name="geoportal-data-viewer-app-2.0.0-SNAPSHOT">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
<dependent-module archiveName="geoportal-data-common-1.2.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/geoportal-data-common/geoportal-data-common">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="context-root" value="geoportal-data-viewer-app"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
<wb-module deploy-name="geoportal-data-viewer-app-2.0.0-SNAPSHOT">
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
<dependent-module archiveName="geoportal-data-common-1.2.0.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/geoportal-data-common/geoportal-data-common">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
||||
<property name="context-root" value="geoportal-data-viewer-app"/>
|
||||
</wb-module>
|
||||
</project-modules>
|
||||
|
@ -0,0 +1,37 @@
|
||||
package org.gcube.portlets.user.geoportaldataviewer.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.dandd.DragDropLayer;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
|
||||
public class OverlayLayerManager {
|
||||
|
||||
private ArrayList<LayerObject> layers = new ArrayList<LayerObject>();
|
||||
private FlowPanel fp = new FlowPanel();
|
||||
private HandlerManager applicationBus;
|
||||
|
||||
public OverlayLayerManager(HandlerManager applicationBus) {
|
||||
this.applicationBus = applicationBus;
|
||||
//fp.addStyleName("layers-panel");
|
||||
}
|
||||
|
||||
void addLayerItem(LayerObject lo) {
|
||||
DragDropLayer dandd = new DragDropLayer(applicationBus, lo, true, true);
|
||||
layers.add(lo);
|
||||
fp.add(dandd);
|
||||
}
|
||||
|
||||
public void resetLayers() {
|
||||
layers.clear();
|
||||
fp.clear();
|
||||
|
||||
}
|
||||
|
||||
public FlowPanel getPanel() {
|
||||
return fp;
|
||||
}
|
||||
}
|
@ -0,0 +1,175 @@
|
||||
package org.gcube.portlets.user.geoportaldataviewer.client.events;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
/**
|
||||
* The Class DoActionOnDetailLayersEvent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Oct 12, 2021
|
||||
*/
|
||||
public class DoActionOnDetailLayersEvent extends GwtEvent<DoActionOnDetailLayersEventHandler> {
|
||||
public static Type<DoActionOnDetailLayersEventHandler> TYPE = new Type<DoActionOnDetailLayersEventHandler>();
|
||||
|
||||
/**
|
||||
* The Enum DO_LAYER_ACTION.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Oct 12, 2021
|
||||
*/
|
||||
public static enum DO_LAYER_ACTION {
|
||||
VISIBILITY, SWAP, OPACITY
|
||||
}
|
||||
|
||||
private DO_LAYER_ACTION doAction;
|
||||
private LayerItem layerItem;
|
||||
private double opacity;
|
||||
private boolean visibility;
|
||||
private LayerItem sourceLayerSwap;
|
||||
private LayerItem targetLayerSwap;
|
||||
|
||||
/**
|
||||
* Instantiates a new do action on detail layers event.
|
||||
*
|
||||
* @param action the action
|
||||
* @param layerItem the layer item
|
||||
*/
|
||||
public DoActionOnDetailLayersEvent(DO_LAYER_ACTION action, LayerItem layerItem) {
|
||||
this.layerItem = layerItem;
|
||||
this.doAction = action;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the swap layers.
|
||||
*
|
||||
* @param sourceLayerItem the source layer item
|
||||
* @param targetLayerItem the target layer item
|
||||
*/
|
||||
public void setSwapLayers(LayerItem sourceLayerItem, LayerItem targetLayerItem) {
|
||||
this.sourceLayerSwap = sourceLayerItem;
|
||||
this.targetLayerSwap = targetLayerItem;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the opacity.
|
||||
*
|
||||
* @param opacity the new opacity
|
||||
*/
|
||||
public void setOpacity(double opacity) {
|
||||
this.opacity = opacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the visibility.
|
||||
*
|
||||
* @param visibility the new visibility
|
||||
*/
|
||||
public void setVisibility(boolean visibility) {
|
||||
this.visibility = visibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the associated type.
|
||||
*
|
||||
* @return the associated type
|
||||
*/
|
||||
@Override
|
||||
public Type<DoActionOnDetailLayersEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch.
|
||||
*
|
||||
* @param handler the handler
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(DoActionOnDetailLayersEventHandler handler) {
|
||||
handler.onDoActionOnDetailLayers(this);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the do action.
|
||||
*
|
||||
* @return the do action
|
||||
*/
|
||||
public DO_LAYER_ACTION getDoAction() {
|
||||
return doAction;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer item.
|
||||
*
|
||||
* @return the layer item
|
||||
*/
|
||||
public LayerItem getLayerItem() {
|
||||
return layerItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the source layer swap.
|
||||
*
|
||||
* @return the source layer swap
|
||||
*/
|
||||
public LayerItem getSourceLayerSwap() {
|
||||
return sourceLayerSwap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the target layer swap.
|
||||
*
|
||||
* @return the target layer swap
|
||||
*/
|
||||
public LayerItem getTargetLayerSwap() {
|
||||
return targetLayerSwap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the opacity.
|
||||
*
|
||||
* @return the opacity
|
||||
*/
|
||||
public double getOpacity() {
|
||||
return opacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the visibility.
|
||||
*
|
||||
* @return the visibility
|
||||
*/
|
||||
public boolean getVisibility() {
|
||||
return visibility;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("DoActionOnDetailLayersEvent [doAction=");
|
||||
builder.append(doAction);
|
||||
builder.append(", layerItem=");
|
||||
builder.append(layerItem);
|
||||
builder.append(", opacity=");
|
||||
builder.append(opacity);
|
||||
builder.append(", visibility=");
|
||||
builder.append(visibility);
|
||||
builder.append(", sourceLayerSwap=");
|
||||
builder.append(sourceLayerSwap);
|
||||
builder.append(", targetLayerSwap=");
|
||||
builder.append(targetLayerSwap);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package org.gcube.portlets.user.geoportaldataviewer.client.events;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
|
||||
/**
|
||||
* The Interface DoActionOnDetailLayersEventHandler.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Oct 8, 2021
|
||||
*/
|
||||
public interface DoActionOnDetailLayersEventHandler extends EventHandler {
|
||||
|
||||
/**
|
||||
* On do action on detail layers.
|
||||
*
|
||||
* @param doActionOnDetailLayersEvent the do action on detail layers event
|
||||
*/
|
||||
void onDoActionOnDetailLayers(DoActionOnDetailLayersEvent doActionOnDetailLayersEvent);
|
||||
}
|
@ -0,0 +1,184 @@
|
||||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.dandd;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.BaseConcessioneDV;
|
||||
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.client.util.StringUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.CheckBox;
|
||||
import com.github.gwtbootstrap.client.ui.Label;
|
||||
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
||||
import com.github.gwtbootstrap.client.ui.constants.LabelType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.DragLeaveEvent;
|
||||
import com.google.gwt.event.dom.client.DragLeaveHandler;
|
||||
import com.google.gwt.event.dom.client.DragOverEvent;
|
||||
import com.google.gwt.event.dom.client.DragOverHandler;
|
||||
import com.google.gwt.event.dom.client.DragStartEvent;
|
||||
import com.google.gwt.event.dom.client.DragStartHandler;
|
||||
import com.google.gwt.event.dom.client.DropEvent;
|
||||
import com.google.gwt.event.dom.client.DropHandler;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.FlexTable;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class DragDropLayer extends FlowPanel {
|
||||
|
||||
private static DragDropLayer dragging = null;
|
||||
private static DragDropLayer draggingTarget = null;
|
||||
final boolean droppable;
|
||||
private Label labelLayerName;
|
||||
private CheckBox checkBoxVisibility = new CheckBox();
|
||||
private Button draggableButton = new Button();
|
||||
private HandlerManager applicationBus;
|
||||
private LayerObject layerObject;
|
||||
private LayerItem layerItem;
|
||||
|
||||
public DragDropLayer(HandlerManager applicationBus, LayerObject layerObject, boolean draggable, boolean droppable) {
|
||||
this.applicationBus = applicationBus;
|
||||
this.layerObject = layerObject;
|
||||
this.layerItem = layerObject.getLayerItem();
|
||||
|
||||
String layerName = StringUtil.fullNameToLayerName(layerItem.getName(), ":");
|
||||
|
||||
this.labelLayerName = new Label(layerName);
|
||||
this.labelLayerName.setTitle(layerItem.getName());
|
||||
this.labelLayerName.setType(LabelType.INFO);
|
||||
|
||||
BaseConcessioneDV refConcessione = layerObject.getSourceConcessione();
|
||||
String nameConcessione = StringUtil.ellipsize(refConcessione.getNome(),40);
|
||||
com.google.gwt.user.client.ui.Label labelConcessione = new com.google.gwt.user.client.ui.Label(nameConcessione);
|
||||
labelConcessione.setTitle(refConcessione.getNome());
|
||||
|
||||
getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||
getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
this.getElement().addClassName("dand-layer");
|
||||
|
||||
if (draggable) {
|
||||
initDrag();
|
||||
}
|
||||
if (droppable) {
|
||||
initDrop();
|
||||
}
|
||||
this.droppable = droppable;
|
||||
|
||||
if (droppable) {
|
||||
draggableButton.addStyleName("droppable");
|
||||
} else if (draggable) {
|
||||
draggableButton.addStyleName("draggable");
|
||||
}
|
||||
|
||||
RangeSlider rs = new RangeSlider(applicationBus, layerItem);
|
||||
rs.getElement().addClassName("range-slider ");
|
||||
FlexTable ft = new FlexTable();
|
||||
ft.setWidget(0, 0, draggableButton);
|
||||
draggableButton.setTitle("Drag and Drop me up or down to change my position on the Map");
|
||||
checkBoxVisibility.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
||||
checkBoxVisibility.setValue(true);
|
||||
|
||||
//labelLayerName.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
||||
ft.setWidget(0, 1, checkBoxVisibility);
|
||||
ft.setWidget(0, 2, labelConcessione);
|
||||
ft.setWidget(1, 2, labelLayerName);
|
||||
ft.setWidget(2, 2, new SimplePanel(rs));
|
||||
add(ft);
|
||||
draggableButton.setIcon(IconType.MOVE);
|
||||
|
||||
checkBoxVisibility.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
|
||||
|
||||
@Override
|
||||
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
||||
DoActionOnDetailLayersEvent dae = new DoActionOnDetailLayersEvent(DO_LAYER_ACTION.VISIBILITY, layerItem);
|
||||
dae.setVisibility(checkBoxVisibility.getValue());
|
||||
applicationBus.fireEvent(dae);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initDrag() {
|
||||
draggableButton.getElement().setDraggable(Element.DRAGGABLE_TRUE);
|
||||
|
||||
addDomHandler(new DragStartHandler() {
|
||||
|
||||
@Override
|
||||
public void onDragStart(DragStartEvent event) {
|
||||
dragging = DragDropLayer.this;
|
||||
event.setData("ID", "UniqueIdentifier");
|
||||
event.getDataTransfer().setDragImage(getElement(), 10, 10);
|
||||
|
||||
}
|
||||
}, DragStartEvent.getType());
|
||||
}
|
||||
|
||||
private void initDrop() {
|
||||
|
||||
addDomHandler(new DragOverHandler() {
|
||||
@Override
|
||||
public void onDragOver(DragOverEvent event) {
|
||||
draggableButton.addStyleName("dropping-over");
|
||||
GWT.log("drag over");
|
||||
draggingTarget = (DragDropLayer) event.getSource();
|
||||
}
|
||||
}, DragOverEvent.getType());
|
||||
|
||||
addDomHandler(new DragLeaveHandler() {
|
||||
@Override
|
||||
public void onDragLeave(DragLeaveEvent event) {
|
||||
draggableButton.removeStyleName("dropping-over");
|
||||
GWT.log("drag leave");
|
||||
// draggingTarget = (DragDropLayer) event.getSource();
|
||||
}
|
||||
}, DragLeaveEvent.getType());
|
||||
|
||||
addDomHandler(new DropHandler() {
|
||||
@Override
|
||||
public void onDrop(DropEvent event) {
|
||||
event.preventDefault();
|
||||
Object dropTarget = event.getSource();
|
||||
GWT.log("on drop");
|
||||
draggableButton.removeStyleName("dropping-over");
|
||||
if (dragging != null) {
|
||||
Widget source = null;
|
||||
Widget target = null;
|
||||
FlowPanel tree = (FlowPanel) DragDropLayer.this.getParent();
|
||||
|
||||
source = dragging;
|
||||
int sourceIndex = tree.getWidgetIndex(source);
|
||||
int targetIndex = tree.getWidgetIndex(draggingTarget);
|
||||
|
||||
GWT.log("sourceIndex: " + sourceIndex+", sourceItem: "+dragging.getLayerItem().getName());
|
||||
GWT.log("targetIndex: " + targetIndex+", targetItem: "+draggingTarget.getLayerItem().getName());
|
||||
if (sourceIndex != targetIndex && targetIndex >= 0) {
|
||||
tree.remove(source);
|
||||
target = tree;
|
||||
|
||||
if (source != null && target != null) {
|
||||
tree.insert(source, targetIndex);
|
||||
// target.setState(true);
|
||||
DoActionOnDetailLayersEvent actionSwapLayers = new DoActionOnDetailLayersEvent(
|
||||
DO_LAYER_ACTION.SWAP, layerItem);
|
||||
actionSwapLayers.setSwapLayers(dragging.getLayerItem(), draggingTarget.getLayerItem());
|
||||
applicationBus.fireEvent(actionSwapLayers);
|
||||
}
|
||||
dragging = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, DropEvent.getType());
|
||||
}
|
||||
|
||||
public LayerItem getLayerItem() {
|
||||
return layerItem;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.dandd;
|
||||
|
||||
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);
|
||||
|
||||
theSlider.setTitle("Set opacity of "+layer.getName());
|
||||
|
||||
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(
|
||||
DO_LAYER_ACTION.OPACITY, layer);
|
||||
int value = Integer.parseInt((String) theSlider.getPropertyObject("value"));
|
||||
//GWT.log("opacity int value: "+value);
|
||||
double opacity = (double) ((double) value/100);
|
||||
GWT.log("opacity double value: "+opacity);
|
||||
actionChangeOpacity.setOpacity(opacity);
|
||||
applicationBus.fireEvent(actionChangeOpacity);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
||||
<ui:style>
|
||||
.important {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.slidecontainer {
|
||||
width: 100%;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel addStyleNames="{style.slidecontainer}">
|
||||
<input type="range" min="1" max="100" value="100" class="slider" ui:field="theSlider"></input>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
Loading…
Reference in New Issue