#include "GWt_elementBeam.h" #include "mixedTools.h" #include #include #include #include #include GWt_elementBeam::GWt_elementBeam(GWt_elementLigneFaisceau* elemLigne) :GWt_abstractElement(new elementBeam()) { elementLigneFaiseauContainer_ = elemLigne; initialize(); } void GWt_elementBeam::initilializeDialog() { string* param = beginDialog(); registerParam("int____",2000, " 1/2 horizontal beam extend rms (cm) : "); getParamValue("int____"); getParamDescription("int____"); registerParam("bool____",true, " 1/2 horizontal beam extend rms (cm) : "); getParamValue("bool____"); getParamDescription("bool____"); string t = "ttttt"; registerParam("str____",t, " 1/2 horizontal beam extend rms (cm) : "); getParamValue("str____"); getParamDescription("str____"); new WText(" 1/2 horizontal beam extend rms (cm) : ",dialog_->contents()); xEdit_ = new WLineEdit(param->c_str(), dialog_->contents()); // new WBreak(dialog_->contents()); new WText("1/2 horizontal beam divergence rms (mrad) : ",dialog_->contents()); xpEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("1/2 vertical beam extend rms (cm) : ",dialog_->contents()); yEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); // new WBreak(dialog_->contents()); new WText("1/2 horizontal beam divergence rms (mrad) : ",dialog_->contents()); ypEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("1/2 longitudinal beam extend rms (cm) : ",dialog_->contents()); dlEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); // new WBreak(dialog_->contents()); new WText("1/2 momentum spread rms (mrad) : ",dialog_->contents()); delEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("momentum of the central trajectory (GeV/c) : ",dialog_->contents()); p0Edit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); 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_elementBeam::dialogDone); } void GWt_elementBeam::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] = xEdit_->text().toUTF8(); envoi[++compteur] = xpEdit_->text().toUTF8(); envoi[++compteur] = yEdit_->text().toUTF8(); envoi[++compteur] = ypEdit_->text().toUTF8(); envoi[++compteur] = dlEdit_->text().toUTF8(); envoi[++compteur] = delEdit_->text().toUTF8(); envoi[++compteur] = p0Edit_->text().toUTF8(); if ( compteur != (int)nbParam ) { cerr << " GWt_elementBeam::dialogDone() pb nb de parametres, compteur = " << compteur << " nbParam= " << nbParam << endl; return; } abstractElement_->setParametersString(envoi); updateLabelAndToolTipWidget(); delete [] envoi; }