@Override public HandlerRegistration addValueChangeHandler( ValueChangeHandler<Double> handler) { return addHandler(handler, ValueChangeEvent.getType()); }
protected void updateStyleNames(String styleName, boolean isPrimaryStyleName) { removeStyleName(getStylePrimaryName() + "-vertical"); if (isPrimaryStyleName) { super.setStylePrimaryName(styleName); } else { super.setStyleName(styleName); } base.setClassName(getStylePrimaryName() + "-base"); handle.setClassName(getStylePrimaryName() + "-handle"); smaller.setClassName(getStylePrimaryName() + "-smaller"); bigger.setClassName(getStylePrimaryName() + "-bigger"); if (isVertical()) { addStyleName(getStylePrimaryName() + "-vertical"); } }
if (keycode == getNavigationUpKey() && isVertical() || keycode == getNavigationRightKey() && !isVertical()) { if (shift) { for (int a = 0; a < acceleration; a++) { increaseValue(false); increaseValue(false); } else if (keycode == getNavigationDownKey() && isVertical() || keycode == getNavigationLeftKey() && !isVertical()) { if (shift) { for (int a = 0; a < acceleration; a++) { decreaseValue(false); decreaseValue(false);
@Override public void setValue(Double value, boolean fireEvents) { if (value == null) { return; } setValue(value); if (fireEvents) { fireValueChanged(); } }
final Element slider = getElement(); processMouseWheelEvent(event); } else if (dragging || targ == handle || targ == base || targ == slider) { processHandleEvent(event); } else if (targ == smaller) { decreaseValue(true); } else if (targ == bigger) { increaseValue(true); } else if (DOM.eventGetType(event) == Event.MOUSEEVENTS) { processBaseEvent(event); } else if (BrowserInfo.get().isGecko() && DOM.eventGetType(event) == Event.ONKEYPRESS && DOM.eventGetType(event) == Event.ONKEYDOWN) { if (handleNavigation(event.getKeyCode(), event.getCtrlKey(), event.getShiftKey())) { DOM.eventCancelBubble(event, true); } else if (targ.equals(getElement()) && DOM.eventGetType(event) == Event.ONFOCUS) { } else if (targ.equals(getElement()) && DOM.eventGetType(event) == Event.ONBLUR) { } else if (DOM.eventGetType(event) == Event.ONMOUSEDOWN) {
final String styleAttribute = isVertical() ? "height" : "width"; final String oppositeStyleAttribute = isVertical() ? "width" : "height"; final String domProperty = isVertical() ? "offsetHeight" : "offsetWidth"; if (getElement().hasParentElement()) { final Element p = getElement(); if (p.getPropertyInt(domProperty) > MIN_SIZE) { if (isVertical()) { setHeight(); } else { base.getStyle().clearProperty(styleAttribute); if (!isVertical()) { buildHandle(); setValue(value, false); }); } else { buildHandle(); setValue(value, false);
case Event.ONTOUCHSTART: if (!disabled && !readonly) { focus(); dragging = true; handle.setClassName(getStylePrimaryName() + "-handle"); handle.addClassName(getStylePrimaryName() + "-handle-active"); DOM.setCapture(getElement()); setValueByEvent(event, true); event.stopPropagation(); case Event.ONTOUCHMOVE: if (dragging) { setValueByEvent(event, true); event.stopPropagation(); case Event.ONMOUSEUP: dragging = false; handle.setClassName(getStylePrimaryName() + "-handle"); DOM.releaseCapture(getElement()); setValueByEvent(event, true); event.stopPropagation(); break;
public VSliderPatched() { super(); base = DOM.createDiv(); handle = DOM.createDiv(); smaller = DOM.createDiv(); bigger = DOM.createDiv(); setStyleName(CLASSNAME); getElement().appendChild(bigger); getElement().appendChild(smaller); getElement().appendChild(base); base.appendChild(handle); // Hide initially smaller.getStyle().setDisplay(Display.NONE); bigger.getStyle().setDisplay(Display.NONE); sinkEvents(Event.MOUSEEVENTS | Event.ONMOUSEWHEEL | Event.KEYEVENTS | Event.FOCUSEVENTS | Event.TOUCHEVENTS); }
private void setValueByEvent(Event event, boolean updateToServer) { double v = min; // Fallback to min final int coord = getEventPosition(event); final int handleSize, baseSize, baseOffset; if (isVertical()) { handleSize = handle.getOffsetHeight(); baseSize = base.getOffsetHeight(); baseOffset = base.getAbsoluteTop() - Window.getScrollTop() - handleSize / 2; } else { handleSize = handle.getOffsetWidth(); baseSize = base.getOffsetWidth(); baseOffset = base.getAbsoluteLeft() - Window.getScrollLeft() + handleSize / 2; } if (isVertical()) { v = (baseSize - (coord - baseOffset)) / (double) (baseSize - handleSize) * (max - min) + min; } else { v = (coord - baseOffset) / (double) (baseSize - handleSize) * (max - min) + min; } if (v < min) { v = min; } else if (v > max) { v = max; } setValue(v, updateToServer); }
private void processMouseWheelEvent(final Event event) { final int dir = DOM.eventGetMouseWheelVelocityY(event); if (dir < 0) { increaseValue(false); } else { decreaseValue(false); } delayedValueUpdater.trigger(); DOM.eventPreventDefault(event); DOM.eventCancelBubble(event, true); }
@Override public void execute() { final Element p = getElement(); if (p.getPropertyInt(domProperty) > MIN_SIZE + 5 || propertyNotNullOrEmpty(styleAttribute, p)) { if (isVertical()) { setHeight(); } else { base.getStyle().clearProperty(styleAttribute); } // Ensure correct position setValue(value, false); } }
private void setHeight() { // Calculate decoration size base.getStyle().setHeight(0, Unit.PX); base.getStyle().setOverflow(Overflow.HIDDEN); int h = getElement().getOffsetHeight(); if (h < MIN_SIZE) { h = MIN_SIZE; } base.getStyle().setHeight(h, Unit.PX); base.getStyle().clearOverflow(); }