Skip to content
Snippets Groups Projects
Commit aed9862b authored by ArktikHunter's avatar ArktikHunter
Browse files

null error in availibility

parent bbe59e60
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,7 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
}
times = new ArrayList<>();
for (int i = 8; i < 24; i++){
for (int i = 0; i < 24; i++){
String j = i + "00";
String k = i + "30";
if (i < 10) {
......@@ -49,6 +49,8 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
contents = new GridPane();
contents.setStyle("-fx-background-color: darkgrey");
this.setContent(contents);
}
......@@ -56,10 +58,15 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
//clear
contents.getChildren().clear();
Label blank = new Label();
blank.setStyle("-fx-background-color: white");
contents.add(blank, 0, 0);
//add to gridpane - time axis never changes
int i = 1;
for (Label time : times){
contents.add(time, 0, i);
time.setStyle("-fx-background-color: white");
i++;
}
......@@ -67,15 +74,37 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
i = 1;
for (Label time : days){
contents.add(time, i, 0);
time.setStyle("-fx-background-color: white");
i++;
}
//get employee
Employee e = model.getEmployee(model.getSelectedEmployee());
LocalTime[][] ava = e.getAvailability();
System.out.println("View: " + ava[0][0] +" "+ ava[0][1]);
for (int j = 0; j < 7; j++){
contents.add(this.formatButton(ava[j][0], ava[j][1]), j+1, this.availGetRow(ava[j]), 1, this.availGetLength(ava[j]));
}
}
public int availGetRow(LocalTime[] times){
//convert from start time to offset, granularity in 30 min increments
int row = (times[0].getHour()) * 2 + 1;
if (times[0].getMinute() == 30) row++;
return row;
}
public int availGetLength(LocalTime[] times){
//calculate length
int length = (times[1].getHour() - times[2].getHour()) * 2;
if (times[0].getMinute() == 30) length--;
if (times[1].getMinute() == 30) length++;
return length;
}
public String formatTimeLabel(LocalTime start, LocalTime end){
//String text = start.format(timeFormat);
String text = start.toString();
......@@ -86,13 +115,12 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
}
public Button formatButton(LocalTime start, LocalTime end){
Button rep = new Button();
Button rep = new Button(formatTimeLabel(start, end));
rep.setMaxHeight(700); //so it always fills its region
rep.setMaxWidth(100);
GridPane.setFillHeight(rep, true);
GridPane.setFillWidth(rep, true);
//css styling
//todo: different colour for current user
rep.setStyle("-fx-background-color: lightgreen");
return rep;
......@@ -103,7 +131,6 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
draw();
}
@Override
public void modelChanged() {
draw();
......
......@@ -203,7 +203,7 @@ public class Controller {
// load pickups from schedule todo
public void viewPickups(){
//root.setCenter();
root.setCenter(null);
}
public void loadScheduleSide() throws IOException {
......
package com.example.schedulerapp;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
......@@ -163,6 +164,7 @@ public class Employee {
the start and end times.
*/
public LocalTime[][] getAvailability() {
System.out.println("model: " + availability[0][0] + " " + availability[0][1]);
return availability;
}
......@@ -176,21 +178,39 @@ public class Employee {
Description: Adds the availability to the employee object.
Return: void
*/
public void populateAvailability(String[] availabilitySplit) {
availability[0][0] = LocalTime.parse(availabilitySplit[1]);
availability[0][1] = LocalTime.parse(availabilitySplit[2]);
availability[1][0] = LocalTime.parse(availabilitySplit[3]);
availability[1][1] = LocalTime.parse(availabilitySplit[4]);
availability[2][0] = LocalTime.parse(availabilitySplit[5]);
availability[2][1] = LocalTime.parse(availabilitySplit[6]);
availability[3][0] = LocalTime.parse(availabilitySplit[7]);
availability[3][1] = LocalTime.parse(availabilitySplit[8]);
availability[4][0] = LocalTime.parse(availabilitySplit[9]);
availability[4][1] = LocalTime.parse(availabilitySplit[10]);
availability[5][0] = LocalTime.parse(availabilitySplit[11]);
availability[5][1] = LocalTime.parse(availabilitySplit[12]);
availability[6][0] = LocalTime.parse(availabilitySplit[13]);
availability[6][1] = LocalTime.parse(availabilitySplit[14]);
public void populateAvailability(String[] aSplit) {
String[] availabilitySplit = availabilityPreprocessing(aSplit);
DateTimeFormatter dbTimeFormat = DateTimeFormatter.ofPattern("kkmm");
availability[0][0] = LocalTime.parse(availabilitySplit[1],dbTimeFormat);
availability[0][1] = LocalTime.parse(availabilitySplit[2],dbTimeFormat);
availability[1][0] = LocalTime.parse(availabilitySplit[3],dbTimeFormat);
availability[1][1] = LocalTime.parse(availabilitySplit[4],dbTimeFormat);
availability[2][0] = LocalTime.parse(availabilitySplit[5],dbTimeFormat);
availability[2][1] = LocalTime.parse(availabilitySplit[6],dbTimeFormat);
availability[3][0] = LocalTime.parse(availabilitySplit[7],dbTimeFormat);
availability[3][1] = LocalTime.parse(availabilitySplit[8],dbTimeFormat);
availability[4][0] = LocalTime.parse(availabilitySplit[9],dbTimeFormat);
availability[4][1] = LocalTime.parse(availabilitySplit[10],dbTimeFormat);
availability[5][0] = LocalTime.parse(availabilitySplit[11],dbTimeFormat);
availability[5][1] = LocalTime.parse(availabilitySplit[12],dbTimeFormat);
availability[6][0] = LocalTime.parse(availabilitySplit[13],dbTimeFormat);
availability[6][1] = LocalTime.parse(availabilitySplit[14],dbTimeFormat);
System.out.println("populate: " + availability[0][0] + " " + availability[0][1]);
}
public String[] availabilityPreprocessing(String[] s){
String[] result = new String[15];
String sub = "0000";
for (int i = 1; i < 15; i++){
if (s[i].length() < 4){
result[i] = sub.substring(0, 4-s[i].length()) + s[i];
} else {
result[i] = s[i];
}
System.out.println(s[i]);
}
return result;
}
/*
......
......@@ -7,6 +7,8 @@ import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import java.time.LocalTime;
public class ScheduleApp extends Application {
@Override
public void start(Stage stage) throws Exception {
......@@ -24,7 +26,6 @@ public class ScheduleApp extends Application {
stage.show();
stage.setOnCloseRequest(e -> javafx.application.Platform.exit());
}
public static void main(String[] args) {
......
......@@ -7,6 +7,7 @@
<children>
<Button mnemonicParsing="false" onMouseClicked="#viewScheduleDaily" prefHeight="163.0" prefWidth="100.0" text="Daily" />
<Button mnemonicParsing="false" onMouseClicked="#viewScheduleWeekly" prefHeight="163.0" prefWidth="100.0" text="Weekly" />
<Button mnemonicParsing="false" prefHeight="163.0" prefWidth="100.0" text="Pick-Ups" />
<Button mnemonicParsing="false" onMouseClicked="#viewPickups" prefHeight="163.0" prefWidth="100.0" text="Pick-Ups" />
<Button layoutX="10.0" layoutY="336.0" mnemonicParsing="false" onMouseClicked="#viewAvailability" prefHeight="163.0" prefWidth="100.0" text="Availability" />
</children>
</VBox>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment