package fr.mch.mdo.jms.client;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
/**
* This class represents view part.
*
* @author mathieu
*/
public class PrinterController
{
/**
*
*/
private static final long serialVersionUID = 1L;
private PrinterModel model;
private PrinterView view;
public PrinterController(PrinterModel model, PrinterView view) {
this.model = model;
this.view = view;
this.model.addPrinterObserver(new PrinterMessageObserver());
this.view.addReloadJmsButtonListener(new ReloadJmsButtonListener());
this.view.addReloadPrinterButtonListener(new ReloadPrinterButtonListener());
this.view.addPrintButtonListener(new PrintButtonListener());
this.view.addStopButtonListener(new StopButtonListener());
}
public void close() {
this.model.close();
}
/**
* This class is used to update View when Model is modified for the message field.
*
* @author mathieu
*
*/
class PrinterMessageObserver implements Observer
{
public void update(Observable observable, Object arg) {
view.getPrint().setEnabled(false);
view.setMessage(model.getMessage());
view.getPrint().setEnabled(true);
}
}
/**
* This class is used to perform reload JMS when user clicks on "Reload JMS connection" button in View part.
*
* @author mathieu
*
*/
class ReloadJmsButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
model.reloadJms();
}
}
/**
* This class is used to perform reload driver when user clicks on "Reload Printer Driver" button in View part.
*
* @author mathieu
*
*/
class ReloadPrinterButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
model.reloadPrinter();
}
}
/**
* This class is used to perform printing when user clicks on "Print" button in View part.
*
* @author mathieu
*
*/
class PrintButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
model.print();
}
}
/**
* This class is used to perform stop printing when user clicks on "Stop" button in View part.
*
* @author mathieu
*
*/
class StopButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
model.stop();
}
}
}