package org.biomart.configurator.controller;
import javax.swing.*;
import java.awt.event.*;
import org.biomart.configurator.model.Initializer;
import org.biomart.configurator.view.mainGUI;
public class Start {
//... The Controller needs to interact with both the Model and View.
private Initializer m_model;
private mainGUI m_view;
//========================================================== constructor
/** Constructor
* @param model
* @param view */
public Start(Initializer model, mainGUI view) {
m_model = model;
m_view = view;
//... Add listeners to the view.
view.addMultiplyListener(new MultiplyListener());
view.addClearListener(new ClearListener());
}
////////////////////////////////////////// inner class MultiplyListener
/** When a mulitplication is requested.
* 1. Get the user input number from the View.
* 2. Call the model to mulitply by this number.
* 3. Get the result from the Model.
* 4. Tell the View to display the result.
* If there was an error, tell the View to display it.
*/
class MultiplyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String userInput = "";
try {
userInput = m_view.getUserInput();
m_model.multiplyBy(userInput);
m_view.setTotal(m_model.getValue());
} catch (NumberFormatException nfex) {
m_view.showError("Bad input: '" + userInput + "'");
}
}
}//end inner class MultiplyListener
//////////////////////////////////////////// inner class ClearListener
/** 1. Reset model.
* 2. Reset View.
*/
class ClearListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_model.reset();
m_view.reset();
}
}// end inner class ClearListener
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Initializer model = new Initializer();
mainGUI view = new mainGUI(model);
Start controller = new Start(model, view);
//view.setVisible(true);
}
}