Program: 39133
Project: 39133
Buggy source:
/** 
 * Default Constructor
 * @throws IllegalAccessException 
 */
public InteractiveEvolutionTask() throws IllegalAccessException {
  inputMultipliers=new double[numCPPNInputs()];
  selectedCPPNs=new LinkedList<Integer>();
  MMNEAT.registerFitnessFunction("String_Node_Str");
  if (Parameters.parameters.integerParameter("String_Node_Str") % InteractiveEvolutionTask.NUM_COLUMNS != 0) {
    Parameters.parameters.setInteger("String_Node_Str",InteractiveEvolutionTask.NUM_COLUMNS * ((Parameters.parameters.integerParameter("String_Node_Str") / InteractiveEvolutionTask.NUM_COLUMNS) + 1));
    System.out.println("String_Node_Str" + Parameters.parameters.integerParameter("String_Node_Str"));
  }
  numButtonOptions=Parameters.parameters.integerParameter("String_Node_Str");
  numRows=numButtonOptions / NUM_COLUMNS;
  picSize=Parameters.parameters.integerParameter("String_Node_Str");
  chosen=new boolean[numButtonOptions];
  showNetwork=false;
  waitingForUser=false;
  activation=new boolean[Math.abs(SQUARE_WAVE_CHECKBOX_INDEX) + 1];
  Arrays.fill(activation,true);
  if (MMNEAT.browseLineage) {
    return;
  }
  frame=new JFrame(getWindowTitle());
  panels=new ArrayList<JPanel>();
  buttons=new ArrayList<JButton>();
  frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
  picSize=Math.min(picSize,frame.getWidth() / NUM_COLUMNS);
  frame.setLocation(300,100);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setLayout(new GridLayout(numRows + 1,0));
  frame.setVisible(true);
  topper=new JPanel();
  top=new JPanel();
  JPanel bottom=new JPanel();
  ImageIcon reset=new ImageIcon("String_Node_Str");
  Image reset2=reset.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon save=new ImageIcon("String_Node_Str");
  Image save2=save.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon evolve=new ImageIcon("String_Node_Str");
  Image evolve2=evolve.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon network=new ImageIcon("String_Node_Str");
  Image network2=network.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon undo=new ImageIcon("String_Node_Str");
  Image undo2=undo.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  JButton resetButton=new JButton(new ImageIcon(reset2));
  JButton saveButton=new JButton(new ImageIcon(save2));
  JButton evolveButton=new JButton(new ImageIcon(evolve2));
  JButton networkButton=new JButton(new ImageIcon(network2));
  JButton undoButton=new JButton(new ImageIcon(undo2));
  resetButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  saveButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  evolveButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  networkButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  undoButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  resetButton.setText("String_Node_Str");
  saveButton.setText("String_Node_Str");
  evolveButton.setText("String_Node_Str");
  networkButton.setText("String_Node_Str");
  undoButton.setText("String_Node_Str");
  JCheckBox sigmoid=new JCheckBox("String_Node_Str",CommonConstants.includeSigmoidFunction);
  activation[Math.abs(SIGMOID_CHECKBOX_INDEX)]=CommonConstants.includeSigmoidFunction;
  JCheckBox tanh=new JCheckBox("String_Node_Str",CommonConstants.includeTanhFunction);
  activation[Math.abs(TANH_CHECKBOX_INDEX)]=CommonConstants.includeTanhFunction;
  JCheckBox id=new JCheckBox("String_Node_Str",CommonConstants.includeIdFunction);
  activation[Math.abs(ID_CHECKBOX_INDEX)]=CommonConstants.includeIdFunction;
  JCheckBox fullApprox=new JCheckBox("String_Node_Str",CommonConstants.includeFullApproxFunction);
  activation[Math.abs(FULLAPPROX_CHECKBOX_INDEX)]=CommonConstants.includeFullApproxFunction;
  JCheckBox approx=new JCheckBox("String_Node_Str",CommonConstants.includeApproxFunction);
  activation[Math.abs(APPROX_CHECKBOX_INDEX)]=CommonConstants.includeApproxFunction;
  JCheckBox gaussian=new JCheckBox("String_Node_Str",CommonConstants.includeGaussFunction);
  activation[Math.abs(GAUSSIAN_CHECKBOX_INDEX)]=CommonConstants.includeGaussFunction;
  JCheckBox sine=new JCheckBox("String_Node_Str",CommonConstants.includeSineFunction);
  activation[Math.abs(SINE_CHECKBOX_INDEX)]=CommonConstants.includeSineFunction;
  JCheckBox sawtooth=new JCheckBox("String_Node_Str",CommonConstants.includeSawtoothFunction);
  activation[Math.abs(SAWTOOTH_CHECKBOX_INDEX)]=CommonConstants.includeSawtoothFunction;
  JCheckBox absVal=new JCheckBox("String_Node_Str",CommonConstants.includeAbsValFunction);
  activation[Math.abs(ABSVAL_CHECKBOX_INDEX)]=CommonConstants.includeAbsValFunction;
  JCheckBox halfLinear=new JCheckBox("String_Node_Str",CommonConstants.includeHalfLinearPiecewiseFunction);
  activation[Math.abs(HALF_LINEAR_CHECKBOX_INDEX)]=CommonConstants.includeHalfLinearPiecewiseFunction;
  JCheckBox stretchTanh=new JCheckBox("String_Node_Str",CommonConstants.includeStretchedTanhFunction);
  activation[Math.abs(STRETCHTANH_CHECKBOX_INDEX)]=CommonConstants.includeStretchedTanhFunction;
  JCheckBox ReLU=new JCheckBox("String_Node_Str",CommonConstants.includeReLUFunction);
  activation[Math.abs(RELU_CHECKBOX_INDEX)]=CommonConstants.includeReLUFunction;
  JCheckBox Softplus=new JCheckBox("String_Node_Str",CommonConstants.includeSoftplusFunction);
  activation[Math.abs(SOFTPLUS_CHECKBOX_INDEX)]=CommonConstants.includeSoftplusFunction;
  JCheckBox LeakyReLU=new JCheckBox("String_Node_Str",CommonConstants.includeLeakyReLUFunction);
  activation[Math.abs(LEAKY_RELU_CHECKBOX_INDEX)]=CommonConstants.includeLeakyReLUFunction;
  JCheckBox fullSawtooth=new JCheckBox("String_Node_Str",CommonConstants.includeFullSawtoothFunction);
  activation[Math.abs(FULL_SAWTOOTH_CHECKBOX_INDEX)]=CommonConstants.includeFullSawtoothFunction;
  JCheckBox triangleWave=new JCheckBox("String_Node_Str",CommonConstants.includeTriangleWaveFunction);
  activation[Math.abs(TRIANGLE_WAVE_CHECKBOX_INDEX)]=CommonConstants.includeTriangleWaveFunction;
  JCheckBox squareWave=new JCheckBox("String_Node_Str",CommonConstants.includeSquareWaveFunction);
  activation[Math.abs(SQUARE_WAVE_CHECKBOX_INDEX)]=CommonConstants.includeSquareWaveFunction;
  JSlider mutationsPerGeneration=new JSlider(JSlider.HORIZONTAL,MPG_MIN,MPG_MAX,MPG_DEFAULT);
  Hashtable<Integer,JLabel> labels=new Hashtable<>();
  evolveButton.setName("String_Node_Str" + EVOLVE_BUTTON_INDEX);
  evolveButton.setToolTipText("String_Node_Str");
  saveButton.setName("String_Node_Str" + SAVE_BUTTON_INDEX);
  saveButton.setToolTipText("String_Node_Str");
  resetButton.setName("String_Node_Str" + RESET_BUTTON_INDEX);
  resetButton.setToolTipText("String_Node_Str");
  networkButton.setName("String_Node_Str" + NETWORK_BUTTON_INDEX);
  networkButton.setToolTipText("String_Node_Str");
  undoButton.setName("String_Node_Str" + UNDO_BUTTON_INDEX);
  undoButton.setToolTipText("String_Node_Str");
  sigmoid.setName("String_Node_Str" + SIGMOID_CHECKBOX_INDEX);
  tanh.setName("String_Node_Str" + TANH_CHECKBOX_INDEX);
  absVal.setName("String_Node_Str" + ABSVAL_CHECKBOX_INDEX);
  id.setName("String_Node_Str" + ID_CHECKBOX_INDEX);
  gaussian.setName("String_Node_Str" + GAUSSIAN_CHECKBOX_INDEX);
  fullApprox.setName("String_Node_Str" + FULLAPPROX_CHECKBOX_INDEX);
  sine.setName("String_Node_Str" + SINE_CHECKBOX_INDEX);
  approx.setName("String_Node_Str" + APPROX_CHECKBOX_INDEX);
  sawtooth.setName("String_Node_Str" + SAWTOOTH_CHECKBOX_INDEX);
  halfLinear.setName("String_Node_Str" + HALF_LINEAR_CHECKBOX_INDEX);
  stretchTanh.setName("String_Node_Str" + STRETCHTANH_CHECKBOX_INDEX);
  ReLU.setName("String_Node_Str" + RELU_CHECKBOX_INDEX);
  Softplus.setName("String_Node_Str" + SOFTPLUS_CHECKBOX_INDEX);
  LeakyReLU.setName("String_Node_Str" + LEAKY_RELU_CHECKBOX_INDEX);
  fullSawtooth.setName("String_Node_Str" + FULL_SAWTOOTH_CHECKBOX_INDEX);
  triangleWave.setName("String_Node_Str" + TRIANGLE_WAVE_CHECKBOX_INDEX);
  squareWave.setName("String_Node_Str" + SQUARE_WAVE_CHECKBOX_INDEX);
  mutationsPerGeneration.setMinorTickSpacing(1);
  mutationsPerGeneration.setPaintTicks(true);
  labels.put(0,new JLabel("String_Node_Str"));
  labels.put(10,new JLabel("String_Node_Str"));
  mutationsPerGeneration.setLabelTable(labels);
  mutationsPerGeneration.setPaintLabels(true);
  mutationsPerGeneration.setPreferredSize(new Dimension(200,40));
  resetButton.addActionListener(this);
  saveButton.addActionListener(this);
  evolveButton.addActionListener(this);
  networkButton.addActionListener(this);
  undoButton.addActionListener(this);
  sigmoid.addActionListener(this);
  gaussian.addActionListener(this);
  sine.addActionListener(this);
  sawtooth.addActionListener(this);
  absVal.addActionListener(this);
  halfLinear.addActionListener(this);
  tanh.addActionListener(this);
  id.addActionListener(this);
  fullApprox.addActionListener(this);
  approx.addActionListener(this);
  stretchTanh.addActionListener(this);
  ReLU.addActionListener(this);
  Softplus.addActionListener(this);
  LeakyReLU.addActionListener(this);
  fullSawtooth.addActionListener(this);
  triangleWave.addActionListener(this);
  squareWave.addActionListener(this);
  mutationsPerGeneration.addChangeListener(this);
  sigmoid.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SIGMOID));
  absVal.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_ABSVAL));
  approx.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_APPROX));
  fullApprox.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_FULLAPPROX));
  gaussian.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_GAUSS));
  halfLinear.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_HLPIECEWISE));
  id.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_ID));
  sawtooth.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SAWTOOTH));
  sine.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SINE));
  tanh.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_TANH));
  stretchTanh.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_STRETCHED_TANH));
  ReLU.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_RE_LU));
  Softplus.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SOFTPLUS));
  LeakyReLU.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_LEAKY_RE_LU));
  fullSawtooth.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_FULLSAWTOOTH));
  triangleWave.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_TRIANGLEWAVE));
  squareWave.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SQUAREWAVE));
  if (!simplifiedInteractiveInterface) {
    top.add(resetButton);
  }
  top.add(evolveButton);
  top.add(saveButton);
  if (!simplifiedInteractiveInterface) {
    top.add(networkButton);
    top.add(undoButton);
  }
  top.add(mutationsPerGeneration);
  if (!simplifiedInteractiveInterface) {
    bottom.add(halfLinear);
    bottom.add(absVal);
    bottom.add(sawtooth);
    bottom.add(sine);
    bottom.add(gaussian);
    bottom.add(sigmoid);
    bottom.add(tanh);
    bottom.add(id);
    bottom.add(fullApprox);
    bottom.add(approx);
    bottom.add(stretchTanh);
    bottom.add(ReLU);
    bottom.add(Softplus);
    bottom.add(LeakyReLU);
    bottom.add(fullSawtooth);
    bottom.add(triangleWave);
    bottom.add(squareWave);
  }
  topper.add(top);
  topper.add(bottom);
  panels.add(topper);
  addButtonPanels();
  for (  JPanel panel : panels)   frame.add(panel);
  int x=0;
  addButtonsToPanel(x++);
  inputCheckBoxes();
}

