From 1af495ca5c6b92a40a66855679ab8cc8ad5ef6cd Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 16 Mar 2024 17:43:01 +0000 Subject: [PATCH] Added several improvements, changes and bug fixes --- .../swing/common/ActivitiesWindow.java | 6 +++++- .../timecalc/swing/common/ActivityPanel.java | 9 +++++++++ .../utils/timecalc/swing/common/DayPanel.java | 1 + .../timecalc/swing/common/MonthPanel.java | 19 ++++++++++++++++--- .../timecalc/swing/common/YearPanel.java | 5 ++++- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivitiesWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivitiesWindow.java index ef58fcf..bcdb0c2 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivitiesWindow.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivitiesWindow.java @@ -96,7 +96,11 @@ public class ActivitiesWindow extends TWindow { JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource(); int index = sourceTabbedPane.getSelectedIndex(); - years.get(sourceTabbedPane.getTitleAt(index)).getMonthPanel("1").getDayPanel("1").load(); + YearPanel yearPanel = + years.get(sourceTabbedPane.getTitleAt(index)); + MonthPanel monthPanel = yearPanel.getMonthPanel("1"); + monthPanel.load(); + monthPanel.getDayPanel("1").load(); } }; tp.addChangeListener(changeListener); diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivityPanel.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivityPanel.java index 258c116..63bec21 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivityPanel.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ActivityPanel.java @@ -14,6 +14,9 @@ import javax.swing.JTextField; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.StringSelection; import java.util.function.BiConsumer; /** @@ -60,6 +63,12 @@ public class ActivityPanel extends JPanel implements Comparable { } } }); + } else { + addMouseListener((MouseClickedListener) e -> { + Clipboard + clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + clipboard.setContents(new StringSelection(getText()), null); + }); } } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/DayPanel.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/DayPanel.java index 070f254..beaa08f 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/DayPanel.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/DayPanel.java @@ -68,6 +68,7 @@ public class DayPanel extends JPanel { //nothing to do return; } + System.out.println("Loaded: " + year + month + day); if (this.loadButton.isVisible()) { this.loadButton.setVisible(false); this.loadButton = null; diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MonthPanel.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MonthPanel.java index cb4dfb1..a84dc10 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MonthPanel.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MonthPanel.java @@ -21,9 +21,12 @@ public class MonthPanel extends JPanel { private final Map days; private final TTabbedPane tp; - + private final ActivityRepositoryApi activityRepository; + private final Calendar cal; + private boolean loaded = false; public MonthPanel(String yearIn, String monthIn, ActivityRepositoryApi activityRepository) { super(); + this.activityRepository = activityRepository; this.year = yearIn; this.month = monthIn; @@ -49,17 +52,27 @@ public class MonthPanel extends JPanel { }; tp.addChangeListener(changeListener); - Calendar cal = Calendar.getInstance(); + this.cal = Calendar.getInstance(); cal.set(Calendar.YEAR, Integer.valueOf(year)); cal.set(Calendar.MONTH, Integer.valueOf(month) - 1); cal.set(Calendar.DAY_OF_MONTH, 1); + } + + public void load() { + if(loaded) { + //nothing to do + return; + } + System.out.println("Loaded: " + year + month); int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); for (int day = 1; day <= maxDay; day++) { String dayS = String.valueOf(day); - DayPanel dayPanel = new DayPanel(year, month, dayS, activityRepository); + DayPanel dayPanel = new DayPanel(year, month, dayS, + activityRepository); tp.add(dayS, dayPanel); days.put(dayS, dayPanel); } + loaded = true; } public void setSelectedDay(String day) { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/YearPanel.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/YearPanel.java index 0349418..3290522 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/YearPanel.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/YearPanel.java @@ -38,7 +38,10 @@ public class YearPanel extends JPanel { JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource(); int index = sourceTabbedPane.getSelectedIndex(); - months.get(sourceTabbedPane.getTitleAt(index)).getDayPanel("1").load(); + MonthPanel monthPanel = + months.get(sourceTabbedPane.getTitleAt(index)); + monthPanel.load(); + monthPanel.getDayPanel("1").load(); } }; tp.addChangeListener(changeListener);