package com.turbomanage.gwt.client.ui.widget;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.user.client.ui.TextBox;
public class PromptedTextBox extends TextBox implements KeyPressHandler, FocusHandler, ClickHandler
{
private String promptText;
private String promptStyle;
public PromptedTextBox(String promptText, String promptStyle)
{
this.promptText = promptText;
this.promptStyle = promptStyle;
this.addKeyPressHandler(this);
this.addFocusHandler(this);
this.addClickHandler(this);
showPrompt();
}
public void showPrompt()
{
this.addStyleName(promptStyle);
this.setText(this.promptText);
}
public void hidePrompt()
{
this.setText(null);
this.removeStyleName(promptStyle);
}
@Override
public void onKeyPress(KeyPressEvent event)
{
if (promptText.equals(this.getText())
&& !(event.getNativeEvent().getKeyCode() == KeyCodes.KEY_TAB))
{
hidePrompt();
}
}
@Override
public void onFocus(FocusEvent event)
{
this.setCursorPos(0);
}
@Override
public void onClick(ClickEvent event)
{
if (promptText.equals(this.getText()))
hidePrompt();
}
}