Add a PointEngine to retrieve points.

This commit is contained in:
2026-02-27 14:26:11 +01:00
parent 0908275eba
commit b7078f4e5d
3 changed files with 31 additions and 4 deletions

View File

@@ -10,12 +10,14 @@ import java.util.HashSet;
import java.util.Set;
public class CalendarPanel extends JPanel {
private PointEngine pointEngine;
private YearMonth currentMonth;
private final int cellHeight = 60;
private final int cellWidth = 80;
private final Set<LocalDate> selectedDates = new HashSet<>();
public CalendarPanel() {
public CalendarPanel(PointEngine pointEngine) {
this.pointEngine = pointEngine;
this.currentMonth = YearMonth.now();
setPreferredSize(new Dimension(7 * cellWidth, 8 * cellHeight));
setBackground(Color.WHITE);
@@ -77,7 +79,13 @@ public class CalendarPanel extends JPanel {
}
public double getTotalPoints() {
return selectedDates.size() * 1.0;
double totalPoints = 0.0;
for (LocalDate date : selectedDates) {
totalPoints += pointEngine.getPointsOfDay(date);
}
return totalPoints;
}
private LocalDate getDateAtPoint(int x, int y) {
@@ -168,7 +176,7 @@ public class CalendarPanel extends JPanel {
int textY = y + (cellHeight - fm.getHeight()) / 2 + fm.getAscent() - 8;
g.drawString(dayStr, textX, textY);
String pointsStr = "(1.0)";
String pointsStr = "(" + pointEngine.getPointsOfDay(cellDate) + ")";
Font smallFont = new Font("Arial", Font.PLAIN, 10);
FontMetrics smallFm = g.getFontMetrics(smallFont);
g.setFont(smallFont);

View File

@@ -0,0 +1,17 @@
package net.themusicinnoise.vaccalc;
import java.time.LocalDate;
public class PointEngine {
private double defaultPoints;
public PointEngine() {
defaultPoints = 1.0;
}
public void setDefaultPoints(float defaultPoints) { this.defaultPoints = defaultPoints; }
public double getPointsOfDay(LocalDate date) {
return defaultPoints;
}
}

View File

@@ -9,6 +9,7 @@ public class VacCalc extends JFrame {
private CalendarPanel calendarPanel;
private JLabel monthLabel;
private JLabel pointsLabel;
private PointEngine pointEngine;
public VacCalc() {
setTitle("VacCalc");
@@ -29,7 +30,8 @@ public class VacCalc extends JFrame {
menuBar.add(appMenu);
setJMenuBar(menuBar);
calendarPanel = new CalendarPanel();
pointEngine = new PointEngine();
calendarPanel = new CalendarPanel(pointEngine);
JPanel headerPanel = createHeaderPanel();
JPanel footerPanel = createFooterPanel();