123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- /*
- * Copyright 2000-2018 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.vaadin.ui;
-
- import java.io.Serializable;
-
- import com.vaadin.shared.ui.ui.UIState.TooltipConfigurationState;
-
- /**
- * Provides method for configuring the tooltip.
- *
- * @author Vaadin Ltd
- * @since 7.1
- */
- public interface TooltipConfiguration extends Serializable {
- /**
- * Returns the time (in ms) the tooltip should be displayed after an event
- * that will cause it to be closed (e.g. mouse click outside the component,
- * key down).
- *
- * @return The close timeout
- */
- public int getCloseTimeout();
-
- /**
- * Sets the time (in ms) the tooltip should be displayed after an event that
- * will cause it to be closed (e.g. mouse click outside the component, key
- * down).
- *
- * @param closeTimeout
- * The close timeout
- */
- public void setCloseTimeout(int closeTimeout);
-
- /**
- * Returns the time (in ms) during which {@link #getQuickOpenDelay()} should
- * be used instead of {@link #getOpenDelay()}. The quick open delay is used
- * when the tooltip has very recently been shown, is currently hidden but
- * about to be shown again.
- *
- * @return The quick open timeout
- */
- public int getQuickOpenTimeout();
-
- /**
- * Sets the time (in ms) that determines when {@link #getQuickOpenDelay()}
- * should be used instead of {@link #getOpenDelay()}. The quick open delay
- * is used when the tooltip has very recently been shown, is currently
- * hidden but about to be shown again.
- *
- * @param quickOpenTimeout
- * The quick open timeout
- */
- public void setQuickOpenTimeout(int quickOpenTimeout);
-
- /**
- * Returns the time (in ms) that should elapse before a tooltip will be
- * shown, in the situation when a tooltip has very recently been shown
- * (within {@link #getQuickOpenDelay()} ms).
- *
- * @return The quick open delay
- */
- public int getQuickOpenDelay();
-
- /**
- * Sets the time (in ms) that should elapse before a tooltip will be shown,
- * in the situation when a tooltip has very recently been shown (within
- * {@link #getQuickOpenDelay()} ms).
- *
- * @param quickOpenDelay
- * The quick open delay
- */
- public void setQuickOpenDelay(int quickOpenDelay);
-
- /**
- * Returns the time (in ms) that should elapse after an event triggering
- * tooltip showing has occurred (e.g. mouse over) before the tooltip is
- * shown. If a tooltip has recently been shown, then
- * {@link #getQuickOpenDelay()} is used instead of this.
- *
- * @return The open delay
- */
- public int getOpenDelay();
-
- /**
- * Sets the time (in ms) that should elapse after an event triggering
- * tooltip showing has occurred (e.g. mouse over) before the tooltip is
- * shown. If a tooltip has recently been shown, then
- * {@link #getQuickOpenDelay()} is used instead of this.
- *
- * @param openDelay
- * The open delay
- */
- public void setOpenDelay(int openDelay);
-
- /**
- * Returns the maximum width of the tooltip popup.
- *
- * @return The maximum width the tooltip popup
- */
- public int getMaxWidth();
-
- /**
- * Sets the maximum width of the tooltip popup.
- *
- * @param maxWidth
- * The maximum width the tooltip popup
- */
- public void setMaxWidth(int maxWidth);
- }
-
- class TooltipConfigurationImpl implements TooltipConfiguration {
- private final UI ui;
-
- public TooltipConfigurationImpl(UI ui) {
- this.ui = ui;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.UI.Tooltip#getCloseTimeout()
- */
- @Override
- public int getCloseTimeout() {
- return getState(false).closeTimeout;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#setCloseTimeout(int)
- */
- @Override
- public void setCloseTimeout(int closeTimeout) {
- getState().closeTimeout = closeTimeout;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#getQuickOpenTimeout()
- */
- @Override
- public int getQuickOpenTimeout() {
- return getState(false).quickOpenTimeout;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#setQuickOpenTimeout(int)
- */
- @Override
- public void setQuickOpenTimeout(int quickOpenTimeout) {
- getState().quickOpenTimeout = quickOpenTimeout;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#getQuickOpenDelay()
- */
- @Override
- public int getQuickOpenDelay() {
- return getState(false).quickOpenDelay;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#setQuickOpenDelay(int)
- */
- @Override
- public void setQuickOpenDelay(int quickOpenDelay) {
- getState().quickOpenDelay = quickOpenDelay;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#getOpenDelay()
- */
- @Override
- public int getOpenDelay() {
- return getState(false).openDelay;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#setOpenDelay(int)
- */
- @Override
- public void setOpenDelay(int openDelay) {
- getState().openDelay = openDelay;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#getMaxWidth()
- */
- @Override
- public int getMaxWidth() {
- return getState(false).maxWidth;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.ui.Tooltip#setMaxWidth(int)
- */
- @Override
- public void setMaxWidth(int maxWidth) {
- getState().maxWidth = maxWidth;
- }
-
- private TooltipConfigurationState getState() {
- return ui.getState().tooltipConfiguration;
- }
-
- private TooltipConfigurationState getState(boolean markAsDirty) {
- return ui.getState(markAsDirty).tooltipConfiguration;
- }
-
- }
|