public void attachComponent(final AbstractTextField component) { focusListeners.put( component, new FocusListener() { @Override public void focus(FocusEvent event) { focusedTextField = (AbstractTextField) event.getComponent(); if (isFloatingWindow) { if (keyboardWindow == null) keyboardWindow = getWindow(); if (keyboardWindow.getParent() == null) component.getUI().addWindow(keyboardWindow); keyboardWindow.setVisible(true); } } }); component.addFocusListener(focusListeners.get(component)); }