public LoopComponentData(IComponentValueStore valueStore, string id) : base(valueStore, id) { parametersData = new ObservableCollection <LoopParameterData>(); iterationsData = new ObservableCollection <LoopExpressionData>(); // minimum number of parameter is 1 AddParameter(null, false); // expression id is <id>_e, condition id is <id>_c expressionData = new LoopExpressionData(valueStore, GetExpressionId()); conditionData = new LoopExpressionData(valueStore, GetConditionId()); }
public void DeleteParameter() { // minimum number of parameter is 1 if (parametersData.Count > 1) { LoopParameterData parameterData = parametersData.Last(); LoopExpressionData iterationData = iterationsData.Last(); parametersData.RemoveAt(parametersData.Count - 1); iterationsData.RemoveAt(iterationsData.Count - 1); valueStore.DeleteLoopParameter(parameterData, iterationData); } }
public void AddParameter(string paramName = null, bool callValueStore = true) { if (paramName == null) { int i = parametersData.Count + 1; paramName = "p" + i; } // the parameter id is in the form <id>_p0, <id>_p1, so on // the iteration id is in the form <id>_i0, <id>_i1, so on LoopParameterData parameterData = new LoopParameterData(valueStore) { id = GetParameterId(parametersData.Count), varname = paramName }; parametersData.Add(parameterData); LoopExpressionData iterationData = new LoopExpressionData(valueStore, GetIterationId(parametersData.Count)); iterationsData.Add(iterationData); if (callValueStore) { valueStore.AddLoopParameter(parameterData, iterationData); } }