From d0639b2009d374c400526ec6c306cfa74a13652f Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 18 May 2024 17:09:27 +0200 Subject: [PATCH] Added new features related to the pause III --- .../java/org/nanoboot/utils/timecalc/entity/Progress.java | 2 +- .../java/org/nanoboot/utils/timecalc/entity/WidgetType.java | 2 +- .../nanoboot/utils/timecalc/swing/common/WidgetMenu.java | 6 ++++++ .../nanoboot/utils/timecalc/swing/windows/MainWindow.java | 4 ++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/Progress.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/Progress.java index efb90c7..d234a2b 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/Progress.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/Progress.java @@ -13,7 +13,7 @@ import java.util.Date; * @since 21.03.2024 */ public class Progress { - private final double[] array = new double[7]; + private final double[] array = new double[9]; @Getter @Setter private int workDaysInMonth; diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/WidgetType.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/WidgetType.java index 26ab800..e92fbf4 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/WidgetType.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/entity/WidgetType.java @@ -7,7 +7,7 @@ import org.nanoboot.utils.timecalc.app.TimeCalcException; * @since 21.03.2024 */ public enum WidgetType { - MINUTE, HOUR, DAY, WEEK, MONTH, YEAR, LIFE, PRESENTATION; + MINUTE, HOUR, DAY, WEEK, MONTH, YEAR, LIFE, PRESENTATION, PAUSE; public int getIndex() { int i = 0; for(WidgetType wt:WidgetType.values()) { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WidgetMenu.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WidgetMenu.java index cc4f748..f864936 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WidgetMenu.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WidgetMenu.java @@ -26,6 +26,7 @@ public class WidgetMenu extends JPopupMenu { private final JMenuItem typeYearMenuItem; private final JMenuItem typeLifeMenuItem; private final JMenuItem typePresentationMenuItem; + private final JMenuItem typePauseMenuItem; private final Widget widget; private WidgetType selectedType; private Consumer refreshConsumer; @@ -51,6 +52,7 @@ public class WidgetMenu extends JPopupMenu { this.typeYearMenuItem = new JMenuItem(WidgetType.YEAR.name()); this.typeLifeMenuItem = new JMenuItem(WidgetType.LIFE.name()); this.typePresentationMenuItem = new JMenuItem(WidgetType.PRESENTATION.name()); + this.typePauseMenuItem = new JMenuItem(WidgetType.PAUSE.name()); typeMenuItem.add(typeMinuteMenuItem); typeMenuItem.add(typeHourMenuItem); typeMenuItem.add(typeDayMenuItem); @@ -59,6 +61,7 @@ public class WidgetMenu extends JPopupMenu { typeMenuItem.add(typeYearMenuItem); typeMenuItem.add(typeLifeMenuItem); typeMenuItem.add(typePresentationMenuItem); + typeMenuItem.add(typePauseMenuItem); BiConsumer typeActionCreator = (m,w) -> { m.addActionListener(e -> { @@ -78,6 +81,7 @@ public class WidgetMenu extends JPopupMenu { typeActionCreator.accept(typeYearMenuItem, WidgetType.YEAR); typeActionCreator.accept(typeLifeMenuItem, WidgetType.LIFE); typeActionCreator.accept(typePresentationMenuItem, WidgetType.PRESENTATION); + typeActionCreator.accept(typePauseMenuItem, WidgetType.PAUSE); //if(!aClass.getSimpleName().contains("Battery")) { add(typeMenuItem); @@ -98,6 +102,7 @@ public class WidgetMenu extends JPopupMenu { this.typeYearMenuItem.setText(WidgetType.YEAR.name()); this.typeLifeMenuItem.setText(WidgetType.LIFE.name()); this.typePresentationMenuItem.setText(WidgetType.PRESENTATION.name()); + this.typePauseMenuItem.setText(WidgetType.PAUSE.name()); switch (widgetType) { case MINUTE: typeMinuteMenuItem.setText(typeMinuteMenuItem.getText() + " (*)");break; case HOUR: typeHourMenuItem.setText(typeHourMenuItem.getText() + " (*)");break; @@ -107,6 +112,7 @@ public class WidgetMenu extends JPopupMenu { case YEAR: typeYearMenuItem.setText(typeYearMenuItem.getText() + " (*)");break; case LIFE: typeLifeMenuItem.setText(typeLifeMenuItem.getText() + " (*)");break; case PRESENTATION: typePresentationMenuItem.setText(typePresentationMenuItem.getText() + " (*)");break; + case PAUSE: typePauseMenuItem.setText(typePauseMenuItem.getText() + " (*)");break; default: throw new TimeCalcException("Unsupported WidgetType: " + widgetType); } this.selectedType = widgetType; diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java index c9d4eda..b6d73cc 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java @@ -1469,6 +1469,9 @@ public class MainWindow extends TWindow { } } TTime pauseElapsed = beforePause ? TTime.ofMinutes(0) : (afterPause ? pauseTimeTextField.asTTime() : nowTime.remove(pauseStart)); + double pauseElapsedMilliseconds = pauseElapsed.toTotalMilliseconds(); + double pauseTotalMilliseconds = pauseTimeTextField.asTTime().toTotalMilliseconds(); + double pauseProgress = pauseElapsedMilliseconds / pauseTotalMilliseconds; TTime pauseRemains = afterPause ? TTime.ofMinutes(0) : (beforePause ? pauseTimeTextField.asTTime() : pauseEnd.remove(nowTime)); endPauseTextField.valueProperty.setValue(pauseEnd.toString()); elapsedPauseTextField.valueProperty.setValue(pauseElapsed.toString()); @@ -1552,6 +1555,7 @@ public class MainWindow extends TWindow { progress.set(WidgetType.MINUTE, minuteProgress); progress.set(WidgetType.YEAR, yearProgress); progress.set(WidgetType.LIFE, lifeProgress); + progress.set(WidgetType.PAUSE, pauseProgress); progressSquare.setProgress(progress); progressCircle.setProgress(progress); progressSwing.setProgress(progress);