#include "GWt_elementBend.h" #include "mixedTools.h" #include #include #include #include #include GWt_elementBend::GWt_elementBend(GWt_elementLigneFaisceau* elemLigne ) :GWt_abstractElement(new elementBend()) { elementLigneFaiseauContainer_ = elemLigne; initialize(); } void GWt_elementBend::initilializeDialog() { string* param = beginDialog(); new WText("angle (deg.) : ",dialog_->contents()); angleEdit_ = new WLineEdit( param->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("radius (m) : ",dialog_->contents()); radiusEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("momentum (MeV/c) : ",dialog_->contents()); momentumEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WBreak(dialog_->contents()); new WText("length (cm) : ",dialog_->contents()); xlengthEdit_ = new WLineEdit("0", dialog_->contents()); xlengthEdit_->setDisabled(true); new WBreak(dialog_->contents()); new WText("aperture (cm) : ",dialog_->contents()); apertureEdit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); apertureEdit_->setDisabled(true); new WBreak(dialog_->contents()); new WText("pole face rotations (deg.) entrance : ",dialog_->contents()); beta1Edit_ = new WLineEdit( (++param)->c_str(), dialog_->contents()); new WText("exit : ",dialog_->contents()); beta2Edit_ = 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_elementBend::dialogDone); } void GWt_elementBend::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] = string(mixedTools::intToString(nbParam) ); envoi[++compteur] = labelEdit_->text().toUTF8(); envoi[++compteur] = angleEdit_->text().toUTF8(); envoi[++compteur] = radiusEdit_->text().toUTF8(); envoi[++compteur] = momentumEdit_->text().toUTF8(); envoi[++compteur] = apertureEdit_->text().toUTF8(); envoi[++compteur] = beta1Edit_->text().toUTF8(); envoi[++compteur] = beta2Edit_->text().toUTF8(); if ( compteur != (int)nbParam ) { cerr << " GWt_elementBend::dialogDone() pb nb de parametres, compteur = " << compteur << " nbParam= " << nbParam << endl; return; } abstractElement_->setParametersString(envoi); updateLabelAndToolTipWidget(); delete [] envoi; }