45 lines
No EOL
1.4 KiB
Java
45 lines
No EOL
1.4 KiB
Java
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("");
|
|
}
|
|
}
|
|
}
|
|
} |