Package visualization

Source Code of visualization.ControlWidget

package visualization;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;

import odor.Odor;


/**
* Controls visualization options during runtime
* @author pedro
*
*/
public class ControlWidget extends JFrame implements KeyListener
{
  private static final long serialVersionUID = -3693537596454819343L;
  private final RunsSimulation runner;
  private JButton startButton;
  private JButton newOdorButton;
  private JComboBox odorComboBox; //TODO ComboBox
  public final boolean SINGLE_ODOR;
 
  /**
   * Set default frame options
   */
  public void setFrameOptions()
  {
    this.setSize(new Dimension(225,130));
    this.setResizable(false);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setAlwaysOnTop(true);
    this.setTitle(main.Main.PROGRAM_NAME);
    this.setLayout(new FlowLayout());
  }
 
  public Odor getSelectedOdor()
  {
    return (Odor) odorComboBox.getSelectedItem();
  }
 
  private void runSimulation()
  {
    this.runner.runSimulation(null);
  }
 
  private JNetwork getJNetwork()
  {
    return this.runner.getJNetwork();
  }
 
  private void setOdor(Odor i)
  {
    this.runner.setOdor(i);
  }
 
  public ControlWidget(RunsSimulation runner ,Odor[] battery)
  {
    this.setFrameOptions();
   
    this.runner = runner;
   
    startButton = new JButton("Start Simulation");
   
    odorComboBox = new JComboBox(battery); //TODO Fix display (toString method)
    odorComboBox.addKeyListener(this);
   
    //Add ActionListeners
    startButton.addActionListener(new ActionListener(){

      public void actionPerformed(ActionEvent arg0)
      {
        runSimulation();
      }
     
    });
   
    odorComboBox.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent arg0)
      {
        JComboBox source = (JComboBox)arg0.getSource();
        Odor odr = (Odor)source.getSelectedItem();
       
        if (getJNetwork() != null)
        {
          getJNetwork().setOdor(odr);
          getJNetwork().repaint();
        }
      }
    });
   
    this.add(startButton);
    this.add(odorComboBox);
   
    this.validate();
   
    this.SINGLE_ODOR = false;
  }
 
  public ControlWidget(RunsSimulation runner)
  {
    this.setFrameOptions();
    this.runner = runner;
   
    startButton = new JButton("Start Simulation");
   
    newOdorButton = new JButton("New Odor");
   
   
    //Add ActionListeners
    startButton.addActionListener(new ActionListener(){

      public void actionPerformed(ActionEvent arg0)
      {
        runSimulation();
      }
     
    });
   
    /*
    newOdorButton.addActionListener(new ActionListener(){

      public void actionPerformed(ActionEvent arg0)
      { 
        setOdor(new Odor(getJNetwork().getNumCols(), (int)main.Main.ODOR_INPUT_SUM));
      }

    });
    */
   
   
    this.add(startButton);
    this.add(newOdorButton);
   
    this.validate();
    this.SINGLE_ODOR = true;
  }

 
  public void keyPressed(KeyEvent arg0)
  {
    //DO NOTHING
    if (this.odorComboBox.getSelectedItem() != null)
    {
      if (arg0.getKeyCode() == KeyEvent.VK_ENTER)
      {
        this.startButton.doClick();
      }
    }
  }

 
  public void keyReleased(KeyEvent arg0)
  {
    //DO NOTHING
  }

 
  public void keyTyped(KeyEvent arg0)
  {
    if (this.odorComboBox.getSelectedItem() != null)
    {
      if (arg0.getKeyCode() == KeyEvent.VK_ENTER)
      {
        this.startButton.doClick();
      }
    }
  }
}
TOP

Related Classes of visualization.ControlWidget

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.