#include "GWt_sector.h" #include "GWt_ligneFaisceau.h" #include #include #include #include #include #include #include GWt_sector::GWt_sector(GWt_accelerator* parent,sector* sect) : UI_Accelerator_(parent), sectorControler_(sect) { setIcon(UI_Accelerator_->getAcceleratorGlobalViewLayout()); displayWidgetBeamLine(); } GWt_sector::~GWt_sector() { } void GWt_sector::setIcon(WLayout* parentLineLayout) { WContainerWidget* sectorContainer = new WContainerWidget(); if (parentLineLayout->count() > 0) { WContainerWidget* link = new WContainerWidget(); new WLabel("",link); link->setStyleClass("elementLigneFaiseau_line"); parentLineLayout->addWidget(link); } sectorContainer->setStyleClass("beamLineIcon"); parentLineLayout->addWidget(sectorContainer); WLabel* icon = new WLabel(sectorControler_->getName(),sectorContainer); icon->setStyleClass("sectionIcon"); icon->setHeight(100); icon->setToolTip("clic to view details"); new WBreak(sectorContainer); std::stringstream str; str << sectorControler_->getRepetitionNumber(); std::string result; str >> result; // Add repetition times WText* t = new WText(" x"+result+" ",sectorContainer); if (sectorControler_->getRepetitionNumber() > 1) { t->setToolTip("executed "+result+" times"); } else { t->setToolTip("executed "+result+" time"); } new WBreak(sectorContainer); // Add refected if (sectorControler_->getReflected()) { new WText(" reflected from "+sectorControler_->getDuplicatedFrom()->getName(),sectorContainer); } else if (sectorControler_->getDuplicatedFrom() != NULL) { new WText(" duplicated from "+sectorControler_->getDuplicatedFrom()->getName(),sectorContainer); } new WBreak(sectorContainer); sectorContainer->clicked().connect(this,&GWt_sector::displayWidgetBeamLine); } void GWt_sector::createWidgetBeamLine(WContainerWidget* parent) { // suppress old detailled view if present parent->clear(); // add the detailled view WContainerWidget* wdg = new WContainerWidget(parent); wdg->setObjectName("sector"); wdg->addStyleClass("sectorPanel"); Wt::WVBoxLayout* vContainerLayout = new WVBoxLayout(); vContainerLayout->setContentsMargins(0,0,0,0); Wt::WPanel *collapsiblePanel = new Wt::WPanel(wdg); collapsiblePanel->setTitle("Sector panel"); collapsiblePanel->setCollapsible(true); WContainerWidget* menu = new WContainerWidget(wdg); menu->addStyleClass("sectorMenu"); // Wt::WHBoxLayout* hmenuLayout = new WHBoxLayout(); // menu->setLayout(hmenuLayout); new WLabel(sectorControler_->getName()+" ",menu); WPushButton* actionParameters = new WPushButton("",menu); // set tooltips actionParameters->setToolTip("change parameters"); // Set class for actions elements actionParameters->setStyleClass("Button WhiteButton parameters"); actionParameters->setMaximumSize(32,32); actionParameters->setMinimumSize(32,32); new WLabel(" Type: ",menu); WComboBox* typeWidget = new WComboBox(menu); typeWidget->addItem("Linear"); typeWidget->addItem("Circular"); menu->setWidth(20+7+7+1+1+2); vContainerLayout->addWidget(menu); // Add beamLine for this sector UI_beamLine_ = new GWt_ligneFaisceau(getAccelerator()->getDataManager(),this); vContainerLayout->addWidget(UI_beamLine_); // add the software panel executeWidget_ = new GWt_softwarePanel(getAccelerator()->getDataManager(),this); vContainerLayout->addWidget(executeWidget_); wdg->setLayout(vContainerLayout); } void GWt_sector::displayWidgetBeamLine() { createWidgetBeamLine(getAccelerator()->getAcceleratorDetailledView()); }