public FunctionWeightPresenter(IFunctionBaseIdentifier functionBaseIdentifier, 
     IFunctionWeightView view, IFunctionWeightModel model) 
     : base(functionBaseIdentifier, view, model)
 {
 }
 public static List<IFunction> GetFunctions(IRegistryIdentifier[] allWriteableRegistryIdentifiers, IRegistryIdentifier[] allRegistryIdentifiers,
     ICodonConverterIdentifier[] codonConverters, IFunctionBaseIdentifier functionBaseIdentifier)
 {
     var identifier = functionBaseIdentifier.Identifier;
     if(identifier == "ReadRegistry")
     {
         return GeneticFaraday.GEP.Functions.Functions.IRegistryRead.GetReadFunctions(
             allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if(identifier == "WriteRegistry")
     {
         return GeneticFaraday.GEP.Functions.Functions.IRegistryWrite.GetWriteFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Sum")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSumFunctions(
             allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Difference")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetDifferenceFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Multiply")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetMultiplyFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Divide")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetDivideFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Square")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSquareFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Power")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetPowerFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "SquareRoot")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSquareRootFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Negate")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetNegateFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "ForceNegate")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetForceNegateFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Absolute")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetAbsoluteFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "RoundToNearestWholeNumber")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetRoundToNearestWholeNumberFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Successor")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetSuccessorFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Predecessor")
     {
         return GeneticFaraday.GEP.Functions.Functions.Arithmetic.GetPredecessorFunctions(allWriteableRegistryIdentifiers: allWriteableRegistryIdentifiers,
             allRegistryIdentifiers: allRegistryIdentifiers,
             codonConverters: codonConverters, weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else if (identifier == "Constants")
     {
         return GeneticFaraday.GEP.Functions.Functions.Constants.GetConstantsFunctions(weightInGeneticCode: functionBaseIdentifier.WeightInGeneticCode);
     }
     else
     {
         throw new ValueNotYetSupported(identifier, typeof(IFunctionBaseIdentifier));
     }
 }
 public FunctionWeightPresenter(IFunctionBaseIdentifier functionBaseIdentifier) 
     : base(functionBaseIdentifier)
 {
 }
 public void Delete(IFunctionBaseIdentifier model, IRepositoryArgs args)
 {
     throw new NotImplementedException();
 }
 public void RemoveFromSelectedFunctions(IFunctionBaseIdentifier function)
 {
     this.selected_functions_list_box.Items.Remove(function);
 }
 public void RemoveFromAvailableFunctions(IFunctionBaseIdentifier function)
 {
     this.available_functions_list_box.Items.Remove(function);
 }
 public void AddToSelectedFunctions(IFunctionBaseIdentifier function)
 {
     this.selected_functions_list_box.Items.Add(function);
 }
 public void AddToAvailableFunctions(IFunctionBaseIdentifier function)
 {
     this.available_functions_list_box.Items.Add(function);
 }