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

DailyView working

parent b0970beb
No related branches found
No related tags found
1 merge request!4View schedule
package com.example.schedulerapp;
import javafx.geometry.HPos;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import java.util.ArrayList;
public class DailyView extends GridPane implements ModelSubscriber{
Model model;
iModel iModel;
ArrayList<Label> times;
public DailyView() {
//list of time labels
times = new ArrayList<Label>();
for (int i = 8; i < 24; i++){
String j = i + "00";
String k = i + "30";
if (i < 10) {
j = "0" + j;
k = "0" + k;
}
Label jLabel = new Label(j);
jLabel.setPrefHeight(20);
//jLabel.setStyle(" -fx-border-color: black");
Label kLabel = new Label(k);
kLabel.setPrefHeight(20);
//kLabel.setStyle(" -fx-border-color: black");
times.add(jLabel);
times.add(kLabel);
}
// add to gridpane - time axis never changes
int i = 1;
for (Label time : times){
this.add(time, 0, i);
i++;
}
}
public void setiModel(iModel imodel) {
this.iModel = imodel;
}
public void setModel(Model newModel) {
this.model = newModel;
//now can draw for first time
draw();
}
public void draw(){
//clear
this.getChildren().clear();
//add to gridpane - time axis never changes
int i = 1;
for (Label time : times){
this.add(time, 0, i);
i++;
}
int col = 1; //start on the second column
int row; //depends on start time
int length; //depends on end time - start time
// update employee axis and schedule display
ArrayList<Shift> schedule = model.getDailySchedule();
for (Shift shift : schedule){
Label name = new Label(Integer.toString(shift.getEmployeeID()));
GridPane.setHalignment(name, HPos.CENTER);
this.add(name, col, 0); //todo: display name instead
//convert from start time to offset, granularity in 30 min increments
row = (shift.getStart().getHour() - 8 ) * 2 + 1;
if (shift.getStart().getMinute() == 30) row++;
//calculate length
length = (shift.getEnd().getHour() - shift.getStart().getHour()) * 2;
if (shift.getStart().getMinute() == 30) length--;
if (shift.getEnd().getMinute() == 30) length++;
//text formatting
String text;
if (shift.getStart().getHour() < 10) text = "0" + shift.getStart().getHour();
else text = String.valueOf(shift.getStart().getHour());
if (shift.getStart().getMinute() == 0) text += "00";
else text += "30"; //only two options for minutes
text += "\n - \n";
if (shift.getEnd().getHour() < 10) text += "0" + shift.getEnd().getHour();
else text += String.valueOf(shift.getEnd().getHour());
if (shift.getEnd().getMinute() == 0) text += "00";
else text += "30"; //only two options for minutes
Button shiftRep = new Button(text);
shiftRep.setMaxHeight(700); //so it always fills its region
shiftRep.setPrefWidth(60);
GridPane.setFillHeight(shiftRep, true);
GridPane.setFillWidth(shiftRep, true);
//css styling
//todo: different colour for current user
shiftRep.setStyle("-fx-background-color: skyblue");
this.add(shiftRep, col, row, 1, length);
col++;
}
}
@Override
public void modelChanged() {
draw();
}
}
package com.example.schedulerapp; package com.example.schedulerapp;
import java.time.LocalDateTime;
import java.util.ArrayList;
public class Model { public class Model {
Schedule schedule;
public Model(){
}
public ArrayList<Shift> getDailySchedule(){
//sorted alphabetically
//return new ArrayList<>();
//test data
ArrayList<Shift> test = new ArrayList<>();
test.add(new Shift(123, LocalDateTime.of(2022, 3, 9, 8, 0),
LocalDateTime.of(2022, 3, 9, 14, 0)));
test.add(new Shift(456, LocalDateTime.of(2022, 3, 9, 8, 30),
LocalDateTime.of(2022, 3, 9, 16, 30)));
test.add(new Shift(789, LocalDateTime.of(2022, 3, 9, 14, 0),
LocalDateTime.of(2022, 3, 9, 22, 0)));
return test;
}
public ArrayList<Shift> getWeeklySchedule(){
//doesn't need to be sorted
return new ArrayList<>();
}
} }
package com.example.schedulerapp;
import javafx.scene.control.Label;
import java.util.ArrayList;
import java.util.Arrays;
public class WeeklyView {
//list of day labels
/*
ArrayList<Label> days = new ArrayList<Label>();
days.addAll(Arrays.asList(new Label("Sunday"), new Label("Monday"), new Label("Tuesday"),
new Label("Wednesday"), new Label("Thursday"), new Label("Friday"), new Label("Saturday")));
*/
}
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