package xl.gui; import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import xl.controller.SlotLabelController; import java.util.Observer; import java.util.Observable; import xl.model.XLModel; public class SlotLabel extends ColoredLabel implements Observer { private String address; public SlotLabel(SlotLabelController slotLabelController, int row, char column) { super(" ", Color.WHITE, RIGHT); this.address = "" + column + row; // MouseListener for mouse clicks addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { slotLabelController.handleSlotClick(SlotLabel.this); } }); } public String getAddress() { return address; } public void update(Observable o, Object arg) { if (o instanceof XLModel) { XLModel xlModel = (XLModel) o; if (xlModel.containsKey(address)) { String tempCurrentAdress = xlModel.getAddressContent(address); xlModel.setCurrentAddress(address); String content = xlModel.getAddressValue(address); setText(content); xlModel.setCurrentAddress(tempCurrentAdress); } else { setText(""); } } } }