public void focusLost( FocusEvent e )
  {
    int id = e.getID() ;
    TLangTextField field = langFields[id] ;

    if ( field.isDataChanged() && ( !popup.isVisible() ) )
    {
      // ask
      if ( !TGlobal.config.confirmDataOnFocusLost() )
      {
        if ( JOptionPane.showConfirmDialog( null,
                                            "Data changed - apply ?",
                                            "question",
                                            JOptionPane.YES_NO_OPTION ) ==
             JOptionPane.YES_OPTION )
        {
          this.adoptData( id ) ;
        }
        // If the JOptionPane pops up, then no fireValueChanged() from
        // JTable arrives. Update the data manually.
        this.fetchData() ;
      }
      else // don't ask
      {
        this.adoptData( id ) ;
      }
    }
  }