001package gwt.material.design.client.base;
002
003/*
004 * #%L
005 * GwtMaterial
006 * %%
007 * Copyright (C) 2015 GwtMaterialDesign
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 gwt.material.design.client.base.mixin.TooltipMixin;
024import gwt.material.design.client.constants.Position;
025import gwt.material.design.client.ui.MaterialTooltip;
026
027/**
028 * Interface that determines the class has a {@link MaterialTooltip} attached to
029 * it.
030 * 
031 * @author gilberto-torrezan
032 * 
033 * @see TooltipMixin
034 * @see MaterialWidget
035 */
036public interface HasTooltip {
037
038    /**
039     * @return the current tooltip text to be shown
040     */
041    String getTooltip();
042
043    /**
044     * Sets the tooltip text to be shown for the component.
045     */
046    void setTooltip(String tooltip);
047
048    /**
049     * @return the position where the tooltip text should appear, relative to
050     *         the component
051     */
052    Position getTooltipPosition();
053
054    /**
055     * Sets the {@link Position} where the tooltip text should appear, relative
056     * to the component.
057     */
058    void setTooltipPosition(Position position);
059
060    /**
061     * @return the delay in ms used to show the tooltip
062     */
063    int getTooltipDelayMs();
064
065    /**
066     * Sets the time in ms to show the tooltip text for the component
067     */
068    void setTooltipDelayMs(int delayMs);
069
070}