Compare commits
7 Commits
0043e7f1bd
...
0510-Valid
Author | SHA1 | Date | |
---|---|---|---|
d081a88dcd | |||
0296333733 | |||
5a3c3845ed | |||
125ee67ccd | |||
fab28a0e16 | |||
1a8bbbfce7 | |||
e8c7fb8a08 |
77
client/app/src/main/java/main/CreateEventController.java
Normal file
77
client/app/src/main/java/main/CreateEventController.java
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
package main;
|
||||||
|
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.control.*;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import res.DataController;
|
||||||
|
import res.Event;
|
||||||
|
|
||||||
|
public class CreateEventController {
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public DatePicker datePickerDate;
|
||||||
|
@FXML
|
||||||
|
public TextField textName;
|
||||||
|
@FXML
|
||||||
|
public TextField textStart;
|
||||||
|
@FXML
|
||||||
|
public TextField textEnd;
|
||||||
|
@FXML
|
||||||
|
public ComboBox<String> ComboBoxTyp;
|
||||||
|
@FXML
|
||||||
|
public ComboBox<String> ComboBoxPriotity;
|
||||||
|
@FXML
|
||||||
|
public CheckBox checkBoxIsFullDay;
|
||||||
|
@FXML
|
||||||
|
public CheckBox checkBoxIsPrivate;
|
||||||
|
@FXML
|
||||||
|
public Label labelError;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public CreateEventController() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void initialize() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
protected void createBtnClick(ActionEvent actionEvent) {
|
||||||
|
try {
|
||||||
|
if(datePickerDate.getValue() == null){
|
||||||
|
throw new IllegalArgumentException("Bitte w\u00e4hle ein Datum aus");
|
||||||
|
}
|
||||||
|
|
||||||
|
Event event = new Event(
|
||||||
|
textName.getText(),
|
||||||
|
ComboBoxPriotity.getSelectionModel().getSelectedIndex(),
|
||||||
|
checkBoxIsFullDay.isSelected(),
|
||||||
|
checkBoxIsPrivate.isSelected(),
|
||||||
|
textStart.getText(),
|
||||||
|
textEnd.getText(),
|
||||||
|
datePickerDate.getValue().atStartOfDay(),
|
||||||
|
1
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println(event.getAsUrlParam());
|
||||||
|
|
||||||
|
DataController dataController = new DataController();
|
||||||
|
dataController.createEvent(event);
|
||||||
|
|
||||||
|
Stage stage = (Stage) ((Node) actionEvent.getSource()).getScene().getWindow();
|
||||||
|
stage.close();
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
labelError.setText(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
protected void abortBtnClick(ActionEvent event) {
|
||||||
|
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
|
||||||
|
stage.close();
|
||||||
|
}
|
||||||
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
package client;
|
package main;
|
||||||
|
|
||||||
public class Launcher {
|
public class Launcher {
|
||||||
|
|
@@ -1,8 +1,7 @@
|
|||||||
package client;
|
package main;
|
||||||
|
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Node;
|
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
@@ -1,4 +1,4 @@
|
|||||||
package client;
|
package main;
|
||||||
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
@@ -45,23 +45,31 @@ public class MainController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void initialize(){
|
public void initialize() {
|
||||||
createWeek();
|
createWeek();
|
||||||
setDates();
|
setDates();
|
||||||
|
|
||||||
|
updateEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateEvents() {
|
||||||
|
for (VBox vBox : dayVBoxes) {
|
||||||
|
vBox.getChildren().clear();
|
||||||
|
}
|
||||||
|
|
||||||
DataController dataController = new DataController();
|
DataController dataController = new DataController();
|
||||||
ArrayList<Event> eventList = dataController.getAllVisibleEvents();
|
ArrayList<Event> eventList = dataController.getAllVisibleEvents();
|
||||||
|
|
||||||
for(Event event : eventList){
|
for (Event event : eventList) {
|
||||||
addEvent(event);
|
addEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
protected void onAddBtnClick(){
|
protected void onAddBtnClick() {
|
||||||
try{
|
try {
|
||||||
FXMLLoader fxmlLoader = new FXMLLoader(MainApplication.class.getResource("create-event.fxml"));
|
FXMLLoader fxmlLoader = new FXMLLoader(MainApplication.class.getResource("create-event.fxml"));
|
||||||
Scene scene = new Scene(fxmlLoader.load(), 650, 500);
|
Scene scene = new Scene(fxmlLoader.load(), 650, 650);
|
||||||
scene.getStylesheets().add(Objects.requireNonNull(MainApplication.class.getResource("create-event.css")).toExternalForm());
|
scene.getStylesheets().add(Objects.requireNonNull(MainApplication.class.getResource("create-event.css")).toExternalForm());
|
||||||
Stage stage = new Stage();
|
Stage stage = new Stage();
|
||||||
stage.setTitle("Termin erstellen");
|
stage.setTitle("Termin erstellen");
|
||||||
@@ -70,13 +78,13 @@ public class MainController {
|
|||||||
stage.setResizable(false);
|
stage.setResizable(false);
|
||||||
//stage.initStyle(StageStyle.UNDECORATED);
|
//stage.initStyle(StageStyle.UNDECORATED);
|
||||||
stage.showAndWait();
|
stage.showAndWait();
|
||||||
}
|
} catch (IOException e) {
|
||||||
catch (IOException e){
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
updateEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createWeek(){
|
private void createWeek() {
|
||||||
for (int i = 0; i < 7; i++) {
|
for (int i = 0; i < 7; i++) {
|
||||||
Label label = new Label();
|
Label label = new Label();
|
||||||
label.setText(dayNames[i]);
|
label.setText(dayNames[i]);
|
||||||
@@ -103,7 +111,7 @@ public class MainController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addEvent(Event event){
|
private void addEvent(Event event) {
|
||||||
VBox vBox = new VBox();
|
VBox vBox = new VBox();
|
||||||
vBox.getStyleClass().add("event");
|
vBox.getStyleClass().add("event");
|
||||||
vBox.setSpacing(5);
|
vBox.setSpacing(5);
|
||||||
@@ -113,9 +121,9 @@ public class MainController {
|
|||||||
Button deleteBtn = new Button();
|
Button deleteBtn = new Button();
|
||||||
deleteBtn.setText(" X ");
|
deleteBtn.setText(" X ");
|
||||||
deleteBtn.setOnAction(e -> {
|
deleteBtn.setOnAction(e -> {
|
||||||
LocalDateTime eventDate = event.getDate();
|
DataController dataController = new DataController();
|
||||||
int day = (int)Duration.between(weekStartDateTime.toLocalDate().atStartOfDay(), eventDate.toLocalDate().atStartOfDay()).toDays();
|
dataController.deleteEvent(event.getId());
|
||||||
dayVBoxes[day].getChildren().remove(vBox);
|
updateEvents();
|
||||||
});
|
});
|
||||||
Button editBtn = new Button();
|
Button editBtn = new Button();
|
||||||
editBtn.setText("edit");
|
editBtn.setText("edit");
|
||||||
@@ -126,8 +134,12 @@ public class MainController {
|
|||||||
Label nameLabel = new Label(event.getName());
|
Label nameLabel = new Label(event.getName());
|
||||||
vBox.getChildren().add(nameLabel);
|
vBox.getChildren().add(nameLabel);
|
||||||
|
|
||||||
Label timeLabel = new Label(event.getStart() + "-" + event.getEnd());
|
if (event.getStart() != null || event.getEnd() != null) {
|
||||||
vBox.getChildren().add(timeLabel);
|
String timeStr = (event.getStart() != null ? formatTime(event.getStart()) : "")
|
||||||
|
+ (event.getEnd() != null ? " - " + formatTime(event.getEnd()) : "");
|
||||||
|
Label timeLabel = new Label(timeStr);
|
||||||
|
vBox.getChildren().add(timeLabel);
|
||||||
|
}
|
||||||
|
|
||||||
Label typeLabel = new Label("Wer: " + event.getOwnerName());
|
Label typeLabel = new Label("Wer: " + event.getOwnerName());
|
||||||
vBox.getChildren().add(typeLabel);
|
vBox.getChildren().add(typeLabel);
|
||||||
@@ -141,22 +153,30 @@ public class MainController {
|
|||||||
Label prioLabel = new Label("Priorit\u00e4t: " + event.getPriority());
|
Label prioLabel = new Label("Priorit\u00e4t: " + event.getPriority());
|
||||||
vBox.getChildren().add(prioLabel);
|
vBox.getChildren().add(prioLabel);
|
||||||
|
|
||||||
if(event.isFullDay()){
|
if (event.isFullDay()) {
|
||||||
Label fullDayLabel = new Label("Dieser Termin bockiert den ganzen Tag!");
|
Label fullDayLabel = new Label("Dieser Termin bockiert den ganzen Tag!");
|
||||||
vBox.getChildren().add(fullDayLabel);
|
vBox.getChildren().add(fullDayLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LocalDateTime eventDate = event.getDate();
|
LocalDateTime eventDate = event.getDate();
|
||||||
|
|
||||||
int day = (int)Duration.between(weekStartDateTime.toLocalDate().atStartOfDay(), eventDate.toLocalDate().atStartOfDay()).toDays();
|
int day = (int) Duration.between(weekStartDateTime.toLocalDate().atStartOfDay(), eventDate.toLocalDate().atStartOfDay()).toDays();
|
||||||
|
|
||||||
if(day >= 0 && day < 7){
|
if (day >= 0 && day < 7) {
|
||||||
dayVBoxes[day].getChildren().add(vBox);
|
dayVBoxes[day].getChildren().add(vBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDates(){
|
private String formatTime(String time) {
|
||||||
|
String[] timeArr = time.split(":");
|
||||||
|
if (timeArr.length > 2) {
|
||||||
|
return timeArr[0] + ":" + timeArr[1];
|
||||||
|
}
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDates() {
|
||||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("LLLL yyyy");
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("LLLL yyyy");
|
||||||
DateTimeFormatter dayFormatter = DateTimeFormatter.ofPattern("E dd.MM");
|
DateTimeFormatter dayFormatter = DateTimeFormatter.ofPattern("E dd.MM");
|
||||||
DateTimeFormatter dayOfWeekFormatter = DateTimeFormatter.ofPattern("e");
|
DateTimeFormatter dayOfWeekFormatter = DateTimeFormatter.ofPattern("e");
|
||||||
@@ -164,7 +184,7 @@ public class MainController {
|
|||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
int dayOfWeek = Integer.parseInt(dayOfWeekFormatter.format(now));
|
int dayOfWeek = Integer.parseInt(dayOfWeekFormatter.format(now));
|
||||||
|
|
||||||
weekStartDateTime = now.minusDays(weekOffset * 7L + dayOfWeek - 1);
|
weekStartDateTime = now.plusDays(weekOffset * 7L - dayOfWeek + 1);
|
||||||
|
|
||||||
for (int i = 0; i < 7; i++) {
|
for (int i = 0; i < 7; i++) {
|
||||||
dayLabel[i].setText(dayFormatter.format(weekStartDateTime.plusDays(i)));
|
dayLabel[i].setText(dayFormatter.format(weekStartDateTime.plusDays(i)));
|
@@ -32,4 +32,15 @@ Label{
|
|||||||
|
|
||||||
.mainButton{
|
.mainButton{
|
||||||
-fx-font-weight: bold;
|
-fx-font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#labelError{
|
||||||
|
-fx-font-weight: bold;
|
||||||
|
-fx-max-width: 1000px;
|
||||||
|
-fx-text-fill: #ff5555;
|
||||||
|
-fx-padding: 16px;
|
||||||
|
-fx-min-height: 140px;
|
||||||
|
-fx-max-height: 400px;
|
||||||
|
-fx-wrap-text: true;
|
||||||
|
-fx-font-size: 16px;
|
||||||
}
|
}
|
62
client/app/src/main/resources/main/create-event.fxml
Normal file
62
client/app/src/main/resources/main/create-event.fxml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
|
<?import javafx.collections.FXCollections?>
|
||||||
|
<?import java.lang.String?>
|
||||||
|
<GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="main.CreateEventController">
|
||||||
|
|
||||||
|
<columnConstraints>
|
||||||
|
<ColumnConstraints/>
|
||||||
|
<ColumnConstraints/>
|
||||||
|
<ColumnConstraints/>
|
||||||
|
</columnConstraints>
|
||||||
|
<rowConstraints>
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
|
</rowConstraints>
|
||||||
|
|
||||||
|
<Label styleClass="mainLabel">Termin anlegen</Label>
|
||||||
|
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="1">Datum:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="2">Titel:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="3">Von:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="4">Bis:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="5">Typ:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="6">Priorität:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="7">Ganztägig:</Label>
|
||||||
|
<Label styleClass="inputLabel" GridPane.rowIndex="8">Privat:</Label>
|
||||||
|
|
||||||
|
<DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
|
||||||
|
<TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="400" minWidth="400"/>
|
||||||
|
<TextField fx:id="textStart" GridPane.columnIndex="1" GridPane.rowIndex="3" maxWidth="400" minWidth="400"/>
|
||||||
|
<TextField fx:id="textEnd" GridPane.columnIndex="1" GridPane.rowIndex="4" maxWidth="400" minWidth="400"/>
|
||||||
|
<ComboBox fx:id="ComboBoxTyp" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="400" minWidth="400"/>
|
||||||
|
<ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="6" maxWidth="200" minWidth="200">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="gering" />
|
||||||
|
<String fx:value="mittel" />
|
||||||
|
<String fx:value="hoch" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ComboBox>
|
||||||
|
<CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="7"/>
|
||||||
|
<CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="8"/>
|
||||||
|
<Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="9"/>
|
||||||
|
|
||||||
|
<HBox GridPane.columnIndex="1" GridPane.rowIndex="10" GridPane.columnSpan="2" alignment="CENTER_RIGHT">
|
||||||
|
<Button onAction="#abortBtnClick" maxWidth="150" minWidth="150" >Abbrechen</Button>
|
||||||
|
<Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Anlegen</Button>
|
||||||
|
</HBox>
|
||||||
|
|
||||||
|
</GridPane>
|
@@ -5,7 +5,7 @@
|
|||||||
<?import javafx.scene.image.*?>
|
<?import javafx.scene.image.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
<GridPane style="-fx-background-color: #424242;" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="client.MainController">
|
<GridPane style="-fx-background-color: #424242;" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="main.MainController">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="NEVER" maxWidth="60.0" minWidth="60.0" />
|
<ColumnConstraints hgrow="NEVER" maxWidth="60.0" minWidth="60.0" />
|
||||||
<ColumnConstraints hgrow="ALWAYS" />
|
<ColumnConstraints hgrow="ALWAYS" />
|
@@ -16,13 +16,30 @@ public class DataController {
|
|||||||
|
|
||||||
private static final String ALL_EVENTS_ENDPOINT = "http://localhost:8080/vpr/all-events";
|
private static final String ALL_EVENTS_ENDPOINT = "http://localhost:8080/vpr/all-events";
|
||||||
private static final String ALL_USERS_ENDPOINT = "http://localhost:8080/vpr/all-users";
|
private static final String ALL_USERS_ENDPOINT = "http://localhost:8080/vpr/all-users";
|
||||||
|
private static final String ADD_EVENT_ENDPOINT = "http://localhost:8080/vpr/add-event";
|
||||||
|
private static final String DELETE_EVENT_ENDPOINT = "http://localhost:8080/vpr/del-event";
|
||||||
|
|
||||||
private HttpRequest httpRequest;
|
private final HttpRequest httpRequest;
|
||||||
|
|
||||||
public DataController(){
|
public DataController(){
|
||||||
httpRequest = new HttpRequest();
|
httpRequest = new HttpRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void createEvent(Event event){
|
||||||
|
try {
|
||||||
|
System.out.println(httpRequest.sendPostRequest(ADD_EVENT_ENDPOINT, event.getAsUrlParam()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("Es konnte keine Verbindung mit dem Server hergestellt werden.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteEvent(int eventId){
|
||||||
|
try {
|
||||||
|
System.out.println(httpRequest.sendPostRequest(DELETE_EVENT_ENDPOINT, "eventId=" + eventId));
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList<Event> getAllVisibleEvents() {
|
public ArrayList<Event> getAllVisibleEvents() {
|
||||||
ArrayList<Event> eventList = new ArrayList<>();
|
ArrayList<Event> eventList = new ArrayList<>();
|
195
client/data/src/main/java/res/Event.java
Normal file
195
client/data/src/main/java/res/Event.java
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
package res;
|
||||||
|
|
||||||
|
import com.sun.jdi.event.StepEvent;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import java.util.regex.PatternSyntaxException;
|
||||||
|
|
||||||
|
public class Event {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
private String name;
|
||||||
|
private int priority;
|
||||||
|
private boolean isFullDay;
|
||||||
|
private boolean isPrivate;
|
||||||
|
private String start;
|
||||||
|
private String end;
|
||||||
|
|
||||||
|
private LocalDateTime date;
|
||||||
|
|
||||||
|
private int ownerId;
|
||||||
|
private String ownerName;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Constructor for SELECT:
|
||||||
|
e.id AS eid,
|
||||||
|
e.name AS ename,
|
||||||
|
e.start,
|
||||||
|
e.end,
|
||||||
|
e.priority,
|
||||||
|
e.is_full_day,
|
||||||
|
|
||||||
|
ue.date,
|
||||||
|
|
||||||
|
u.id AS uid,
|
||||||
|
u.forename,
|
||||||
|
u.name AS uname
|
||||||
|
*/
|
||||||
|
|
||||||
|
public Event(ArrayList<Object> arr) {
|
||||||
|
id = (int) arr.get(0);
|
||||||
|
name = (String) arr.get(1);
|
||||||
|
start = (String) arr.get(2);
|
||||||
|
end = (String) arr.get(3);
|
||||||
|
priority = (int) arr.get(4);
|
||||||
|
isFullDay = (Boolean) arr.get(5); //((String)arr.get(5)).equals("true");
|
||||||
|
|
||||||
|
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
||||||
|
date = LocalDateTime.parse(arr.get(6) + " 00:00", formatter);
|
||||||
|
|
||||||
|
ownerId = (int) arr.get(7);
|
||||||
|
ownerName = arr.get(8) + " " + arr.get(9);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Event(String name,
|
||||||
|
int priority,
|
||||||
|
boolean isFullDay,
|
||||||
|
boolean isPrivate,
|
||||||
|
String start,
|
||||||
|
String end,
|
||||||
|
LocalDateTime date,
|
||||||
|
int ownerId
|
||||||
|
) throws IllegalArgumentException{
|
||||||
|
if(name.length() < 3){
|
||||||
|
throw new IllegalArgumentException("Der Name muss eine L\u00e4nge von 3 haben.");
|
||||||
|
}
|
||||||
|
Pattern pattern = Pattern.compile("[A-Za-zÄÖÜäöü0-9 =!?+*/$%€.:,;_<>()-]*");
|
||||||
|
Matcher matcher = pattern.matcher(name);
|
||||||
|
if(!matcher.matches()){
|
||||||
|
throw new IllegalArgumentException("Der Name Darf nur aus Zahlen, Buchstaben und folgenden Sonderzeichen bestehen: =!?+*/$%€.:,;_ <>()-");
|
||||||
|
}
|
||||||
|
if(priority < 0){
|
||||||
|
throw new IllegalArgumentException("Bitte eine Priorit\u00e4t w\u00e4hlen.");
|
||||||
|
}
|
||||||
|
LocalDateTime today = LocalDateTime.now().toLocalDate().atStartOfDay();
|
||||||
|
if(Duration.between(today, date).isNegative()){
|
||||||
|
throw new IllegalArgumentException("Das Datum muss in der Zukunft liegen.");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.name = name;
|
||||||
|
this.priority = priority;
|
||||||
|
this.isFullDay = isFullDay;
|
||||||
|
this.isPrivate = isPrivate;
|
||||||
|
this.start = start;
|
||||||
|
this.end = end;
|
||||||
|
this.date = date;
|
||||||
|
this.ownerId = ownerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPriority() {
|
||||||
|
return priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPriority(int priority) {
|
||||||
|
this.priority = priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFullDay() {
|
||||||
|
return isFullDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFullDay(boolean fullDay) {
|
||||||
|
isFullDay = fullDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPrivate() {
|
||||||
|
return isPrivate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrivate(boolean aPrivate) {
|
||||||
|
isPrivate = aPrivate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStart() {
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStart(String start) {
|
||||||
|
this.start = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnd() {
|
||||||
|
return end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnd(String end) {
|
||||||
|
this.end = end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(LocalDateTime date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOwnerId() {
|
||||||
|
return ownerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOwnerId(int ownerId) {
|
||||||
|
this.ownerId = ownerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOwnerName() {
|
||||||
|
return ownerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOwnerName(String ownerName) {
|
||||||
|
this.ownerName = ownerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return name +
|
||||||
|
"\nVon: " + start +
|
||||||
|
"\nBis: " + start +
|
||||||
|
(isFullDay ? "\nDen ganzen Tag lang" : "");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAsUrlParam() {
|
||||||
|
return "userId=" + getOwnerId() +
|
||||||
|
"&date=" + getDate().toLocalDate() +
|
||||||
|
"&name=" + getName() +
|
||||||
|
"&start=" + getStart() +
|
||||||
|
"&end=" + getEnd() +
|
||||||
|
"&prority=" + getPriority() +
|
||||||
|
"&isFullDay=" + isFullDay() +
|
||||||
|
"&isPrivate=" + isPrivate();
|
||||||
|
}
|
||||||
|
}
|
0
hellofx/gradlew → client/gradlew
vendored
0
hellofx/gradlew → client/gradlew
vendored
@@ -1,27 +0,0 @@
|
|||||||
package client;
|
|
||||||
|
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.fxml.FXML;
|
|
||||||
import javafx.scene.Node;
|
|
||||||
import javafx.stage.Stage;
|
|
||||||
|
|
||||||
public class CreateEventController {
|
|
||||||
|
|
||||||
public CreateEventController(){}
|
|
||||||
|
|
||||||
@FXML
|
|
||||||
public void initialize(){}
|
|
||||||
|
|
||||||
|
|
||||||
@FXML
|
|
||||||
protected void createBtnClick(ActionEvent event){
|
|
||||||
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
|
|
||||||
stage.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
@FXML
|
|
||||||
protected void abortBtnClick(ActionEvent event){
|
|
||||||
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
|
|
||||||
stage.close();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,45 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.*?>
|
|
||||||
<?import javafx.scene.layout.*?>
|
|
||||||
|
|
||||||
<GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1" fx:controller="client.CreateEventController">
|
|
||||||
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints/>
|
|
||||||
<ColumnConstraints/>
|
|
||||||
<ColumnConstraints/>
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
<RowConstraints vgrow="ALWAYS" />
|
|
||||||
</rowConstraints>
|
|
||||||
|
|
||||||
<Label styleClass="mainLabel">Termin anlegen</Label>
|
|
||||||
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="1">Datum:</Label>
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="2">Titel:</Label>
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="3">Zeit:</Label>
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="4">Typ:</Label>
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="5">Priorität:</Label>
|
|
||||||
<Label styleClass="inputLabel" GridPane.rowIndex="6">Ganztägig:</Label>
|
|
||||||
|
|
||||||
<DatePicker GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
|
|
||||||
<TextField GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="400" minWidth="400"/>
|
|
||||||
<DatePicker GridPane.columnIndex="1" GridPane.rowIndex="3" maxWidth="400" minWidth="400"/>
|
|
||||||
<ComboBox GridPane.columnIndex="1" GridPane.rowIndex="4" maxWidth="400" minWidth="400"/>
|
|
||||||
<ComboBox GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200"/>
|
|
||||||
<CheckBox GridPane.columnIndex="1" GridPane.rowIndex="6"/>
|
|
||||||
|
|
||||||
<HBox GridPane.columnIndex="1" GridPane.rowIndex="7" GridPane.columnSpan="2" alignment="CENTER_RIGHT">
|
|
||||||
<Button onAction="#abortBtnClick" maxWidth="150" minWidth="150" >Abbrechen</Button>
|
|
||||||
<Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Anlegen</Button>
|
|
||||||
</HBox>
|
|
||||||
|
|
||||||
</GridPane>
|
|
@@ -1,8 +0,0 @@
|
|||||||
package kaka;
|
|
||||||
|
|
||||||
public class Dings {
|
|
||||||
|
|
||||||
public static int a() {
|
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,136 +0,0 @@
|
|||||||
package res;
|
|
||||||
|
|
||||||
import com.sun.jdi.event.StepEvent;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class Event {
|
|
||||||
|
|
||||||
private int id;
|
|
||||||
private String name;
|
|
||||||
private int priority;
|
|
||||||
private boolean isFullDay;
|
|
||||||
private String start;
|
|
||||||
private String end;
|
|
||||||
|
|
||||||
private LocalDateTime date;
|
|
||||||
|
|
||||||
private int ownerId;
|
|
||||||
private String ownerName;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Constructor for SELECT:
|
|
||||||
e.id AS eid,
|
|
||||||
e.name AS ename,
|
|
||||||
e.start,
|
|
||||||
e.end,
|
|
||||||
e.priority,
|
|
||||||
e.is_full_day,
|
|
||||||
|
|
||||||
ue.date,
|
|
||||||
|
|
||||||
u.id AS uid,
|
|
||||||
u.forename,
|
|
||||||
u.name AS uname
|
|
||||||
*/
|
|
||||||
|
|
||||||
public Event(ArrayList<Object> arr) {
|
|
||||||
id = (int)arr.get(0);
|
|
||||||
name = (String)arr.get(1);
|
|
||||||
start = (String)arr.get(2);
|
|
||||||
end = (String)arr.get(3);
|
|
||||||
priority = (int)arr.get(4);
|
|
||||||
isFullDay = (Boolean)arr.get(5); //((String)arr.get(5)).equals("true");
|
|
||||||
|
|
||||||
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
|
|
||||||
date = LocalDateTime.parse(arr.get(6) + " 00:00", formatter);
|
|
||||||
|
|
||||||
ownerId = (int)arr.get(7);
|
|
||||||
ownerName = arr.get(8) + " " + arr.get(9);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(int id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPriority() {
|
|
||||||
return priority;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPriority(int priority) {
|
|
||||||
this.priority = priority;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFullDay() {
|
|
||||||
return isFullDay;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFullDay(boolean fullDay) {
|
|
||||||
isFullDay = fullDay;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStart() {
|
|
||||||
return start;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStart(String start) {
|
|
||||||
this.start = start;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEnd() {
|
|
||||||
return end;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnd(String end) {
|
|
||||||
this.end = end;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getDate() {
|
|
||||||
return date;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDate(LocalDateTime date) {
|
|
||||||
this.date = date;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getOwnerId() {
|
|
||||||
return ownerId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOwnerId(int ownerId) {
|
|
||||||
this.ownerId = ownerId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOwnerName() {
|
|
||||||
return ownerName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOwnerName(String ownerName) {
|
|
||||||
this.ownerName = ownerName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return name +
|
|
||||||
"\nVon: " + start +
|
|
||||||
"\nBis: " + start +
|
|
||||||
(isFullDay ? "\nDen ganzen Tag lang" : "");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user