import java.awt.Cursor;
import java.awt.Font;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
* @author Barnabas Sapan
*/
public class TagComponentController implements MouseListener{
private TagCloudModel model;
private TagCloudView view;
private Font oldFont;
private Cursor oldCursor;
public TagComponentController(){}
public TagComponentController(TagCloudModel model, TagCloudView view){
this.model = model;
this.view = view;
this.view.setMouseListener(this);
this.model.addObserver(this.view);
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
if(e.getSource() instanceof TagComponent){
TagComponent tag = (TagComponent)e.getSource();
tag.setFont(this.oldFont);
this.view.setCursor(this.oldCursor);
}
}
@Override
public void mouseEntered(MouseEvent e) {
if(e.getSource() instanceof TagComponent){
TagComponent tag = (TagComponent)e.getSource();
this.oldCursor = this.view.getCursor();
this.oldFont = tag.getFont();
tag.setFont(tag.getFont().deriveFont(Font.BOLD));
this.view.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
}
@Override
public void mouseClicked(MouseEvent e) {
if(e.getSource() instanceof TagComponent){
TagComponent tag = (TagComponent)e.getSource();
this.model.updateSearchPicturesfromTags(tag.getText());
}
}
}