Added elapsed and remaining time for the current week

This commit is contained in:
Robert Vokac 2024-04-23 17:21:22 +02:00
parent ef5cae98ee
commit c0cdacfdb8
No known key found for this signature in database
GPG Key ID: 693D30BEE3329055
2 changed files with 71 additions and 4 deletions

View File

@ -220,7 +220,7 @@ public class DayPanel extends JPanel {
null, null,
"" ""
); );
if(newFlag != null && !newFlag.isBlank()) { if(newFlag != null && !newFlag.trim().isEmpty()) {
getActivityPanels().forEach(a-> getActivityPanels().forEach(a->
{ {
a.getActivity().addFlag(newFlag); a.getActivity().addFlag(newFlag);

View File

@ -117,6 +117,8 @@ public class MainWindow extends TWindow {
private final TTextField departureTextField; private final TTextField departureTextField;
private final TTextField elapsedTextField; private final TTextField elapsedTextField;
private final TTextField remainingTextField; private final TTextField remainingTextField;
private final TTextField elapsedWeekTextField;
private final TTextField remainingWeekTextField;
private final TButton saveButton; private final TButton saveButton;
private final ProgressLife progressLife; private final ProgressLife progressLife;
private final ProgressMoney progressMoney; private final ProgressMoney progressMoney;
@ -154,6 +156,8 @@ public class MainWindow extends TWindow {
this.departureTextField = new TTextField(); this.departureTextField = new TTextField();
this.elapsedTextField = new TTextField("", 100); this.elapsedTextField = new TTextField("", 100);
this.remainingTextField = new TTextField("", 100); this.remainingTextField = new TTextField("", 100);
this.elapsedWeekTextField = new TTextField("", 100);
this.remainingWeekTextField = new TTextField("", 100);
} }
public MainWindow(TimeCalcApp timeCalcApp) { public MainWindow(TimeCalcApp timeCalcApp) {
@ -608,7 +612,6 @@ public class MainWindow extends TWindow {
elapsedTextField.setBoundsFromLeft(elapsedTextFieldLabel); elapsedTextField.setBoundsFromLeft(elapsedTextFieldLabel);
elapsedTextField.setEditable(false); elapsedTextField.setEditable(false);
elapsedTextField.setEditable(false);
// //
TLabel remainingTextFieldLabel = new TLabel("Remaining:", 100); TLabel remainingTextFieldLabel = new TLabel("Remaining:", 100);
remainingTextFieldLabel.setBoundsFromLeft(elapsedTextField); remainingTextFieldLabel.setBoundsFromLeft(elapsedTextField);
@ -633,8 +636,38 @@ public class MainWindow extends TWindow {
this.workingDayRepository = new WorkingDayRepositorySQLiteImpl(timeCalcApp.getSqliteConnectionFactory()); this.workingDayRepository = new WorkingDayRepositorySQLiteImpl(timeCalcApp.getSqliteConnectionFactory());
this.activityRepository = new ActivityRepositorySQLiteImpl(timeCalcApp.getSqliteConnectionFactory()); this.activityRepository = new ActivityRepositorySQLiteImpl(timeCalcApp.getSqliteConnectionFactory());
////////
TLabel weekLabel = new TLabel("Week:", 70);
weekLabel.setBoundsFromTop(departureTextFieldLabel);
TTextField field = new TTextField("");
field.setBoundsFromLeft(weekLabel);
field.setEditable(false);
field.setVisible(false);
// //
configButton.setBoundsFromTop(departureTextFieldLabel);
//
TLabel elapsedWeekTextFieldLabel = new TLabel("Elapsed:");
elapsedWeekTextFieldLabel.setBoundsFromLeft(field);
elapsedWeekTextField.setBoundsFromLeft(elapsedWeekTextFieldLabel);
elapsedWeekTextField.setEditable(false);
//
TLabel remainingWeekTextFieldLabel = new TLabel("Remaining:", 100);
remainingWeekTextFieldLabel.setBoundsFromLeft(elapsedWeekTextField);
remainingWeekTextField.setBoundsFromLeft(remainingWeekTextFieldLabel);
remainingWeekTextField.setEditable(false);
if(!allowOnlyBasicFeaturesProperty.getValue()) {
add(weekLabel);
add(elapsedWeekTextFieldLabel);
add(elapsedWeekTextField);
add(remainingWeekTextFieldLabel);
add(remainingWeekTextField);
}
////////
//
configButton.setBoundsFromTop(weekLabel);
workDaysButton.setBoundsFromLeft(configButton); workDaysButton.setBoundsFromLeft(configButton);
activitiesButton.setBoundsFromLeft(workDaysButton); activitiesButton.setBoundsFromLeft(workDaysButton);
@ -1263,19 +1296,53 @@ public class MainWindow extends TWindow {
TTime timeRemains = TTime.computeTimeDiff(nowTime, endTime); TTime timeRemains = TTime.computeTimeDiff(nowTime, endTime);
TTime timeTotal = TTime.computeTimeDiff(startTime, endTime); TTime timeTotal = TTime.computeTimeDiff(startTime, endTime);
if(timeElapsed.toTotalMilliseconds() > 8.5 * 3600000) {
timeElapsed = new TTime(8,30);
}
if(timeRemains.toTotalMilliseconds() > 8.5 * 3600000) {
timeRemains = new TTime(8,30);
}
if(timeElapsed.toTotalMilliseconds() < 0) {
timeElapsed = new TTime(0, 0);
}
if(timeRemains.toTotalMilliseconds() < 0) {
timeRemains = new TTime(0, 0);
}
String timeElapsedString = timeElapsed.toString(); String timeElapsedString = timeElapsed.toString();
String timeRemainsString = timeRemains.toString(); String timeRemainsString = timeRemains.toString();
int dayOfWeek = time.dayOfWeekProperty.getValue();
TTime timeWeekElapsed = dayOfWeek < 6 ? timeElapsed.cloneInstance() : TTime.ofMinutes(
(int) (5d * 8.5d * 60d));
TTime timeWeekRemains = dayOfWeek < 6 ? timeRemains.cloneInstance() : TTime.ofMinutes(0);
if(dayOfWeek < 6) {
if (dayOfWeek > 1) {
timeWeekElapsed = timeWeekElapsed.add(TTime.ofMinutes(
(int) ((dayOfWeek - 1) * 8.5d * 60d)));
}
if (dayOfWeek < 5) {
timeWeekRemains = timeWeekRemains.add(TTime.ofMinutes(
(int) ((5 - dayOfWeek) * 8.5d * 60d)));
}
}
int secondsRemains = 60 - secondNow; int secondsRemains = 60 - secondNow;
int millisecondsRemains = 1000 - millisecondNow; int millisecondsRemains = 1000 - millisecondNow;
if (!remainingTextField.valueProperty.getValue() if (!remainingTextField.valueProperty.getValue()
.equals(timeRemainsString)) { .equals(timeRemainsString)) {
remainingTextField.valueProperty.setValue(timeRemainsString); remainingTextField.valueProperty.setValue(timeRemainsString);
} }
remainingWeekTextField.valueProperty.setValue(timeWeekRemains.toString());
if (!elapsedTextField.valueProperty.getValue() if (!elapsedTextField.valueProperty.getValue()
.equals(timeElapsedString)) { .equals(timeElapsedString)) {
elapsedTextField.valueProperty.setValue(timeElapsedString); elapsedTextField.valueProperty.setValue(timeElapsedString);
} }
elapsedWeekTextField.valueProperty.setValue(timeWeekElapsed.toString());
// if (!elapsedTextField.valueProperty.getValue() // if (!elapsedTextField.valueProperty.getValue()
// .equals(timeElapsed.remove(new TimeHM(0,1)).toString())) { // .equals(timeElapsed.remove(new TimeHM(0,1)).toString())) {
// String s = timeElapsed.remove(new TimeHM(0,1)).toString(); // String s = timeElapsed.remove(new TimeHM(0,1)).toString();
@ -1393,7 +1460,7 @@ public class MainWindow extends TWindow {
final int donePercentInt = (int) (Math.floor(progress.getDonePercent(WidgetType.DAY) * 100)); final int donePercentInt = (int) (Math.floor(progress.getDonePercent(WidgetType.DAY) * 100));
int percentInt = donePercentInt; int percentInt = donePercentInt;
if (/*donePercentInt % 5 == 0 &&*/ !alreadyShownPercents.contains(donePercentInt)) { if (/*donePercentInt % 5 == 0 &&*/ !alreadyShownPercents.contains(donePercentInt) && timeCalcConfiguration.testEnabledProperty.isDisabled()) {
alreadyShownPercents.add(donePercentInt); alreadyShownPercents.add(donePercentInt);
Toaster toasterManager = new Toaster(); Toaster toasterManager = new Toaster();
Font font = new Font("sans", Font.PLAIN, 16); Font font = new Font("sans", Font.PLAIN, 16);