10 Commits

10 changed files with 162 additions and 56 deletions

View File

@@ -1,6 +1,6 @@
package main;
import com.jfoenix.controls.JFXTimePicker;
import com.jfoenix.controls.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
@@ -21,15 +21,15 @@ public class CreateEventController {
@FXML
public GridPane mainGrid;
@FXML
public DatePicker datePickerDate;
public JFXDatePicker datePickerDate;
@FXML
public TextField textName;
public JFXTextField textName;
@FXML
public ComboBox<String> ComboBoxPriotity;
public JFXComboBox<String> ComboBoxPriotity;
@FXML
public CheckBox checkBoxIsFullDay;
public JFXToggleButton toggleBtnIsFullDay;
@FXML
public CheckBox checkBoxIsPrivate;
public JFXToggleButton toggleBtnIsPrivate;
@FXML
public Label labelError;
@FXML
@@ -45,20 +45,11 @@ public class CreateEventController {
public void initialize() {
StringConverter<LocalTime> defaultConverter = new LocalTimeStringConverter(FormatStyle.SHORT, Locale.GERMANY);
timeStart.set24HourView(true);
timeStart.setConverter(defaultConverter);
JFXTimePicker timePickerStart = new JFXTimePicker();
timeStart = timePickerStart;
timePickerStart.set24HourView(true);
timePickerStart.setConverter(defaultConverter);
timePickerStart.getStyleClass().add("timePicker");
mainGrid.add(timePickerStart, 1 , 3);
JFXTimePicker timePickerEnd = new JFXTimePicker();
timeEnd = timePickerEnd;
timePickerEnd.set24HourView(true);
timePickerEnd.setConverter(defaultConverter);
timePickerEnd.getStyleClass().add("timePicker");
mainGrid.add(timePickerEnd, 1 , 4);
timeEnd.set24HourView(true);
timeEnd.setConverter(defaultConverter);
}
@@ -72,8 +63,8 @@ public class CreateEventController {
Event event = new Event(
textName.getText(),
ComboBoxPriotity.getSelectionModel().getSelectedIndex(),
checkBoxIsFullDay.isSelected(),
checkBoxIsPrivate.isSelected(),
toggleBtnIsFullDay.isSelected(),
toggleBtnIsPrivate.isSelected(),
timeStart.getValue().toString(),
timeEnd.getValue().toString(),
datePickerDate.getValue().atStartOfDay(),

View File

@@ -1,15 +1,24 @@
package main;
import com.jfoenix.svg.SVGGlyph;
import com.jfoenix.svg.SVGGlyphLoader;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Bounds;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import customUI.Button;
import customUI.Label;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.SVGPath;
import javafx.stage.Modality;
import javafx.stage.Stage;
import res.DataController;
@@ -139,15 +148,43 @@ public class MainController {
HBox btnHBox = new HBox();
btnHBox.setAlignment(Pos.BOTTOM_RIGHT);
Button deleteBtn = new Button();
deleteBtn.setTextValue(" X ");
Group svgDel = new Group(
createPath("M0 0h24v24H0z", "transparent", "transparent"),
createPath("M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z",
"white", "lightgray")
);
Bounds boundsDel = svgDel.getBoundsInParent();
double scaleDel = Math.min(20/boundsDel.getWidth(), 20 / boundsDel.getHeight());
svgDel.setScaleX(scaleDel);
svgDel.setScaleY(scaleDel);
deleteBtn.setGraphic(svgDel);
deleteBtn.setMaxSize(24, 24);
deleteBtn.setMinSize(24, 24);
deleteBtn.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
deleteBtn.getStyleClass().add("deleteEventBtn");
deleteBtn.setOnAction(e -> {
DataController dataController = new DataController();
dataController.deleteEvent(event.getId());
updateEvents();
});
Button editBtn = new Button();
editBtn.setTextValue("edit");
Group svgEdit = new Group(
createPath("M0 0h24v24H0z", "transparent", "transparent"),
createPath("M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",
"white", "lightgray")
);
Bounds boundsEdit = svgEdit.getBoundsInParent();
double scaleEdit = Math.min(20/boundsEdit.getWidth(), 20 / boundsEdit.getHeight());
svgEdit.setScaleX(scaleEdit);
svgEdit.setScaleY(scaleEdit);
editBtn.setGraphic(svgEdit);
editBtn.setMaxSize(24, 24);
editBtn.setMinSize(24, 24);
editBtn.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
editBtn.getStyleClass().add("editEventBtn");
editBtn.setOnAction(event1 -> {
try {
FXMLLoader fxmlLoader = new FXMLLoader(
@@ -226,4 +263,12 @@ public class MainController {
LabelMonth.setText(dateFormatter.format(weekStartDateTime));
}
private static SVGPath createPath(String d, String fill, String hoverFill) {
SVGPath path = new SVGPath();
path.getStyleClass().add("svg");
path.setContent(d);
path.setStyle("-fill:" + fill + ";-hover-fill:"+hoverFill+';');
return path;
}
}

View File

@@ -1,18 +1,18 @@
package users;
import com.jfoenix.controls.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import res.DataController;
public class LoginController {
@FXML
public TextField userField;
public JFXTextField userField;
@FXML
public TextField passField;
public JFXPasswordField passField;
@FXML
public Label userErrLabel;
@FXML

View File

@@ -28,10 +28,16 @@ Label{
.inputField{
-fx-padding: 10px;
-fx-background-color: white;
}
.mainButton{
-fx-font-weight: bold;
-fx-background-color: white;
}
JFXButton{
-fx-background-color: white;
}
#labelError{
@@ -45,7 +51,14 @@ Label{
-fx-font-size: 16px;
}
.inputDate{
-fx-background-color: white;
}
.comboBox{
-fx-background-color: white;
}
.timePicker{
-fx-background-color: white;
-fx-max-width: 200px;
}

View File

@@ -5,6 +5,8 @@
<?import javafx.collections.FXCollections?>
<?import java.lang.String?>
<?import com.jfoenix.controls.*?>
<GridPane fx:id="mainGrid" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="main.CreateEventController">
@@ -36,10 +38,12 @@
<Label styleClass="inputLabel" GridPane.rowIndex="6">Ganztägig:</Label>
<Label styleClass="inputLabel" GridPane.rowIndex="7">Privat:</Label>
<TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
<DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/>
<JFXTextField styleClass="inputField" fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
<JFXDatePicker styleClass="inputDate" fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/>
<JFXTimePicker styleClass="timePicker" fx:id="timeStart" GridPane.columnIndex="1" GridPane.rowIndex="3" maxWidth="200" minWidth="200"/>
<JFXTimePicker styleClass="timePicker" fx:id="timeEnd" GridPane.columnIndex="1" GridPane.rowIndex="4" maxWidth="200" minWidth="200"/>
<ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200">
<JFXComboBox fx:id="ComboBoxPriotity" styleClass="comboBox" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="gering"/>
@@ -47,14 +51,14 @@
<String fx:value="hoch"/>
</FXCollections>
</items>
</ComboBox>
<CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/>
<CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/>
</JFXComboBox>
<JFXToggleButton styleClass="checkbox" fx:id="toggleBtnIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/>
<JFXToggleButton styleClass="checkbox" fx:id="toggleBtnIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/>
<Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="8"/>
<HBox GridPane.columnIndex="1" GridPane.rowIndex="9" 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>
<JFXButton onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</JFXButton>
<JFXButton styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Anlegen</JFXButton>
</HBox>
</GridPane>

View File

@@ -2,8 +2,10 @@
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.collections.FXCollections?>
<?import java.lang.String?>
<?import com.jfoenix.controls.*?>
<GridPane fx:id="mainGrid" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="main.CreateEventController">
@@ -36,10 +38,12 @@
<Label styleClass="inputLabel" GridPane.rowIndex="6">Ganztägig:</Label>
<Label styleClass="inputLabel" GridPane.rowIndex="7">Privat:</Label>
<TextField fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
<DatePicker fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/>
<JFXTextField styleClass="inputField" fx:id="textName" GridPane.columnIndex="1" GridPane.rowIndex="1" maxWidth="400" minWidth="400"/>
<JFXDatePicker styleClass="inputDate" fx:id="datePickerDate" GridPane.columnIndex="1" GridPane.rowIndex="2" maxWidth="200" minWidth="200"/>
<JFXTimePicker styleClass="timePicker" fx:id="timeStart" GridPane.columnIndex="1" GridPane.rowIndex="3" maxWidth="200" minWidth="200"/>
<JFXTimePicker styleClass="timePicker" fx:id="timeEnd" GridPane.columnIndex="1" GridPane.rowIndex="4" maxWidth="200" minWidth="200"/>
<ComboBox fx:id="ComboBoxPriotity" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200">
<JFXComboBox fx:id="ComboBoxPriotity" styleClass="comboBox" GridPane.columnIndex="1" GridPane.rowIndex="5" maxWidth="200" minWidth="200">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="gering"/>
@@ -47,14 +51,14 @@
<String fx:value="hoch"/>
</FXCollections>
</items>
</ComboBox>
<CheckBox fx:id="checkBoxIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/>
<CheckBox fx:id="checkBoxIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/>
</JFXComboBox>
<JFXToggleButton styleClass="checkbox" fx:id="toggleBtnIsFullDay" GridPane.columnIndex="1" GridPane.rowIndex="6"/>
<JFXToggleButton styleClass="checkbox" fx:id="toggleBtnIsPrivate" GridPane.columnIndex="1" GridPane.rowIndex="7"/>
<Label fx:id="labelError" GridPane.columnIndex="1" GridPane.rowIndex="8"/>
<HBox GridPane.columnIndex="1" GridPane.rowIndex="9" GridPane.columnSpan="2" alignment="CENTER_RIGHT">
<Button onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</Button>
<Button styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Speichern</Button>
<JFXButton onAction="#abortBtnClick" maxWidth="150" minWidth="150">Abbrechen</JFXButton>
<JFXButton styleClass="mainButton" onAction="#createBtnClick" maxWidth="150" minWidth="150">Speichern</JFXButton>
</HBox>
</GridPane>

View File

@@ -72,3 +72,33 @@ Label{
-fx-max-height: 40px;
}
.navBtn{
-fx-background-color: white;
}
.editEventBtn{
-fx-background-color: transparent;
-fx-border-color: transparent;
}
.editEventBtn .svg {
-fx-fill: -fill;
}
.editEventBtn:hover .svg {
-fx-fill: -hover-fill;
}
.deleteEventBtn{
-fx-background-color: transparent;
-fx-border-color: transparent;
}
.deleteEventBtn .svg {
-fx-fill: -fill;
}
.deleteEventBtn:hover .svg {
-fx-fill: -hover-fill;
}

View File

@@ -4,6 +4,7 @@
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import com.jfoenix.controls.*?>
<GridPane style="-fx-background-color: #424242;" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="main.MainController">
@@ -19,15 +20,15 @@
<ImageView fitHeight="50.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true">
</ImageView>
<Button onAction="#onAddBtnClick" styleClass="main-btn">
<JFXButton onAction="#onAddBtnClick" styleClass="main-btn">
ADD
</Button>
<Button onAction="#onAddBtnClick" styleClass="main-btn">
</JFXButton>
<JFXButton onAction="#onAddBtnClick" styleClass="main-btn">
ADD
</Button>
<Button onAction="#onAddBtnClick" styleClass="main-btn">
</JFXButton>
<JFXButton onAction="#onAddBtnClick" styleClass="main-btn">
ADD
</Button>
</JFXButton>
</VBox>
<GridPane prefHeight="200.0" prefWidth="222.0" GridPane.columnIndex="1" GridPane.rowIndex="0">
<columnConstraints>
@@ -48,9 +49,9 @@
<Insets left="5"/>
</padding>
</Label>
<Button onAction="#onBackClick" GridPane.columnIndex="1" maxHeight="1.7976931348623157E308">zurück</Button>
<Button onAction="#onTodayClick" GridPane.columnIndex="2" maxHeight="1.7976931348623157E308">heute</Button>
<Button onAction="#onNextClick" GridPane.columnIndex="3" maxHeight="1.7976931348623157E308">weiter</Button>
<JFXButton styleClass="navBtn" onAction="#onBackClick" GridPane.columnIndex="1" maxHeight="1.7976931348623157E308">zurück</JFXButton>
<JFXButton styleClass="navBtn" onAction="#onTodayClick" GridPane.columnIndex="2" maxHeight="1.7976931348623157E308">heute</JFXButton>
<JFXButton styleClass="navBtn" onAction="#onNextClick" GridPane.columnIndex="3" maxHeight="1.7976931348623157E308">weiter</JFXButton>
<GridPane fx:id="calendarGrid" gridLinesVisible="true" styleClass="gridCalendar" GridPane.columnSpan="4"
GridPane.columnIndex="0" GridPane.rowIndex="1">

View File

@@ -34,4 +34,20 @@ Label{
-fx-max-height: 400px;
-fx-wrap-text: true;
-fx-font-size: 16px;
}
.userField{
-fx-background-color: white;
}
.passField{
-fx-background-color: white;
}
.quitBtn{
-fx-background-color: white;
}
.loginBtn{
-fx-background-color: white;
}

View File

@@ -2,6 +2,8 @@
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import com.jfoenix.controls.*?>
<GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="users.LoginController">
<columnConstraints>
@@ -19,14 +21,14 @@
<Label GridPane.columnIndex="1">Anmelden</Label>
<Label GridPane.rowIndex="1">Username</Label>
<TextField GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="userField"/>
<JFXTextField styleClass="userField" GridPane.columnIndex="1" GridPane.rowIndex="1" fx:id="userField"/>
<Label styleClass="errorLbl" GridPane.columnIndex="2" GridPane.rowIndex="1" fx:id="userErrLabel"/>
<Label GridPane.rowIndex="2">Paswort</Label>
<PasswordField GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="passField"/>
<JFXPasswordField styleClass="passField" GridPane.columnIndex="1" GridPane.rowIndex="2" fx:id="passField"/>
<Label styleClass="errorLbl" GridPane.columnIndex="2" GridPane.rowIndex="2" fx:id="passErrLabel"/>
<Button onAction="#abortBtnClick" GridPane.columnIndex="1" GridPane.rowIndex="3">Beenden</Button>
<Button onAction="#login" GridPane.columnIndex="2" GridPane.rowIndex="3">Anmelden</Button>
<JFXButton styleClass="quitBtn" onAction="#abortBtnClick" GridPane.columnIndex="1" GridPane.rowIndex="3">Beenden</JFXButton>
<JFXButton styleClass="loginBtn" onAction="#login" GridPane.columnIndex="2" GridPane.rowIndex="3">Anmelden</JFXButton>
</GridPane>