Пример #1
0
  @Override
  public void setKeyboardFocus(final View view) {
    if (view == null) {
      return;
    }

    final FocusManager currentFocusManager = keyboardManager.getFocusManager();
    if (currentFocusManager != null
        && currentFocusManager.getFocus() != null
        && currentFocusManager.getFocus().getParent() != null) {
      currentFocusManager.getFocus().getParent().markDamaged();
    }

    if (currentFocusManager != null) {
      final View currentFocus = currentFocusManager.getFocus();
      if (currentFocus != null && currentFocus != view) {
        currentFocus.focusLost();
      }
    }

    final FocusManager focusManager = view.getFocusManager();
    if (focusManager != null) {
      focusManager.setFocus(view);
      if (view.getParent() != null) {
        view.getParent().markDamaged();
      }
    }
    if (focusManager == null) {
      LOG.warn("No focus manager for " + view);
    } else {
      keyboardManager.setFocusManager(focusManager);
    }
  }
Пример #2
0
  public void start(KeyboardManager keymgr, Window root, RunQueue rqueue) {
    EventListener listener = new EventListener();
    try {
      // try to add a global event listener
      Toolkit.getDefaultToolkit().addAWTEventListener(listener, EVENT_MASK);
    } catch (SecurityException se) {
      // fall back to listening to our main window
      if (root != null) {
        root.addKeyListener(listener);
        root.addMouseListener(listener);
        root.addMouseMotionListener(listener);
      }
    }

    // and tie into the keyboard manager if one is provided
    if (keymgr != null) {
      keymgr.registerKeyObserver(
          new KeyboardManager.KeyObserver() {
            public void handleKeyEvent(int id, int keyCode, long timestamp) {
              handleUserActivity();
            }
          });
    }

    // register an interval to periodically check our last activity time
    new Interval(rqueue) {
      @Override
      public void expired() {
        checkIdle();
      }
    }.schedule(_toIdleTime / 3, true);
  }
Пример #3
0
 @Override
 public boolean hasFocus(final View view) {
   final FocusManager focusManager = keyboardManager.getFocusManager();
   return focusManager != null && focusManager.getFocus() == view;
 }
Пример #4
0
 private FocusManager getFocusManager() {
   return overlayView == CLEAR_OVERLAY
       ? keyboardManager.getFocusManager()
       : overlayView.getFocusManager();
 }