Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class EmptyTextInputCell extends TextInputCell {
- @Override
- protected void onFocus(Context context, XElement parent, String value, NativeEvent event, ValueUpdater<String> updater) {
- focusContext = context;
- appearance.onFocus(parent, true);
- fireEvent(context, new FocusEvent());
- if (isSelectOnFocus()) {
- selectAll(parent);
- }
- }
- @Override
- public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
- XElement parentEl = XElement.as(parent);
- String currentText = getText(parentEl);
- boolean valueEmpty = (value == null || value.length() == 0);
- boolean currentTextEmpty = (currentText == null || currentText.length() == 0);
- String eventType = event.getType();
- if ("keydown".equals(eventType)) {
- keyDown(currentTextEmpty, parentEl, valueEmpty);
- } else if ("keyup".equals(eventType)) {
- keyUp(currentTextEmpty, parentEl);
- } else if ("click".equals(eventType)) {
- click(currentTextEmpty, parentEl, valueEmpty);
- return;
- }
- super.onBrowserEvent(context, parent, value, event, valueUpdater);
- }
- // Make sure the empty text is removed when real data is being entered
- private void keyDown(boolean currentTextEmpty, XElement parent, boolean currentValueEmpty) {
- if (currentTextEmpty && currentValueEmpty) {
- if (getEmptyText() != null) {
- removeEmptyText(parent);
- }
- }
- }
- // Replace empty text when textbox is cleared
- private void keyUp(boolean currentTextEmpty, XElement parent) {
- if (currentTextEmpty) {
- setText(parent, getEmptyText());
- onEmpty(parent, true);
- select(parent, 0, 0);
- }
- }
- // Never allow selecting the end of the empty text
- private void click(boolean currentTextEmpty, XElement parent, boolean currentValueEmpty) {
- if (currentTextEmpty && currentValueEmpty) {
- select(parent, 0, 0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement