-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRunner.java
85 lines (71 loc) · 2.76 KB
/
Runner.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import java.util.logging.Logger;
import java.util.prefs.Preferences;
import com.google.gson.JsonIOException;
import com.google.gson.JsonSyntaxException;
import de.torsten.kickertool.controller.GameController;
import de.torsten.kickertool.controller.TreeOwner;
import de.torsten.kickertool.controller.handler.ImportDypHandler;
import de.torsten.kickertool.database.DatabaseConnector;
import de.torsten.kickertool.model.Game;
import de.torsten.kickertool.model.Player;
import de.torsten.kickertool.view.GenericTreeItem;
import de.torsten.kickertool.view.ViewCreator;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TreeView;
import javafx.stage.Stage;
/************************************************
* copyright (c) energy & meteo systems GmbH, 2016
*
* mail@energymeteo.com www.energymeteo.com
************************************************/
@SuppressWarnings("nls")
public class Runner extends Application implements TreeOwner {
static final Logger LOGGER = Logger.getLogger(Runner.class.getSimpleName());
private ObservableList<Player> existingPlayers;
private Collection<Game> games = new HashSet<>();
private TreeView<GenericTreeItem<?>> tree;
private Stage primaryStage;
private ViewCreator creator;
public static void main(String[] args) throws JsonSyntaxException, JsonIOException, IOException {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
games = FXCollections.observableArrayList(loadAllGames());
games.forEach(Game::init);
GameController gameController = new GameController();
games.forEach(gameController::calculatePoints);
Collection<Player> loadAllPlayers = loadAllPlayers();
existingPlayers = FXCollections.observableArrayList(loadAllPlayers);
this.primaryStage = stage;
creator = new ViewCreator(tree, existingPlayers, games, getUserPrefs());
creator.setImportDypHandler(new ImportDypHandler(stage, creator, this));
creator.createView(stage);
}
private Collection<Player> loadAllPlayers() {
return new DatabaseConnector().loadAllPlayers();
}
private Collection<Game> loadAllGames() {
return new DatabaseConnector().loadAllGames();
}
@Override
public void stop() {
Preferences userPrefs = getUserPrefs();
userPrefs.putDouble("stage.x", primaryStage.getX());
userPrefs.putDouble("stage.y", primaryStage.getY());
userPrefs.putDouble("stage.width", primaryStage.getWidth());
userPrefs.putDouble("stage.height", primaryStage.getHeight());
}
private Preferences getUserPrefs() {
return Preferences.userNodeForPackage(getClass());
}
@Override
public void refreshRoot() {
tree.setRoot(creator.createTreeRoot());
}
}