// =====================================================================
//  $Id: THelpCommand.cc,v 1.4 2004/03/07 10:30:28 goiwai Exp $
//  $Name: CLDAQ-1-14-03 $
//  $Log: THelpCommand.cc,v $
//  Revision 1.4  2004/03/07 10:30:28  goiwai
//  ROOTに組みこむためのおまじないマクロを埋めこみました。
//  全てにおいて完全に動作するわけではありません。
//
//  Revision 1.3  2003/10/06 17:02:37  goiwai
//  *** empty log message ***
//
//  Revision 1.2  2003/07/30 16:17:31  goiwai
//  ファイルにコミットログをつけることにしました.
//
// =====================================================================
#include "THelpCommand.hh"
#include "TRunManager.hh"
#include "TUserInterface.hh"

static const Tstring _name = "help";
static const Tstring _desc = "print a detail of command given as argument.";

THelpCommand::THelpCommand( TRunManager* manager )
  : TCommand( manager, _name, _desc )
{;}

THelpCommand::~THelpCommand()
{;}

Tvoid THelpCommand::Execute( const TstringList& arguments )
{
  if ( arguments.size() != 1 ) {
    ShowCommandDetail();
    return;
  }

  TUserInterface* ui = theRunManager -> GetUserInterface();

  if ( ui ) {
    Tstring path = ui -> ModifyPath( arguments[ 0 ] );
    TCommand* com = ui -> FindCommand( path );
    if ( com ) {
      const TCommandTable& table = ui -> GetCommandTable();
      Tcout << table.GetCommandSpecified( path ) << Tendl;
      Tcout << com -> GetGuidance() << Tendl;
    } else {
      ui -> NotFoundCommand( arguments[ 0 ] );
    }
  }

  return;
}

#ifdef __CLDAQ_ROOT_DLL
    ClassImp(THelpCommand)
#endif
