Advertisement
Guest User

EmptyTextInputCell

a guest
Jun 27th, 2013
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.14 KB | None | 0 0
  1. public class EmptyTextInputCell extends TextInputCell {
  2.     @Override
  3.     protected void onFocus(Context context, XElement parent, String value, NativeEvent event, ValueUpdater<String> updater) {
  4.         focusContext = context;
  5.         appearance.onFocus(parent, true);
  6.         fireEvent(context, new FocusEvent());
  7.  
  8.         if (isSelectOnFocus()) {
  9.             selectAll(parent);
  10.         }
  11.     }
  12.  
  13.     @Override
  14.     public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
  15.         XElement parentEl = XElement.as(parent);
  16.         String currentText = getText(parentEl);
  17.  
  18.         boolean valueEmpty = (value == null || value.length() == 0);
  19.         boolean currentTextEmpty = (currentText == null || currentText.length() == 0);
  20.  
  21.         String eventType = event.getType();
  22.         if ("keydown".equals(eventType)) {
  23.             keyDown(currentTextEmpty, parentEl, valueEmpty);
  24.         } else if ("keyup".equals(eventType)) {
  25.             keyUp(currentTextEmpty, parentEl);
  26.         } else if ("click".equals(eventType)) {
  27.             click(currentTextEmpty, parentEl, valueEmpty);
  28.             return;
  29.         }
  30.         super.onBrowserEvent(context, parent, value, event, valueUpdater);
  31.     }
  32.  
  33.     // Make sure the empty text is removed when real data is being entered
  34.     private void keyDown(boolean currentTextEmpty, XElement parent, boolean currentValueEmpty) {
  35.         if (currentTextEmpty && currentValueEmpty) {
  36.             if (getEmptyText() != null) {
  37.                 removeEmptyText(parent);
  38.             }
  39.         }
  40.     }
  41.  
  42.     // Replace empty text when textbox is cleared
  43.     private void keyUp(boolean currentTextEmpty, XElement parent) {
  44.         if (currentTextEmpty) {
  45.             setText(parent, getEmptyText());
  46.             onEmpty(parent, true);
  47.             select(parent, 0, 0);
  48.         }
  49.     }
  50.  
  51.     // Never allow selecting the end of the empty text
  52.     private void click(boolean currentTextEmpty, XElement parent, boolean currentValueEmpty) {
  53.         if (currentTextEmpty && currentValueEmpty) {
  54.             select(parent, 0, 0);
  55.         }
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement