#include "GWt_sector.h" #include "GWt_ligneFaisceau.h" #include #include #include #include #include #include #include GWt_sector::GWt_sector(GWt_accelerator* parent,sector* sect) : parent_(parent), sector_(sect) { setIcon(parent->getAcceleratorGlobalViewLayout()); } 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(sector_->getName(),sectorContainer); icon->setStyleClass("sectionIcon"); icon->setHeight(100); icon->setToolTip("clic to view details"); new WBreak(sectorContainer); std::stringstream str; str << sector_->getRepetitionNumber(); std::string result; str >> result; // Add repetition times WText* t = new WText(" x"+result+" ",sectorContainer); if (sector_->getRepetitionNumber() > 1) { t->setToolTip("repeted "+result+" times"); } else { t->setToolTip("repeted "+result+" time"); } new WBreak(sectorContainer); // Add refected if (sector_->getReflected()) { WText* t = new WText(" reflected from "+sector_->getDuplicatedFrom()->getName(),sectorContainer); } else if (sector_->getDuplicatedFrom() != NULL) { WText* t = new WText(" duplicated from "+sector_->getDuplicatedFrom()->getName(),sectorContainer); } new WBreak(sectorContainer); sectorContainer->clicked().connect(this,&GWt_sector::displayWidgetBeamLine); } void GWt_sector::createWidgetBeamLine(PspaApplication* pspa,WContainerWidget* parent) { // suppress old detailled view if present parent->clear(); 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(sector_->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 beamLine_ = new GWt_ligneFaisceau(pspa); vContainerLayout->addWidget(beamLine_); wdg->setLayout(vContainerLayout); } void GWt_sector::displayWidgetBeamLine() { createWidgetBeamLine(parent_->getControler(),parent_->getAcceleratorDetailledView()); }