001package org.gwtbootstrap3.extras.slider.client.ui.base.event; 002 003/* 004 * #%L 005 * GwtBootstrap3 006 * %% 007 * Copyright (C) 2013 - 2015 GwtBootstrap3 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023import com.google.gwt.event.shared.GwtEvent; 024 025/** 026 * The slide start event is fired when dragging starts. 027 * 028 * @param <T> slider value type 029 */ 030public class SlideStartEvent<T> extends GwtEvent<SlideStartHandler<T>> { 031 032 private static Type<SlideStartHandler<?>> TYPE; 033 034 private T value; 035 036 /** 037 * Fires a slide start event on all registered handlers in the handler 038 * manager. If no such handlers exist, this method will do nothing. 039 * 040 * @param source the source of the handlers 041 * @param value the new slider value 042 */ 043 public static <T> void fire(final HasSlideStartHandlers<T> source, final T value) { 044 if (TYPE != null) { 045 SlideStartEvent<T> event = new SlideStartEvent<T>(value); 046 source.fireEvent(event); 047 } 048 } 049 050 /** 051 * Gets the type associated with this event. 052 * 053 * @return returns the handler type 054 */ 055 public static Type<SlideStartHandler<?>> getType() { 056 if (TYPE == null) { 057 TYPE = new Type<SlideStartHandler<?>>(); 058 } 059 return TYPE; 060 } 061 062 @SuppressWarnings({ "unchecked", "rawtypes" }) 063 @Override 064 public Type<SlideStartHandler<T>> getAssociatedType() { 065 return (Type)TYPE; 066 } 067 068 @Override 069 protected void dispatch(final SlideStartHandler<T> handler) { 070 handler.onSlideStart(this); 071 } 072 073 /** 074 * Creates a slide start event. 075 * 076 * @param value the new slider value 077 */ 078 protected SlideStartEvent(final T value) { 079 this.value = value; 080 } 081 082 /** 083 * @return the new slider value 084 */ 085 public T getValue() { 086 return value; 087 } 088 089 @Override 090 public String toDebugString() { 091 return super.toDebugString() + getValue(); 092 } 093}