private void NoCommandAdd(ParameterModel toAdd, int index) { lock (ParameterModelsLock) { string error = null; ParameterModels.Insert(index, toAdd); RealLinkedParameter.Add(toAdd.RealParameter, ref error); toAdd.UpdateValueFromReal(); toAdd.SignalIsLinkedChanged(); } }
private int NoCommandRemove(ParameterModel toRemove) { lock (ParameterModelsLock) { var index = ParameterModels.IndexOf(toRemove); string error = null; ParameterModels.RemoveAt(index); RealLinkedParameter.Remove(toRemove.RealParameter, ref error); toRemove.UpdateValueFromReal(); toRemove.SignalIsLinkedChanged(); return(index); } }
private bool NoCommandAdd(ParameterModel toAdd, int index, ref string error) { lock (ParameterModelsLock) { ParameterModels.Insert(index, toAdd); // Try to add the linked parameter if (!RealLinkedParameter.Add(toAdd.RealParameter, ref error)) { //if the add failed return that fact ParameterModels.RemoveAt(index); return(false); } toAdd.UpdateValueFromReal(); toAdd.SignalIsLinkedChanged(); return(true); } }
/// <summary> /// Internally set the value of the linked parameter without using a command in the session. /// </summary> /// <param name="newValue">The value to set it to</param> /// <param name="error">An error message in case of failure</param> /// <returns>True if successful, false if there is an error.</returns> internal bool SetWithoutCommand(string newValue, ref string error) { lock (ParameterModelsLock) { foreach (var parameter in ParameterModels) { if (!ArbitraryParameterParser.Check(parameter.RealParameter.Type, newValue, ref error)) { return(false); } } if (!RealLinkedParameter.SetValue(newValue, ref error)) { return(false); } foreach (var parameter in ParameterModels) { parameter.UpdateValueFromReal(); } } return(true); }