@Override
    public void focusLost(FocusEvent e) {
      boolean isFocusableComponent = focusableComponents.contains(e
          .getSource());
      boolean isNonEmptyOpposite = e.getOppositeComponent() != null;
      if (isFocusableComponent
          && isNonEmptyOpposite
          && !SwingUtilities.isDescendingFrom(e
              .getOppositeComponent(), peer)) {
        peer.commitOrRevert();
      }
    }
@Override
    public void focusLost(FocusEvent e)