xl-project/app/src/main/java/xl/gui/SlotLabel.java
2024-06-03 19:32:41 +02:00

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("");
}
}
}
}