#include "GWt_elementCell.h" #include "mixedTools.h" #include #include #include #include #include #include GWt_elementCell::GWt_elementCell(GWt_elementLigneFaisceau* elemLigne) :GWt_abstractElement(new elementCell()) { elementLigneFaiseauContainer_ = elemLigne; initialize(); } void GWt_elementCell::initilializeDialog() { string* param = beginDialog(); new WText("length (cm) : ",dialog_->contents()); lenghtElemEdit_ = new WLineEdit(param->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("aperture (cm) : ",dialog_->contents()); apertureEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("initial phase (deg.) : ",dialog_->contents()); initialPhaseEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("max phase step (deg.) : ",dialog_->contents()); phaseStepMaxEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("max accelerating field (MV/m) : ",dialog_->contents()); acceleratingFieldEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("name of file for field shape : ",dialog_->contents()); acceleratingShapeFileEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); WPanel *panel = new WPanel(dialog_->contents()); panel->setTitle(" magnetic focusing "); WText* t1 = new WText("name of file for focusing mag. field : ",dialog_->contents()); focusingMagFileEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); WText* t2 = new WText(" z-offset for mag. field : ",dialog_->contents()); offsetMagEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); WText* t3 = new WText(" scaling factor for mag. field : ",dialog_->contents()); scaleFactorEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); WContainerWidget* contenu = new WContainerWidget(); contenu->addWidget(t1); contenu->addWidget(focusingMagFileEdit_); contenu->addWidget(new WBreak()); contenu->addWidget(t2); contenu->addWidget(offsetMagEdit_); contenu->addWidget(new WBreak()); contenu->addWidget(t3); contenu->addWidget(scaleFactorEdit_); panel->setCentralWidget(contenu); WPushButton *annule= new WPushButton("cancel",dialog_->contents()); annule->clicked().connect(dialog_, &Wt::WDialog::reject); WPushButton *submit= new WPushButton("OK",dialog_->contents()); submit->clicked().connect(dialog_, &Wt::WDialog::accept); dialog_->finished().connect(this, &GWt_elementCell::dialogDone); } void GWt_elementCell::dialogDone(WDialog::DialogCode code) { if (code != Wt::WDialog::Accepted) return; unsigned nbParam = abstractElement_->getNbParams(); string* envoi = new string[nbParam+1]; int compteur = -1; envoi[++compteur] = mixedTools::intToString(nbParam); envoi[++compteur] = labelEdit_->text().toUTF8(); envoi[++compteur] = lenghtElemEdit_->text().toUTF8(); envoi[++compteur] = apertureEdit_->text().toUTF8(); envoi[++compteur] = initialPhaseEdit_->text().toUTF8(); envoi[++compteur] = phaseStepMaxEdit_->text().toUTF8(); envoi[++compteur] = acceleratingFieldEdit_->text().toUTF8(); envoi[++compteur] = acceleratingShapeFileEdit_->text().toUTF8(); envoi[++compteur] = focusingMagFileEdit_->text().toUTF8(); envoi[++compteur] = offsetMagEdit_->text().toUTF8(); envoi[++compteur] = scaleFactorEdit_->text().toUTF8(); if ( compteur != (int)nbParam ) { cerr << " GWt_elementCell::dialogDone() pb nb de parametres, compteur = " << compteur << " nbParam= " << nbParam << endl; return; } abstractElement_->setParametersString(envoi); updateLabelAndToolTipWidget(); delete [] envoi; }