95 if (!mpEditDuration->hasAcceptableInput())
106 QMessageBox::Ok, QMessageBox::Ok);
120 if (!mpEditIntervalSize->hasAcceptableInput())
132 QMessageBox::Ok, QMessageBox::Ok);
146 if (!mpEditIntervals->hasAcceptableInput())
157 QMessageBox::Ok, QMessageBox::Ok);
169 mpEditDelay->setEnabled(checked);
178 if (!pTask)
return false;
185 assert(trajectoryproblem);
188 if (mpEditIntervalSize->hasAcceptableInput() &&
189 trajectoryproblem->
getStepSize() != mpEditIntervalSize->text().toDouble())
191 trajectoryproblem->
setStepSize(mpEditIntervalSize->text().toDouble());
194 else if (mpEditIntervals->hasAcceptableInput() &&
195 trajectoryproblem->
getStepNumber() != mpEditIntervals->text().toULong())
197 trajectoryproblem->
setStepNumber(mpEditIntervals->text().toLong());
201 if (mpEditDuration->hasAcceptableInput() &&
202 trajectoryproblem->
getDuration() != mpEditDuration->text().toDouble())
204 trajectoryproblem->
setDuration(mpEditDuration->text().toDouble());
208 C_FLOAT64 StartTime = mpEditDelay->text().toDouble();
210 if (mpCheckDelay->isChecked())
212 if (mpEditDelay->hasAcceptableInput() &&
227 if (StartTime > InitialTime)
235 if (StartTime < InitialTime)
249 if (trajectoryproblem->
getOutputEvent() != mpCheckOutputEvent->isChecked())
251 trajectoryproblem->
setOutputEvent(mpCheckOutputEvent->isChecked());
273 if (!pTask)
return false;
282 assert(trajectoryproblem);
288 mpEditIntervalSize->setText(QString::number(trajectoryproblem->
getStepSize()));
289 mpEditIntervals->setText(QString::number(trajectoryproblem->
getStepNumber()));
290 mpEditDuration->setText(QString::number(trajectoryproblem->
getDuration()));
302 mpCheckDelay->setChecked(Delayed);
303 mpEditDelay->setEnabled(Delayed);
307 mpCheckOutputEvent->setChecked(trajectoryproblem->
getOutputEvent());
364 mpCheckSave->setChecked(
false);
365 mpCheckSave->setEnabled(
false);
369 mpCheckSave->setEnabled(
true);
377 C_FLOAT64 Duration = mpEditDuration->text().toDouble();
380 if (mpCheckDelay->isChecked())
382 if (!mpEditIntervalSize->hasAcceptableInput())
385 OutputStartTime = mpEditDelay->text().toDouble();
388 mpEditIntegrationInterval->setText(QString::number(InitialTime) +
390 QString::number(InitialTime + Duration));
394 if (
std::max(InitialTime, OutputStartTime) > InitialTime + Duration)
395 mpEditOutputInterval->setText(
"empty");
396 else if (InitialTime < OutputStartTime)
398 C_FLOAT64 StepSize = mpEditIntervalSize->text().toDouble();
399 OutputStartTime = InitialTime + (ceil((OutputStartTime - InitialTime) / StepSize)) * StepSize;
400 mpEditOutputInterval->setText(QString::number(OutputStartTime) +
402 QString::number(InitialTime + Duration));
406 mpEditOutputInterval->setText(QString::number(InitialTime) +
408 QString::number(InitialTime + Duration));
413 if (
std::min(InitialTime, OutputStartTime) < InitialTime + Duration)
414 mpEditOutputInterval->setText(
"empty");
415 else if (InitialTime > OutputStartTime)
417 C_FLOAT64 StepSize = mpEditIntervalSize->text().toDouble();
418 OutputStartTime = InitialTime + (ceil((OutputStartTime - InitialTime) / StepSize)) * StepSize;
419 mpEditOutputInterval->setText(QString::number(OutputStartTime) +
421 QString::number(InitialTime + Duration));
424 mpEditOutputInterval->setText(QString::number(InitialTime) +
426 QString::number(InitialTime + Duration));
453 const CModel * pModel = NULL;
463 mpLblDuration->setText(
"Duration" + TimeUnits);
464 mpLblIntervalSize->setText(
"Interval Size" + TimeUnits);
465 mpCheckDelay->setText(
"Suppress Output Before" + TimeUnits);
466 mpLblIntegrationInterval->setText(
"Integration Interval" + TimeUnits);
467 mpLblOutputInterval->setText(
"Output Interval" + TimeUnits);
CCopasiProblem * getProblem()
std::string getTimeUnitsDisplayString() const
void setContinueSimultaneousEvents(const bool &continueSimultaneousEvents)
static const unsigned int ValidMethods[]
const unsigned C_INT32 & getStepNumber() const
static std::string getAllMessageText(const bool &chronological=true)
static StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons=Ok, StandardButton defaultButton=NoButton)
void setDuration(const C_FLOAT64 &duration)
const C_FLOAT64 & getStepSize() const
CopasiWidget * findWidgetFromId(const size_t &id) const
void setStepSize(const C_FLOAT64 &stepSize)
virtual void saved() const
virtual State revalidate()
const C_FLOAT64 & getDuration() const
void setOutputEvent(const bool &outputEvent)
void setTimeSeriesRequested(bool flag)
void setStepNumber(const unsigned C_INT32 &stepNumber)
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
static CTrajectoryMethod * createMethod(CCopasiMethod::SubType subType=CCopasiMethod::deterministic)
const C_FLOAT64 & getOutputStartTime() const
bool timeSeriesRequested() const
void setRange(const C_FLOAT64 &lowerBound, const C_FLOAT64 &upperBound)
void setRange(const int &lowerBound, const int &upperBound)
void setOutputStartTime(const C_FLOAT64 &endTime)
const bool & getContinueSimultaneousEvents() const
const bool & getOutputEvent() const