
static char PowerPage_id[] = "$Header: CommsPage.cc,v 1.2 97/10/03 09:28:08 oreilly Exp $";

/*
$Log:	CommsPage.cc,v $
Revision 1.2  97/10/03  09:28:08  09:28:08  oreilly (Thomas C. O'Reilly)
*** empty log message ***

Revision 1.1  97/09/10  08:46:08  08:46:08  oreilly (Thomas C. O'Reilly)
Initial revision

Revision 1.2  97/03/20  12:30:33  12:30:33  oreilly (Thomas C. O'Reilly)
..

Revision 1.1  96/10/28  09:12:37  09:12:37  oreilly (Thomas C. O'Reilly)
Initial revision

*/
#include <Xm/Form.h>
#include <Xm/PushB.h>
#include <Xm/Separator.h>
#include "CommsPage.h"
#include "VehicleComponent.h"
#include "CommRelays.h"
#include "TiburonApp.h"
#include "ViewButtons.h"


CommsPage::CommsPage(const char *name, Widget parent)
  : VkComponent(name)
{
  _baseWidget = XtVaCreateWidget(name, xmFormWidgetClass, parent, NULL);
  installDestroyHandler();

  VehicleComponent *vehicleBase = 
    ((TiburonApp *)theApplication)->vehicleConfig->vehicleBase;
  
  // Find CommRelayComponents (should be children of base)
  VehicleComponent **child;

  SListIter<VehicleComponent *> children(vehicleBase->childList);
  
  children.reset();
  int nCommNets = 0;
  
  ViewButtons *viewButtons = new ViewButtons("views", _baseWidget);
  XtVaSetValues(viewButtons->baseWidget(),
		XmNorientation, XmHORIZONTAL,
		XmNtopAttachment, XmATTACH_FORM,
		XmNleftAttachment, XmATTACH_FORM,
		XmNrightAttachment, XmATTACH_FORM,
		NULL);
  
  Layout *layout = new Layout();
  Widget viewButton;
  View *view;
  
  while (child = children.next())
  {
    if ((*child)->type() == VehicleComponent::CommRelaysType)
    {
      char viewName[100];
      sprintf(viewName, "%sView", (*child)->name());
      view = new View(viewName, _baseWidget);
      XtVaSetValues(view->baseWidget(),
		    XmNtopAttachment, XmATTACH_WIDGET,
		    XmNtopWidget, viewButtons->baseWidget(),
		    XmNbottomAttachment, XmATTACH_FORM,
		    XmNleftAttachment, XmATTACH_FORM,
		    XmNrightAttachment, XmATTACH_FORM,
		    NULL);
      
      viewButton = viewButtons->addView(view);
      
      nCommNets++;
      
      const char *prefix = ((CommRelaysComponent *)(*child))->dmPrefix();
      
      CommRelays *relays = new CommRelays((*child)->name(),
					  view->baseWidget(), 
					  prefix);
      
      layout->reset();
      layout->attachToEdge(Top);
      layout->attachToEdge(Bottom);
      layout->attachToEdge(Left);
      layout->attachToEdge(Right);
      view->add(relays->baseWidget(), layout);
      relays->show();
    }
  }

  if (nCommNets)
    viewButtons->setValue(0, True);

  viewButtons->show();
}


CommsPage::~CommsPage()
{
}