Fixed version (ground truth):
/** 
 * Default Constructor
 * @throws IllegalAccessException 
 */
public InteractiveEvolutionTask() throws IllegalAccessException {
  inputMultipliers=new double[numCPPNInputs()];
  selectedCPPNs=new LinkedList<Integer>();
  MMNEAT.registerFitnessFunction("String_Node_Str");
  if (Parameters.parameters.integerParameter("String_Node_Str") % InteractiveEvolutionTask.NUM_COLUMNS != 0) {
    Parameters.parameters.setInteger("String_Node_Str",InteractiveEvolutionTask.NUM_COLUMNS * ((Parameters.parameters.integerParameter("String_Node_Str") / InteractiveEvolutionTask.NUM_COLUMNS) + 1));
    System.out.println("String_Node_Str" + Parameters.parameters.integerParameter("String_Node_Str"));
  }
  numButtonOptions=Parameters.parameters.integerParameter("String_Node_Str");
  numRows=numButtonOptions / NUM_COLUMNS;
  picSize=Parameters.parameters.integerParameter("String_Node_Str");
  chosen=new boolean[numButtonOptions];
  showNetwork=false;
  waitingForUser=false;
  activation=new boolean[Math.abs(SQUARE_WAVE_CHECKBOX_INDEX) + 1];
  Arrays.fill(activation,true);
  if (MMNEAT.browseLineage) {
    return;
  }
  frame=new JFrame(getWindowTitle());
  panels=new ArrayList<JPanel>();
  buttons=new ArrayList<JButton>();
  frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
  picSize=Math.min(picSize,frame.getWidth() / NUM_COLUMNS);
  frame.setLocation(300,100);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setLayout(new GridLayout(numRows + 1,0));
  frame.setVisible(true);
  topper=new JPanel();
  top=new JPanel();
  JPanel bottom=new JPanel();
  ImageIcon reset=new ImageIcon("String_Node_Str");
  Image reset2=reset.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon save=new ImageIcon("String_Node_Str");
  Image save2=save.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon evolve=new ImageIcon("String_Node_Str");
  Image evolve2=evolve.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon network=new ImageIcon("String_Node_Str");
  Image network2=network.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  ImageIcon undo=new ImageIcon("String_Node_Str");
  Image undo2=undo.getImage().getScaledInstance(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT,1);
  JButton resetButton=new JButton(new ImageIcon(reset2));
  JButton saveButton=new JButton(new ImageIcon(save2));
  JButton evolveButton=new JButton(new ImageIcon(evolve2));
  JButton networkButton=new JButton(new ImageIcon(network2));
  JButton undoButton=new JButton(new ImageIcon(undo2));
  resetButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  saveButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  evolveButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  networkButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  undoButton.setPreferredSize(new Dimension(ACTION_BUTTON_WIDTH,ACTION_BUTTON_HEIGHT));
  resetButton.setText("String_Node_Str");
  saveButton.setText("String_Node_Str");
  evolveButton.setText("String_Node_Str");
  networkButton.setText("String_Node_Str");
  undoButton.setText("String_Node_Str");
  JCheckBox sigmoid=new JCheckBox("String_Node_Str",CommonConstants.includeSigmoidFunction);
  activation[Math.abs(SIGMOID_CHECKBOX_INDEX)]=CommonConstants.includeSigmoidFunction;
  JCheckBox tanh=new JCheckBox("String_Node_Str",CommonConstants.includeTanhFunction);
  activation[Math.abs(TANH_CHECKBOX_INDEX)]=CommonConstants.includeTanhFunction;
  JCheckBox id=new JCheckBox("String_Node_Str",CommonConstants.includeIdFunction);
  activation[Math.abs(ID_CHECKBOX_INDEX)]=CommonConstants.includeIdFunction;
  JCheckBox fullApprox=new JCheckBox("String_Node_Str",CommonConstants.includeFullApproxFunction);
  activation[Math.abs(FULLAPPROX_CHECKBOX_INDEX)]=CommonConstants.includeFullApproxFunction;
  JCheckBox approx=new JCheckBox("String_Node_Str",CommonConstants.includeApproxFunction);
  activation[Math.abs(APPROX_CHECKBOX_INDEX)]=CommonConstants.includeApproxFunction;
  JCheckBox gaussian=new JCheckBox("String_Node_Str",CommonConstants.includeGaussFunction);
  activation[Math.abs(GAUSSIAN_CHECKBOX_INDEX)]=CommonConstants.includeGaussFunction;
  JCheckBox sine=new JCheckBox("String_Node_Str",CommonConstants.includeSineFunction);
  activation[Math.abs(SINE_CHECKBOX_INDEX)]=CommonConstants.includeSineFunction;
  JCheckBox sawtooth=new JCheckBox("String_Node_Str",CommonConstants.includeSawtoothFunction);
  activation[Math.abs(SAWTOOTH_CHECKBOX_INDEX)]=CommonConstants.includeSawtoothFunction;
  JCheckBox absVal=new JCheckBox("String_Node_Str",CommonConstants.includeAbsValFunction);
  activation[Math.abs(ABSVAL_CHECKBOX_INDEX)]=CommonConstants.includeAbsValFunction;
  JCheckBox halfLinear=new JCheckBox("String_Node_Str",CommonConstants.includeHalfLinearPiecewiseFunction);
  activation[Math.abs(HALF_LINEAR_CHECKBOX_INDEX)]=CommonConstants.includeHalfLinearPiecewiseFunction;
  JCheckBox stretchTanh=new JCheckBox("String_Node_Str",CommonConstants.includeStretchedTanhFunction);
  activation[Math.abs(STRETCHTANH_CHECKBOX_INDEX)]=CommonConstants.includeStretchedTanhFunction;
  JCheckBox ReLU=new JCheckBox("String_Node_Str",CommonConstants.includeReLUFunction);
  activation[Math.abs(RELU_CHECKBOX_INDEX)]=CommonConstants.includeReLUFunction;
  JCheckBox Softplus=new JCheckBox("String_Node_Str",CommonConstants.includeSoftplusFunction);
  activation[Math.abs(SOFTPLUS_CHECKBOX_INDEX)]=CommonConstants.includeSoftplusFunction;
  JCheckBox LeakyReLU=new JCheckBox("String_Node_Str",CommonConstants.includeLeakyReLUFunction);
  activation[Math.abs(LEAKY_RELU_CHECKBOX_INDEX)]=CommonConstants.includeLeakyReLUFunction;
  JCheckBox fullSawtooth=new JCheckBox("String_Node_Str",CommonConstants.includeFullSawtoothFunction);
  activation[Math.abs(FULL_SAWTOOTH_CHECKBOX_INDEX)]=CommonConstants.includeFullSawtoothFunction;
  JCheckBox triangleWave=new JCheckBox("String_Node_Str",CommonConstants.includeTriangleWaveFunction);
  activation[Math.abs(TRIANGLE_WAVE_CHECKBOX_INDEX)]=CommonConstants.includeTriangleWaveFunction;
  JCheckBox squareWave=new JCheckBox("String_Node_Str",CommonConstants.includeSquareWaveFunction);
  activation[Math.abs(SQUARE_WAVE_CHECKBOX_INDEX)]=CommonConstants.includeSquareWaveFunction;
  JSlider mutationsPerGeneration=new JSlider(JSlider.HORIZONTAL,MPG_MIN,MPG_MAX,MPG_DEFAULT);
  Hashtable<Integer,JLabel> labels=new Hashtable<>();
  evolveButton.setName("String_Node_Str" + EVOLVE_BUTTON_INDEX);
  evolveButton.setToolTipText("String_Node_Str");
  saveButton.setName("String_Node_Str" + SAVE_BUTTON_INDEX);
  saveButton.setToolTipText("String_Node_Str");
  resetButton.setName("String_Node_Str" + RESET_BUTTON_INDEX);
  resetButton.setToolTipText("String_Node_Str");
  networkButton.setName("String_Node_Str" + NETWORK_BUTTON_INDEX);
  networkButton.setToolTipText("String_Node_Str");
  undoButton.setName("String_Node_Str" + UNDO_BUTTON_INDEX);
  undoButton.setToolTipText("String_Node_Str");
  sigmoid.setName("String_Node_Str" + SIGMOID_CHECKBOX_INDEX);
  tanh.setName("String_Node_Str" + TANH_CHECKBOX_INDEX);
  absVal.setName("String_Node_Str" + ABSVAL_CHECKBOX_INDEX);
  id.setName("String_Node_Str" + ID_CHECKBOX_INDEX);
  gaussian.setName("String_Node_Str" + GAUSSIAN_CHECKBOX_INDEX);
  fullApprox.setName("String_Node_Str" + FULLAPPROX_CHECKBOX_INDEX);
  sine.setName("String_Node_Str" + SINE_CHECKBOX_INDEX);
  approx.setName("String_Node_Str" + APPROX_CHECKBOX_INDEX);
  sawtooth.setName("String_Node_Str" + SAWTOOTH_CHECKBOX_INDEX);
  halfLinear.setName("String_Node_Str" + HALF_LINEAR_CHECKBOX_INDEX);
  stretchTanh.setName("String_Node_Str" + STRETCHTANH_CHECKBOX_INDEX);
  ReLU.setName("String_Node_Str" + RELU_CHECKBOX_INDEX);
  Softplus.setName("String_Node_Str" + SOFTPLUS_CHECKBOX_INDEX);
  LeakyReLU.setName("String_Node_Str" + LEAKY_RELU_CHECKBOX_INDEX);
  fullSawtooth.setName("String_Node_Str" + FULL_SAWTOOTH_CHECKBOX_INDEX);
  triangleWave.setName("String_Node_Str" + TRIANGLE_WAVE_CHECKBOX_INDEX);
  squareWave.setName("String_Node_Str" + SQUARE_WAVE_CHECKBOX_INDEX);
  mutationsPerGeneration.setMinorTickSpacing(1);
  mutationsPerGeneration.setPaintTicks(true);
  labels.put(0,new JLabel("String_Node_Str"));
  labels.put(10,new JLabel("String_Node_Str"));
  mutationsPerGeneration.setLabelTable(labels);
  mutationsPerGeneration.setPaintLabels(true);
  mutationsPerGeneration.setPreferredSize(new Dimension(200,40));
  resetButton.addActionListener(this);
  saveButton.addActionListener(this);
  evolveButton.addActionListener(this);
  networkButton.addActionListener(this);
  undoButton.addActionListener(this);
  sigmoid.addActionListener(this);
  gaussian.addActionListener(this);
  sine.addActionListener(this);
  sawtooth.addActionListener(this);
  absVal.addActionListener(this);
  halfLinear.addActionListener(this);
  tanh.addActionListener(this);
  id.addActionListener(this);
  fullApprox.addActionListener(this);
  approx.addActionListener(this);
  stretchTanh.addActionListener(this);
  ReLU.addActionListener(this);
  Softplus.addActionListener(this);
  LeakyReLU.addActionListener(this);
  fullSawtooth.addActionListener(this);
  triangleWave.addActionListener(this);
  squareWave.addActionListener(this);
  mutationsPerGeneration.addChangeListener(this);
  sigmoid.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SIGMOID));
  absVal.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_ABSVAL));
  approx.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_APPROX));
  fullApprox.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_FULLAPPROX));
  gaussian.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_GAUSS));
  halfLinear.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_HLPIECEWISE));
  id.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_ID));
  sawtooth.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SAWTOOTH));
  sine.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SINE));
  tanh.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_TANH));
  stretchTanh.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_STRETCHED_TANH));
  ReLU.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_RE_LU));
  Softplus.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SOFTPLUS));
  LeakyReLU.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_LEAKY_RE_LU));
  fullSawtooth.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_FULLSAWTOOTH));
  triangleWave.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_TRIANGLEWAVE));
  squareWave.setForeground(CombinatoricUtilities.colorFromInt(ActivationFunctions.FTYPE_SQUAREWAVE));
  if (!Parameters.parameters.booleanParameter("String_Node_Str")) {
    top.add(resetButton);
  }
  top.add(evolveButton);
  top.add(saveButton);
  if (!Parameters.parameters.booleanParameter("String_Node_Str")) {
    top.add(networkButton);
    top.add(undoButton);
  }
  top.add(mutationsPerGeneration);
  if (!Parameters.parameters.booleanParameter("String_Node_Str")) {
    bottom.add(halfLinear);
    bottom.add(absVal);
    bottom.add(sawtooth);
    bottom.add(sine);
    bottom.add(gaussian);
    bottom.add(sigmoid);
    bottom.add(tanh);
    bottom.add(id);
    bottom.add(fullApprox);
    bottom.add(approx);
    bottom.add(stretchTanh);
    bottom.add(ReLU);
    bottom.add(Softplus);
    bottom.add(LeakyReLU);
    bottom.add(fullSawtooth);
    bottom.add(triangleWave);
    bottom.add(squareWave);
  }
  topper.add(top);
  topper.add(bottom);
  panels.add(topper);
  addButtonPanels();
  for (  JPanel panel : panels)   frame.add(panel);
  int x=0;
  addButtonsToPanel(x++);
  inputCheckBoxes();
}