001    package 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    
023    import com.google.gwt.event.shared.GwtEvent;
024    
025    /**
026     * The slide enabled event is fired when the slider is enabled.
027     */
028    public class SlideEnabledEvent extends GwtEvent<SlideEnabledHandler> {
029    
030        private static Type<SlideEnabledHandler> TYPE;
031    
032        /**
033         * Fires a slide enabled event on all registered handlers in the handler
034         * manager. If no such handlers exist, this method will do nothing.
035         *
036         * @param source the source of the handlers
037         */
038        public static void fire(final HasSlideEnabledHandlers source) {
039            if (TYPE != null) {
040                SlideEnabledEvent event = new SlideEnabledEvent();
041                source.fireEvent(event);
042            }
043        }
044    
045        /**
046         * Gets the type associated with this event.
047         *
048         * @return returns the handler type
049         */
050        public static Type<SlideEnabledHandler> getType() {
051            if (TYPE == null) {
052                TYPE = new Type<SlideEnabledHandler>();
053            }
054            return TYPE;
055        }
056    
057        @Override
058        public Type<SlideEnabledHandler> getAssociatedType() {
059            return TYPE;
060        }
061    
062        @Override
063        protected void dispatch(final SlideEnabledHandler handler) {
064            handler.onSlideEnabled(this);
065        }
066    
067        /**
068         * Creates a slide enabled event.
069         */
070        protected SlideEnabledEvent() {}
071    
072    }