All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geomajas.graphics.client.widget.TransparencySliderBar Maven / Gradle / Ivy

The newest version!
/*
 * This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
 *
 * Copyright 2008-2014 Geosparc nv, http://www.geosparc.com/, Belgium.
 *
 * The program is available in open source according to the Apache
 * License, Version 2.0. 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.graphics.client.widget;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.DoubleClickEvent;
import com.google.gwt.event.dom.client.DoubleClickHandler;
import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.MouseUpEvent;
import com.google.gwt.event.dom.client.MouseUpHandler;
import com.google.gwt.user.client.ui.FlowPanel;

/**
 * FlowPanel containing a customised {@link SliderBar}.
 * 
 * @author Jan Venstermans
 * 
 */
public class TransparencySliderBar extends FlowPanel {

	private SliderBar slider;
	
	public TransparencySliderBar() {
		add(makeNewSliderFlowPanel());
		this.setStyleName("transparency-SliderBar-panel");
	}
	
	private SliderBar makeNewSliderFlowPanel() {
		slider = new SliderBar(0d, 1d);
		slider.setNumLabels(5);
		slider.setNumTicks(10);
		slider.setStepSize(0.05);
		slider.setNumTicks(10);
		StopPropagationHandler preventWeirdBehaviourHandler = new StopPropagationHandler();
		slider.addMouseDownHandler(preventWeirdBehaviourHandler);
		slider.addMouseUpHandler(preventWeirdBehaviourHandler);
		slider.addClickHandler(preventWeirdBehaviourHandler);
		slider.addDoubleClickHandler(preventWeirdBehaviourHandler);
		return slider;
	}
	
	public void setCurrentValue(double value) {
		slider.setCurrentValue(value);
	}

	public double getCurrentValue() {
		return slider.getCurrentValue();
	}

	/**
	 * Combination of different handlers with a single goal: stop all the events from propagating to the map. This is
	 * meant to be used for clickable widgets.
	 * 
	 * @author Pieter De Graef
	 */
	public class StopPropagationHandler implements MouseDownHandler, MouseUpHandler, ClickHandler, DoubleClickHandler {

		public void onDoubleClick(DoubleClickEvent event) {
			event.stopPropagation();
		}

		public void onClick(ClickEvent event) {
			event.stopPropagation();
		}

		public void onMouseDown(MouseDownEvent event) {
			event.stopPropagation();
			event.preventDefault();
		}

		public void onMouseUp(MouseUpEvent event) {
			event.stopPropagation();
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy