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

admin availability null error, can't navigate from staff -> sched (staff loads...

admin availability null error, can't navigate from staff -> sched (staff loads different panels) pop ups still need to be hooked up
parent 1815ec14
No related branches found
No related tags found
No related merge requests found
......@@ -58,7 +58,7 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
//clear
contents.getChildren().clear();
Label blank = new Label();
Label blank = new Label(" ");
blank.setStyle("-fx-background-color: white");
contents.add(blank, 0, 0);
......@@ -83,7 +83,12 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
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]));
if (ava[j][0] == null || ava[j][0] == null){
System.out.println("availbiity null error");
continue;
}
Button b = this.formatButton(ava[j][0], ava[j][1]);
contents.add(b, j+1, this.availGetRow(ava[j]), 1, this.availGetLength(ava[j]));
}
......@@ -98,7 +103,7 @@ public class AvailabilityView extends ScrollPane implements ModelSubscriber{
public int availGetLength(LocalTime[] times){
//calculate length
int length = (times[1].getHour() - times[2].getHour()) * 2;
int length = (times[0].getHour() - times[1].getHour()) * 2;
if (times[0].getMinute() == 30) length--;
if (times[1].getMinute() == 30) length++;
return length;
......
package com.example.schedulerapp;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
......@@ -16,6 +18,8 @@ import javafx.stage.Stage;
import java.io.IOException;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Controller {
@FXML
......@@ -76,11 +80,19 @@ public class Controller {
ComboBox editEmployeeBox;
@FXML
CheckBox editEmployeeManager;
@FXML
DatePicker timeOffDatePicker;
@FXML
ChoiceBox selectedEmployee;
Stage popupStage;
Scene popupScene;
Stage popupAvailStage;
Scene popupAvail;
Stage popupTimeOffStage;
Scene popupTimeOff;
Model model;
DailyView dailyView;
WeeklyView weeklyView;
......@@ -94,6 +106,7 @@ public class Controller {
Parent editEmployeeView;
Parent addEmployeeView;
Parent staffPanel;
Parent availabilityPanel;
static boolean isDaily;
......@@ -134,7 +147,9 @@ public class Controller {
//set manager specific text
if (model.getIsManager()){
viewing.setText("Viewing: " + model.getEmployeeByID(model.getSelectedEmployee()));
selectedEmployee.setItems(FXCollections.observableArrayList(model.getAllEmployees()));
selectedEmployee.getSelectionModel().selectedItemProperty().addListener((observableValue, o, t1) ->
model.setSelectedEmployee(((Employee)selectedEmployee.getSelectionModel().getSelectedItem()).getEmployeeID()));
}
}
......@@ -161,6 +176,7 @@ public class Controller {
loadPaystubView();
loadEditEmployee();
loadStaffPanel();
loadAvailabilityBottomPanel();
}
//load header
......@@ -195,15 +211,18 @@ public class Controller {
// load weekly view from schedule daily
public void viewScheduleWeekly(){
root.setCenter(weeklyView);
root.setBottom(bottomPanel);
}
public void viewScheduleDaily(){
root.setCenter(dailyView);
root.setBottom(bottomPanel);
}
// load pickups from schedule todo
public void viewPickups(){
root.setCenter(null);
root.setBottom(bottomPanel);
}
public void loadScheduleSide() throws IOException {
......@@ -250,6 +269,7 @@ public class Controller {
public void viewAvailability() {
root.setCenter(availabilityView);
root.setBottom(availabilityPanel);
}
public void timeoffButtonClicked () {
......@@ -271,6 +291,35 @@ public class Controller {
staffPanel = sideLoader.load();
}
public void loadAvailabilityBottomPanel() throws IOException {
FXMLLoader sideLoader = new FXMLLoader(this.getClass().getResource("availabilityBottomPanel.fxml"));
sideLoader.setController(this);
availabilityPanel = sideLoader.load();
}
public void editAvailability() throws IOException {
FXMLLoader popupLoader = new FXMLLoader(this.getClass().getResource("availabilityPopup.fxml"));
popupLoader.setController(this);
popupAvail = new Scene(popupLoader.load(),500,500);
popupAvailStage = new Stage();
popupAvailStage.setScene(popupAvail);
popupAvailStage.show();
}
public void requestTimeOff() throws IOException {
FXMLLoader popupLoader = new FXMLLoader(this.getClass().getResource("timeOffPopup.fxml"));
popupLoader.setController(this);
popupTimeOff = new Scene(popupLoader.load(),500,500);
popupTimeOffStage = new Stage();
popupTimeOffStage.setScene(popupTimeOff);
popupTimeOffStage.show();
}
public void submitTimeOff(MouseEvent event){
System.out.println("todo");
}
public void pickupsButtonClicked () {
System.out.println("pickups button clicked");
}
......@@ -291,6 +340,8 @@ public class Controller {
updateCurrentDate(event);
}
public void addShiftClicked() throws IOException {
FXMLLoader popupLoader = new FXMLLoader(this.getClass().getResource("addShiftPopup.fxml"));
popupLoader.setController(this);
......@@ -343,8 +394,18 @@ public class Controller {
populateEmployeeBox(event);
}
public void submitNewAvailability(MouseEvent e){
System.out.println("todo");
}
public void populateDaysOfWeek(MouseEvent event){
List<String> times = Arrays.asList("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
ComboBox box = (ComboBox) event.getSource();
ObservableList<String> list = FXCollections.observableArrayList(times);
box.setItems(list);
}
public void addShiftTimeBoxClicked(MouseEvent event){
System.out.println("add shift time box clicked");
ArrayList<String> times = new ArrayList<>();
for (int i = 8; i < 24; i++){
String j = i + "00";
......
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox minHeight="-Infinity" minWidth="-Infinity" prefHeight="51.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
<children>
<HBox prefHeight="26.0" prefWidth="800.0">
<children>
<Button alignment="CENTER" mnemonicParsing="false" onMouseClicked="#editAvailability" prefHeight="26.0" prefWidth="844.0" text="Edit Availability" />
<Button alignment="CENTER" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" onMouseClicked="#requestTimeOff" prefHeight="26.0" prefWidth="844.0" text="Request Time Off" />
</children>
</HBox>
<HBox prefHeight="25.0" prefWidth="800.0">
<children>
<Button mnemonicParsing="false" onMouseClicked="#prevButtonClicked" prefHeight="25.0" prefWidth="200.0" text="Previous" />
<Label fx:id="currentDateText" prefHeight="25.0" prefWidth="200.0" text="Current: " />
<Button mnemonicParsing="false" onMouseClicked="#jumpButtonClicked" prefHeight="25.0" prefWidth="200.0" text="Jump" />
<Button mnemonicParsing="false" onMouseClicked="#nextButtonClicked" prefHeight="25.0" prefWidth="200.0" text="Next" />
</children>
</HBox>
</children>
</VBox>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
<children>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<Label prefWidth="60.0" text="Day" />
<ComboBox fx:id="AvailabilityDayBox" onMouseClicked="#populateDaysOfWeek" prefHeight="26.0" prefWidth="150.0" />
</children>
</HBox>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<HBox prefHeight="94.0" prefWidth="256.0">
<children>
<Label prefWidth="60.0" text="Start Time" />
<ComboBox fx:id="editAvailabilityStartBox" onMouseClicked="#addShiftTimeBoxClicked" prefHeight="26.0" prefWidth="150.0" />
</children>
</HBox>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<Label prefWidth="60.0" text="End Time" />
<ComboBox fx:id="editAvailabilityEndBox" onMouseClicked="#addShiftTimeBoxClicked" prefWidth="150.0" />
</children>
</HBox>
</children>
</HBox>
<BorderPane prefHeight="85.0" prefWidth="499.0">
<left>
<Button fx:id="submitNewAvailability" mnemonicParsing="false" onMouseClicked="#submitNewAvailability" text="Submit" BorderPane.alignment="CENTER" />
</left>
<right>
<Button fx:id="cancelButton" mnemonicParsing="false" onMouseClicked="#cancelClicked" text="Cancel" BorderPane.alignment="CENTER" />
</right>
</BorderPane>
</children>
<opaqueInsets>
<Insets bottom="50.0" left="50.0" right="50.0" top="50.0" />
</opaqueInsets>
<padding>
<Insets bottom="50.0" left="50.0" right="50.0" top="50.0" />
</padding>
</VBox>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
......@@ -12,7 +13,8 @@
<HBox maxHeight="-Infinity" minWidth="-Infinity" prefHeight="26.0" prefWidth="200.0" HBox.hgrow="ALWAYS">
<children>
<Label fx:id="loggedIn" prefHeight="26.0" prefWidth="242.0" text="Logged in: " />
<Label fx:id="viewing" layoutX="10.0" layoutY="10.0" prefHeight="26.0" prefWidth="214.0" text="Viewing: " />
<Label fx:id="viewing" layoutX="10.0" layoutY="10.0" prefHeight="26.0" prefWidth="58.0" text="Viewing: " />
<ChoiceBox fx:id="selectedEmployee" prefWidth="150.0" />
</children>
</HBox>
<Button alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onMouseClicked="#logoutClicked" prefHeight="26.0" prefWidth="158.0" text="Logout" />
......
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1">
<children>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<Label prefWidth="60.0" text="Date" />
<DatePicker fx:id="timeOffDatePicker" />
</children>
</HBox>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<HBox prefHeight="94.0" prefWidth="256.0">
<children>
<Label prefWidth="60.0" text="Start Time" />
<ComboBox fx:id="timeOffStartBox" onMouseClicked="#addShiftTimeBoxClicked" prefHeight="26.0" prefWidth="150.0" />
</children>
</HBox>
<HBox prefHeight="100.0" prefWidth="200.0">
<children>
<Label prefWidth="60.0" text="End Time" />
<ComboBox fx:id="timeOffEndBox" onMouseClicked="#addShiftTimeBoxClicked" prefWidth="150.0" />
</children>
</HBox>
</children>
</HBox>
<BorderPane prefHeight="85.0" prefWidth="499.0">
<left>
<Button fx:id="submitTimeOff" mnemonicParsing="false" onMouseClicked="#submitTimeOff" text="Submit" BorderPane.alignment="CENTER" />
</left>
<right>
<Button fx:id="cancelButton" mnemonicParsing="false" onMouseClicked="#cancelClicked" text="Cancel" BorderPane.alignment="CENTER" />
</right>
</BorderPane>
</children>
<opaqueInsets>
<Insets bottom="50.0" left="50.0" right="50.0" top="50.0" />
</opaqueInsets>
<padding>
<Insets bottom="50.0" left="50.0" right="50.0" top="50.0" />
</padding>
</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