package se.cth.hedgehogphoto.note.controller; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import se.cth.hedgehogphoto.note.PaintUtils; import se.cth.hedgehogphoto.note.model.NoteModel; import se.cth.hedgehogphoto.note.view.NoteView; /** * * @author David Grankvist */ public class NoteController { private NoteModel model; private NoteView view; public NoteController(NoteModel m, NoteView v){ this.model = m; this.view = v; this.view.setSliderListener(new ChangeListener(){ @Override public void stateChanged(ChangeEvent arg0) { if(arg0.getSource() instanceof JSlider){ JSlider slider = (JSlider)arg0.getSource(); model.setCircleDiam(slider.getValue()); } } }); this.view.setColorChooserListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { if(arg0.getSource() instanceof JButton){ JButton button = (JButton) arg0.getSource(); model.setColor(button.getBackground()); } } }); this.view.setDrawAreaListeners(new MouseAdapter(){ @Override public void mousePressed(MouseEvent me) { if(me.getSource() instanceof JPanel){ JPanel drawArea = (JPanel)me.getSource(); PaintUtils.paintCircle(drawArea.getGraphics(), me.getX(), me.getY(), model.getCircleDiam(), model.getColor()); } } }, new MouseAdapter(){ @Override public void mouseDragged(MouseEvent me){ if(me.getSource() instanceof JPanel){ JPanel drawArea = (JPanel)me.getSource(); PaintUtils.paintCircle(drawArea.getGraphics(), me.getX(), me.getY(), model.getCircleDiam(), model.getColor()); } } }); this.view.setEraseButtonListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { PaintUtils.erasePainting(view.getDrawArea()); } }); } }