diff --git a/Readme.md b/Readme.md index 0c19281..68c1e9a 100644 --- a/Readme.md +++ b/Readme.md @@ -169,10 +169,16 @@ Smileys can be colored or white-black (can be set in configuration) * CTRL + {Y,N,D,H,M,S or I} - Decrease test time value * ALT + {Y,N,D,H,M,S or I} - Rest test time value * D - Reset custom time values to the real time -* SHIFT + A - Increase arrival time by 1 minute -* CTRL + A - Decrease arrival time by 1 minute -* SHIFT + O - Increase overtime by 1 minute -* CTRL + O - Decrease overtime by 1 minute +* SHIFT + A - Increase arrival time +* CTRL + A - Decrease arrival time +* SHIFT + O - Increase overtime +* CTRL + O - Decrease overtime +* SHIFT + W - Increase working time +* CTRL + W - Decrease worknig time +* SHIFT + P - Increase pause +* CTRL + P - Decrease pause +* SHIFT + C - Increase or decrease of time is change by 1 hour +* CTRL + C - Increase or decrease of time is change by 1 minute ## Command button diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcKeyAdapter.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcKeyAdapter.java index de31b83..51a24e3 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcKeyAdapter.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcKeyAdapter.java @@ -14,6 +14,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.util.Calendar; import java.util.Properties; +import org.nanoboot.utils.timecalc.utils.common.TTime; /** * @author Robert Vokac @@ -21,11 +22,15 @@ import java.util.Properties; */ public class TimeCalcKeyAdapter extends KeyAdapter { + private static final TTime T_TIME_ONE_MINUTE = new TTime(0, 1); + private static final TTime T_TIME_ONE_HOUR = new TTime(1,0); + private final TimeCalcConfiguration timeCalcConfiguration; private final TimeCalcApp timeCalcApp; private final MainWindow window; private final Time time; - + private boolean changeByOneHour = false; + public TimeCalcKeyAdapter( TimeCalcConfiguration timeCalcConfiguration, TimeCalcApp timeCalcApp, @@ -69,6 +74,7 @@ public class TimeCalcKeyAdapter extends KeyAdapter { boolean increase = shiftDown; boolean decrease = ctrlDown; boolean reset = altDown; + TTime changeTTime = changeByOneHour ? T_TIME_ONE_HOUR : T_TIME_ONE_MINUTE; switch (keyCode) { case KeyEvent.VK_Y: { //Utils.showNotification((increase ? "Increasing" : (decrease ? "Decreasing" : "Reseting")) + " year."); @@ -115,23 +121,46 @@ public class TimeCalcKeyAdapter extends KeyAdapter { case KeyEvent.VK_A: { //Utils.showNotification((increase ? "Increasing" : (decrease ? "Decreasing" : "Reseting")) + " millisecond."); if (increase) { - window.increaseArrivalByOneMinute(); + window.increaseArrival(changeTTime); } if (decrease) { - window.decreaseArrivalByOneMinute(); + window.decreaseArrival(changeTTime); } break; } case KeyEvent.VK_O: { //Utils.showNotification((increase ? "Increasing" : (decrease ? "Decreasing" : "Reseting")) + " millisecond."); if (increase) { - window.increaseOvertimeByOneMinute(); + window.increaseOvertime(changeTTime); } if (decrease) { - window.decreaseOvertimeByOneMinute(); + window.decreaseOvertime(changeTTime); } break; } + case KeyEvent.VK_W: { + if (increase) { + window.increaseWork(changeTTime); + } + if (decrease) { + window.decreaseWork(changeTTime); + } + break; + } + case KeyEvent.VK_P: { + if (increase) { + window.increasePause(changeTTime); + } + if (decrease) { + window.decreasePause(changeTTime); + } + break; + } + case KeyEvent.VK_C: { + this.changeByOneHour = increase; + Utils.showNotification("Time will be changed by 1 " + (increase ? "hour" : "minute") + "."); + break; + } default: // Utils.showNotification( // "Unsupported key was pressed. There is no key shortcut for this key: " diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MainWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MainWindow.java index 8efee1d..5b545ae 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MainWindow.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/MainWindow.java @@ -58,8 +58,8 @@ public class MainWindow extends TWindow { = new TimeCalcConfiguration(); private final TTextField arrivalTextField; private final TTextField overtimeTextField; - private final TTextField workingTimeInMinutesTextField; - private final TTextField pauseTimeInMinutesTextField; + private final TTextField workingTimeTextField; + private final TTextField pauseTimeTextField; private final TTextField noteTextField; private final TTextField departureTextField; private final TTextField elapsedTextField; @@ -73,8 +73,8 @@ public class MainWindow extends TWindow { { this.arrivalTextField = new TTextField(); this.overtimeTextField = new TTextField(); - this.workingTimeInMinutesTextField = new TTextField("480"); - this.pauseTimeInMinutesTextField = new TTextField("30"); + this.workingTimeTextField = new TTextField("8:00"); + this.pauseTimeTextField = new TTextField("0:30"); this.noteTextField = new TTextField("", 160); this.departureTextField = new TTextField(); this.elapsedTextField = new TTextField("", 100); @@ -261,30 +261,32 @@ public class MainWindow extends TWindow { TLabel workingTimeInMinutesTextFieldLabel = new TLabel("Work:", 40); workingTimeInMinutesTextFieldLabel.setBoundsFromLeft(overtimeTextField); - workingTimeInMinutesTextField.setBoundsFromLeft(workingTimeInMinutesTextFieldLabel); + workingTimeTextField.setBoundsFromLeft(workingTimeInMinutesTextFieldLabel); // TLabel pauseTimeInMinutesFieldLabel = new TLabel("Pause:", 40); - pauseTimeInMinutesFieldLabel.setBoundsFromLeft(workingTimeInMinutesTextField); + pauseTimeInMinutesFieldLabel.setBoundsFromLeft(workingTimeTextField); - pauseTimeInMinutesTextField.setBoundsFromLeft(pauseTimeInMinutesFieldLabel); + pauseTimeTextField.setBoundsFromLeft(pauseTimeInMinutesFieldLabel); // TLabel noteTextFieldLabel = new TLabel("Note:"); - noteTextFieldLabel.setBoundsFromLeft(pauseTimeInMinutesTextField); + noteTextFieldLabel.setBoundsFromLeft(pauseTimeTextField); noteTextField.setBoundsFromLeft(noteTextFieldLabel); //half day, pause time in minutes, note arrivalTextField.setEditable(false); overtimeTextField.setEditable(false); + workingTimeTextField.setEditable(false); + pauseTimeTextField.setEditable(false); add(arrivalTextFieldLabel); add(arrivalTextField); add(overtimeTextFieldLabel); add(overtimeTextField); add(workingTimeInMinutesTextFieldLabel); - add(workingTimeInMinutesTextField); + add(workingTimeTextField); add(pauseTimeInMinutesFieldLabel); - add(pauseTimeInMinutesTextField); + add(pauseTimeTextField); add(noteTextFieldLabel); add(noteTextField); // @@ -620,16 +622,19 @@ public class MainWindow extends TWindow { TTime startTime = null; TTime overtime = null; + TTime workDuration = new TTime(workingTimeTextField.valueProperty.getValue()); + TTime pauseDuration = new TTime(pauseTimeTextField.valueProperty.getValue()); try { startTime = arrivalTextField.asTTime(); overtime = overtimeTextField.asTTime(); } catch (Exception e) { } - if (startTime == null || overtime == null) { + if (startTime == null || overtime == null || workDuration == null || pauseDuration == null) { return false; } - TTime newDeparture = startTime.add(new TTime(8, 30)); + + TTime newDeparture = startTime.add(workDuration).add(pauseDuration); if (overtime.isNegative()) { TTime tmpTTime = overtime.cloneInstance(); tmpTTime.setNegative(false); @@ -712,16 +717,12 @@ public class MainWindow extends TWindow { // elapsedTextField.valueProperty.setValue(s + ":" + (secondNow < 10 ? "0" : "") + secondNow + ":" + (millisecondNow < 10 ? "00" : (millisecondNow < 100 ? "0" : millisecondNow)) + millisecondNow); // } - TTime overtime = overtimeTextField.asTTime(); - int hourDone = (int) (Constants.WORKING_HOURS_LENGTH + overtime.getHour() - - timeRemains.getHour()); - int totalMillisecondsDone = timeElapsed.toTotalMilliseconds(); - - int totalMinutes = timeTotal.getMinute(); + int totalHoursDone = totalMillisecondsDone / 1000 / 60 /60; int totalMilliseconds = timeTotal.toTotalMilliseconds(); + int totalMinutes = totalMilliseconds / 1000 / 60 ; double done = ((double) totalMillisecondsDone) / ((double) totalMilliseconds); @@ -759,7 +760,7 @@ public class MainWindow extends TWindow { if (!nowIsWeekend) { hourBattery.setLabel( - hourDone + "/" + (totalMinutes / 60)); + totalHoursDone + "/" + (totalMinutes / 60)); } minuteBattery.setDonePercent( MinuteBattery.getMinuteProgress(secondNow, millisecondNow)); @@ -859,21 +860,37 @@ public class MainWindow extends TWindow { this.configWindow.doDisableAlmostEverything(); } - public void increaseArrivalByOneMinute() { - arrivalTextField.valueProperty.setValue(new TTime(this.arrivalTextField.valueProperty.getValue()).add(new TTime(0, 1)).toString().substring(0, 5)); + public void increaseArrival(TTime tTime) { + arrivalTextField.valueProperty.setValue(new TTime(this.arrivalTextField.valueProperty.getValue()).add(tTime).toString().substring(0, 5)); } - public void decreaseArrivalByOneMinute() { - arrivalTextField.valueProperty.setValue(new TTime(this.arrivalTextField.valueProperty.getValue()).remove(new TTime(0, 1)).toString().substring(0, 5)); + public void decreaseArrival(TTime tTime) { + arrivalTextField.valueProperty.setValue(new TTime(this.arrivalTextField.valueProperty.getValue()).remove(tTime).toString().substring(0, 5)); } - public void increaseOvertimeByOneMinute() { - TTime newOvertime = new TTime(this.overtimeTextField.valueProperty.getValue()).add(new TTime(0, 1)); + public void increaseOvertime(TTime tTime) { + TTime newOvertime = new TTime(this.overtimeTextField.valueProperty.getValue()).add(tTime); overtimeTextField.valueProperty.setValue(newOvertime.toString().substring(0, newOvertime.isNegative() ? 6 : 5)); } - public void decreaseOvertimeByOneMinute() { - TTime newOvertime = new TTime(this.overtimeTextField.valueProperty.getValue()).remove(new TTime(0, 1)); + public void decreaseOvertime(TTime tTime) { + TTime newOvertime = new TTime(this.overtimeTextField.valueProperty.getValue()).remove(tTime); overtimeTextField.valueProperty.setValue(newOvertime.toString().substring(0, newOvertime.isNegative() ? 6 : 5)); } + + public void increaseWork(TTime tTime) { + workingTimeTextField.valueProperty.setValue(new TTime(this.workingTimeTextField.valueProperty.getValue()).add(tTime).toString().substring(0, 5)); + } + + public void decreaseWork(TTime tTime) { + workingTimeTextField.valueProperty.setValue(new TTime(this.workingTimeTextField.valueProperty.getValue()).remove(tTime).toString().substring(0, 5)); + } + + public void increasePause(TTime tTime) { + pauseTimeTextField.valueProperty.setValue(new TTime(this.pauseTimeTextField.valueProperty.getValue()).add(tTime).toString().substring(0, 5)); + } + + public void decreasePause(TTime tTime) { + pauseTimeTextField.valueProperty.setValue(new TTime(this.pauseTimeTextField.valueProperty.getValue()).remove(tTime).toString().substring(0, 5)); + } } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/common/Constants.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/common/Constants.java index 3fd3589..fe4a1f1 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/common/Constants.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/common/Constants.java @@ -8,8 +8,6 @@ public class Constants { public static final String DEFAULT_START_TIME = "7:00"; public static final String DEFAULT_OVERTIME = "0:00"; - public static final int WORKING_HOURS_LENGTH = 8; - public static final int WORKING_MINUTES_LENGTH = 30; public static final String NEW_LINE = "\n"; private Constants() {