private void UpdateOperatorParameters() { foreach (IValueParameter <T> opParam in operatorParameters) { opParam.ValueChanged -= new EventHandler(opParam_ValueChanged); Parameters.Remove(opParam.Name); } operatorParameters.Clear(); for (int i = 0; i < Operators.Count; i++) { IValueParameter <T> opParam = new OptionalValueParameter <T>(i.ToString(), string.Empty, Operators[i]); opParam.Hidden = true; opParam.ValueChanged += new EventHandler(opParam_ValueChanged); Parameters.Add(opParam); operatorParameters.Add(opParam); } }
private void AfterDeserialization() { // BackwardsCompatibility3.3 #region Backwards compatible code (remove with 3.4) OptionalValueParameter <DoubleMatrix> oldDistanceMatrixParameter = Parameters["DistanceMatrix"] as OptionalValueParameter <DoubleMatrix>; if (oldDistanceMatrixParameter != null) { Parameters.Remove(oldDistanceMatrixParameter); Parameters.Add(new OptionalValueParameter <DistanceMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities.")); DistanceMatrixParameter.GetsCollected = oldDistanceMatrixParameter.GetsCollected; DistanceMatrixParameter.ReactOnValueToStringChangedAndValueItemImageChanged = false; if (oldDistanceMatrixParameter.Value != null) { DoubleMatrix oldDM = oldDistanceMatrixParameter.Value; DistanceMatrix newDM = new DistanceMatrix(oldDM.Rows, oldDM.Columns, oldDM.ColumnNames, oldDM.RowNames); newDM.SortableView = oldDM.SortableView; for (int i = 0; i < newDM.Rows; i++) { for (int j = 0; j < newDM.Columns; j++) { newDM[i, j] = oldDM[i, j]; } } DistanceMatrixParameter.Value = (DistanceMatrix)newDM.AsReadOnly(); } } ValueParameter <DoubleMatrix> oldCoordinates = (Parameters["Coordinates"] as ValueParameter <DoubleMatrix>); if (oldCoordinates != null) { Parameters.Remove(oldCoordinates); Parameters.Add(new OptionalValueParameter <DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities.", oldCoordinates.Value) { GetsCollected = oldCoordinates.GetsCollected }); } if (Operators.Count == 0) { InitializeOperators(); } #endregion RegisterEventHandlers(); }