001 /*
002 * Copyright 2012 GWT-Bootstrap
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package com.github.gwtbootstrap.client.ui.base;
017
018 import com.github.gwtbootstrap.client.ui.event.HiddenEvent;
019 import com.github.gwtbootstrap.client.ui.event.HiddenHandler;
020 import com.github.gwtbootstrap.client.ui.event.HideEvent;
021 import com.github.gwtbootstrap.client.ui.event.HideHandler;
022 import com.github.gwtbootstrap.client.ui.event.ShowEvent;
023 import com.github.gwtbootstrap.client.ui.event.ShowHandler;
024 import com.github.gwtbootstrap.client.ui.event.ShownEvent;
025 import com.github.gwtbootstrap.client.ui.event.ShownHandler;
026 import com.google.gwt.event.shared.HandlerRegistration;
027
028 /**
029 * Interface for components that can trigger actions when they are shown or
030 * hidden.
031 *
032 * @since 2.0.4.0
033 *
034 * @author Dominik Mayer
035 *
036 */
037 public interface HasVisibleHandlers {
038
039 /**
040 * Adds a {@link HideEvent} handler.
041 *
042 * @param handler
043 * the hide handler
044 *
045 * @return {@link HandlerRegistration} used to remove this handler
046 */
047 HandlerRegistration addHideHandler(HideHandler handler);
048
049 /**
050 * Adds a {@link HiddenEvent} handler.
051 *
052 * @param handler
053 * the hidden handler
054 *
055 * @return {@link HandlerRegistration} used to remove this handler
056 */
057 HandlerRegistration addHiddenHandler(HiddenHandler handler);
058
059 /**
060 * Adds a {@link ShowEvent} handler.
061 *
062 * @param handler
063 * the show handler
064 *
065 * @return {@link HandlerRegistration} used to remove this handler
066 */
067 HandlerRegistration addShowHandler(ShowHandler handler);
068
069 /**
070 * Adds a {@link ShownEvent} handler.
071 *
072 * @param handler
073 * the shown handler
074 *
075 * @return {@link HandlerRegistration} used to remove this handler
076 */
077 HandlerRegistration addShownHandler(ShownHandler handler);
078 }