/* No encapsulo este metodo en la clase Function porque romperia con la abstracción de la clase y todas las subclases de esta heredarian este método. */
        private Function SelectFunction(string functionName, double a, double b, double c)
        {
            if (CosXFunction.GetFormula().Equals(functionName))
            {
                return(new CosXFunction(a, b));
            }
            else if (SenXFunction.GetFormula().Equals(functionName))
            {
                return(new SenXFunction(a, b));
            }
            else if (ExponentialFunction.GetFormula().Equals(functionName))
            {
                return(new ExponentialFunction(a, b));
            }
            else if (FirstGradeFunction.GetFormula().Equals(functionName))
            {
                return(new FirstGradeFunction(a, b));
            }
            else if (SecondGradeFunction.GetFormula().Equals(functionName))
            {
                return(new SecondGradeFunction(a, b, c));
            }
            else if (FractionalFunction.GetFormula().Equals(functionName))
            {
                return(new FractionalFunction(a, b));
            }

            return(null);
        }
        /* No encapsulo este metodo en la clase Function porque romperia con la abstracción de la clase y todas las subclases de esta heredarian este método. */
        private String[] InitializeFunctionComboBox()
        {
            String[] functionList =
            {
                CosXFunction.GetFormula(),
                SenXFunction.GetFormula(),
                ExponentialFunction.GetFormula(),
                FirstGradeFunction.GetFormula(),
                SecondGradeFunction.GetFormula(),
                FractionalFunction.GetFormula()
            };

            return(functionList);
        }
        private void DeactivateParameters()
        {
            ParamAModTextBox.Clear();
            ParamBModTextBox.Clear();
            ParamCModTextBox.Clear();

            ConfirmButton.IsEnabled = false;
            if (SecondGradeFunction.GetFormula().Equals((String)FunctionModComboBox.SelectedItem))
            {
                ParamCModTextBox.Visibility = Visibility.Visible;
                ParamCLabel.Visibility      = Visibility.Visible;
                ParamCModTextBox.Clear();
            }
            else
            {
                ParamCModTextBox.Visibility = Visibility.Hidden;
                ParamCLabel.Visibility      = Visibility.Hidden;
                ParamCModTextBox.Clear();
            }
        }
 public void SetGraphicParameters(Graphic g)
 {
     NameModTextBox.Text = g.Name;
     FunctionModComboBox.SelectedItem = g.Function.Formula;
     ParamAModTextBox.Text            = Convert.ToString(g.ParamA);
     ParamBModTextBox.Text            = Convert.ToString(g.ParamB);
     if (SecondGradeFunction.GetFormula().Equals(g.Function.Formula))
     {
         ParamCModTextBox.Visibility = Visibility.Visible;
         ParamCLabel.Visibility      = Visibility.Visible;
         ParamCModTextBox.Text       = Convert.ToString(g.ParamC);
     }
     else
     {
         ParamCModTextBox.Visibility = Visibility.Hidden;
         ParamCLabel.Visibility      = Visibility.Hidden;
         ParamCModTextBox.Clear();
     }
     ColorModColorPicker.SelectedColor = g.GraphicColor;
 }
        private void FunctionComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            int actualSelectedIndex = FunctionComboBox.SelectedIndex;

            if (lastSelectedIndex != actualSelectedIndex && lastSelectedIndex != -1)
            {
                DeactivateGraphicDephinitionFields();
            }

            if (SecondGradeFunction.GetFormula().Equals((String)FunctionComboBox.SelectedItem))
            {
                ParamCWrapPanel.Visibility = Visibility.Visible;
            }
            else
            {
                ParamCWrapPanel.Visibility = Visibility.Hidden;
            }

            if (actualSelectedIndex != -1)
            {
                lastSelectedIndex = actualSelectedIndex;
                CalculateProgressBarValue(20);
            }
        }