package com.vaadin.tests.tooltip;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUIWithLog;
import com.vaadin.tests.util.LoremIpsum;
import com.vaadin.ui.NativeButton;
import com.vaadin.v7.data.Property;
import com.vaadin.v7.data.Property.ValueChangeEvent;
import com.vaadin.v7.ui.TextField;
public class TooltipConfiguration extends AbstractReindeerTestUIWithLog {
private TextField closeTimeout;
private TextField quickOpenTimeout;
private TextField maxWidth;
private TextField openDelay;
private TextField quickOpenDelay;
@Override
protected void setup(VaadinRequest request) {
NativeButton componentWithShortTooltip = new NativeButton(
"Short tooltip");
componentWithShortTooltip.setDescription("This is a short tooltip");
componentWithShortTooltip.setId("shortTooltip");
NativeButton componentWithLongTooltip = new NativeButton(
"Long tooltip");
componentWithLongTooltip.setId("longTooltip");
componentWithLongTooltip.setDescription(LoremIpsum.get(5000));
closeTimeout = createIntegerTextField("Close timeout",
getState().tooltipConfiguration.closeTimeout);
closeTimeout.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (closeTimeout.getConvertedValue() != null) {
getTooltipConfiguration().setCloseTimeout(
(Integer) closeTimeout.getConvertedValue());
}
}
});
maxWidth = createIntegerTextField("Max width",
getState().tooltipConfiguration.maxWidth);
maxWidth.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (maxWidth.getConvertedValue() != null) {
getTooltipConfiguration().setMaxWidth(
(Integer) maxWidth.getConvertedValue());
}
}
});
openDelay = createIntegerTextField("Open delay",
getState().tooltipConfiguration.openDelay);
openDelay.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (openDelay.getConvertedValue() != null) {
getTooltipConfiguration().setOpenDelay(
(Integer) openDelay.getConvertedValue());
}
}
});
quickOpenDelay = createIntegerTextField("Quick open delay",
getState().tooltipConfiguration.quickOpenDelay);
quickOpenDelay
.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (quickOpenDelay.getConvertedValue() != null) {
getTooltipConfiguration()
.setQuickOpenDelay((Integer) quickOpenDelay
.getConvertedValue());
}
}
});
quickOpenTimeout = createIntegerTextField("Quick open timeout",
getState().tooltipConfiguration.quickOpenTimeout);
quickOpenTimeout
.addValueChangeListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
if (quickOpenTimeout.getConvertedValue() != null) {
getTooltipConfiguration().setQuickOpenTimeout(
(Integer) quickOpenTimeout
.getConvertedValue());
}
}
});
getLayout().addComponents(closeTimeout, openDelay, quickOpenDelay,
quickOpenTimeout, maxWidth);
getLayout().addComponents(componentWithShortTooltip,
componentWithLongTooltip);
}
private TextField createIntegerTextField(String caption, int initialValue) {
TextField tf = new TextField(caption);
tf.setId(caption);
tf.setConverter(Integer.class);
tf.setImmediate(true);
tf.setConvertedValue(initialValue);
// makes TB3 tests simpler - no "null" added when clearing a field
tf.setNullRepresentation("");
return tf;
}
@Override
protected String getTestDescription() {
return "Tests that tooltip delays can be configured";
}
@Override
protected Integer getTicketNumber() {
return 8065;
}
}