private void print()
  {
    Runnable updateText = new Runnable()
    {
      public void run()
      {
        if ( serverVersion != null )
        {
          int stat = serverVersion.getDataStatus() ;
          if ( stat == 0 )
          {
            messageTextArea.append( "ok\n\nno infos available or undetected erros" ) ;
          }
          else
          {
            messageTextArea.append( "ok\n" ) ;
            // compare local & server version
            if ( localVersion != null )
            {
              if ( serverVersion.isNewer( localVersion ) > 0 )
              {
                messageTextArea.setForeground( Color.blue ) ;
                messageTextArea.append( "\nThere is a newer version available!\n" ) ;
                messageTextArea.setForeground( Color.black ) ;
              }
            }

            // print the information about server version
            if ( stat > 0 ) // no errors
            {
              messageTextArea.append( "\nlatest version on server is:\n" ) ;
            }
            else // some errors
            {
              messageTextArea.append(
                  "failure\n\nthe version information could be incomplete\n" ) ;
            }
            messageTextArea.append( " version\t" + serverVersion.getBUILD_VERSION() +
                               "\n" ) ;
            messageTextArea.append( " build\t" + serverVersion.getBUILD_NUMBER() +
                               "\n" ) ;
            messageTextArea.append( " date\t" + serverVersion.getBUILD_DATE() + "\n" ) ;
            String meta = serverVersion.getBUILD_META() ;
            if ( meta.length() > 0 )
            {
              messageTextArea.append( " info\t" + serverVersion.getBUILD_META() +
                                 "\n" ) ;
            }
          }
        }
        startButton.setEnabled( true ) ;
        closeButton.setEnabled( true ) ;
      }
    } ;
    SwingUtilities.invokeLater( updateText ) ;
  }