Compare commits

..
Author SHA1 Message Date
schrom01 53cf3bdacc rmeoved tournament Type GROUPS from Tournament Enum Type. 2022-05-13 15:58:58 +02:00
schrom01 c862492be3 fixes in Layout
solved #34
2022-05-13 15:57:39 +02:00
fassbandandGitHub Enterprise a6f14b94bd Merge pull request #47 from PM2-IT21bWIN-ruiz-mach-krea/fix_places_are_deleted_
fixed places are deleted.
2022-05-13 15:38:42 +02:00
Roman SchenkandGitHub Enterprise d3472017bb Merge pull request #46 from PM2-IT21bWIN-ruiz-mach-krea/closeImplementation
Make Application close properly
2022-05-13 15:37:31 +02:00
Andrin Fassbind bdb34fde31 Make Application close properly
If exception while closing there is a proper log
2022-05-13 15:35:41 +02:00
5 changed files with 50 additions and 22 deletions
@@ -252,7 +252,7 @@ public class Tournament implements Serializable {
* (In the Prototype only the KO-System has full functionality
*/
public enum Type {
KO("KO-System"), GROUPS("Gruppenspiele");
KO("KO-System"); //GROUPS("Gruppenspiele"); //Type GROUPS is not implemented in this prototype.
private String name;
@@ -8,6 +8,7 @@ import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class TournamentDecorator implements IsObservable{
private Tournament tournament;
@@ -175,6 +176,11 @@ public class TournamentDecorator implements IsObservable{
}
}
public void closeApplication() throws InterruptedException {
executorService.shutdown();
executorService.awaitTermination(2000, TimeUnit.MILLISECONDS);
}
private class saveTask implements Runnable {
@Override
@@ -5,35 +5,48 @@ import ch.zhaw.projekt2.turnierverwaltung.FactoryDecorator;
import ch.zhaw.projekt2.turnierverwaltung.FileIO;
import ch.zhaw.projekt2.turnierverwaltung.TournamentDecorator;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import java.util.logging.Logger;
public class MainWindow extends Application {
private FileIO fileIO = new FileIO(System.getProperty("user.dir") + System.getProperty("file.separator") + "tournierverwaltung_angrynerds");
private FactoryDecorator factoryDecorator;
private TournamentDecorator tournamentDecorator = new TournamentDecorator(fileIO);
private Factory factory = new Factory(fileIO, tournamentDecorator); //TODO make it private!
private Factory factory = new Factory(fileIO, tournamentDecorator);
private static final Logger logger = Logger.getLogger(FileIO.class.getCanonicalName());
@Override
public void start(Stage primaryStage) throws Exception {
BorderPane pane = factory.loadMainWindow();
factoryDecorator = new FactoryDecorator(fileIO, factory, pane);
factory.loadAllViews(factoryDecorator, pane);
tournamentDecorator.setFactoryDecorator(factoryDecorator);
factoryDecorator.openTournamentList();
Scene scene = new Scene(pane);
primaryStage.setScene(scene);
primaryStage.setMinHeight(600);
primaryStage.setMinWidth(800);
primaryStage.setMaximized(true);
primaryStage.setResizable(true);
primaryStage.setFullScreen(false);
primaryStage.show();
}
@Override
public void stop() {
try {
super.stop();
tournamentDecorator.closeApplication();
} catch (Exception e) {
logger.warning("Exception while closing application");
}
}
}
@@ -1,6 +1,7 @@
package ch.zhaw.projekt2.turnierverwaltung.main;
import ch.zhaw.projekt2.turnierverwaltung.FXController;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
@@ -13,7 +14,7 @@ public class MainWindowController extends FXController {
@FXML
void closeApplication(ActionEvent event) {
Platform.exit();
}
@Override
@@ -1,15 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.2" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.projekt2.turnierverwaltung.main.gameScheduleView.GameScheduleController">
<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.projekt2.turnierverwaltung.main.gameScheduleView.GameScheduleController">
<center>
<ScrollPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<content>
<HBox fx:id="hBoxCenter" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="324.0" prefWidth="600.0" />
</content>
</ScrollPane>
</center>
<top>
<HBox alignment="TOP_RIGHT" prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<CheckBox fx:id="treeView" mnemonicParsing="false" onAction="#changeView" selected="true" text="Baumansicht" />
<Button fx:id="createScheduleBtn" mnemonicParsing="false" onAction="#createNewSchedule" text="Create New Game Schedule">
<CheckBox fx:id="treeView" mnemonicParsing="false" onAction="#changeView" selected="true" text="Baumansicht">
<HBox.margin>
<Insets left="20.0" right="20.0" />
</HBox.margin>
</CheckBox>
<Button fx:id="createScheduleBtn" mnemonicParsing="false" onAction="#createNewSchedule" text="Spielplan neu erstellen">
<HBox.margin>
<Insets right="20.0" />
</HBox.margin>
@@ -24,18 +38,12 @@
<Insets right="20.0" />
</HBox.margin>
</Button>
<Button fx:id="closeTournamentBtn" layoutX="470.0" layoutY="10.0" mnemonicParsing="false" onAction="#closeTournament" text="Close Tournament">
<Button fx:id="closeTournamentBtn" mnemonicParsing="false" onAction="#closeTournament" text="Close Tournament">
<HBox.margin>
<Insets right="20.0" />
</HBox.margin></Button>
</HBox.margin>
</Button>
</children>
</HBox>
</top>
<center>
<ScrollPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<content>
<HBox fx:id="hBoxCenter" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="324.0" prefWidth="600.0" />
</content>
</ScrollPane>
</center>
</BorderPane>