Merge remote-tracking branch 'origin/main' into testing
This commit is contained in:
commit
c8eff00e33
|
@ -133,6 +133,10 @@ public class Factory {
|
|||
vBox.setBorder(null);
|
||||
}
|
||||
|
||||
public LanguageConfigurator getLanguageConfigurator() {
|
||||
return languageConfigurator;
|
||||
}
|
||||
|
||||
public enum View {
|
||||
tournamentList("tournamentList/tournamentList.fxml"),
|
||||
participantFormular("participantAddFormular/participantFormular.fxml"),
|
||||
|
|
|
@ -54,7 +54,8 @@ public class FactoryDecorator implements IsObservable{
|
|||
clearMessage(false);
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
printMessageToFooter("Fehler beim lesen der Datei.", true);
|
||||
String msg = factory.getLanguageConfigurator().getSelectedLanguage("IOException");
|
||||
printMessageToFooter(msg, true);
|
||||
} //TODO handle and logging
|
||||
}
|
||||
|
||||
|
@ -169,6 +170,10 @@ public class FactoryDecorator implements IsObservable{
|
|||
factory.resetFooter((BorderPane) pane, error);
|
||||
}
|
||||
|
||||
public LanguageConfigurator getLanguageConfigurator() {
|
||||
return factory.getLanguageConfigurator();
|
||||
}
|
||||
|
||||
public void informListener() {
|
||||
for(IsObserver observer : listener) {
|
||||
observer.update();
|
||||
|
|
|
@ -80,10 +80,52 @@ public class LanguageConfigurator {
|
|||
germanDictionary.put("phoneNumberLabel","Telefon:");
|
||||
englishDictionary.put("phoneNumberLabel","Phone:");
|
||||
germanDictionary.put("birthDateLabel","Geb. Datum:");
|
||||
englishDictionary.put("birthDateLabel","Birthday:");
|
||||
englishDictionary.put("birthDateLabel","Birthdate:");
|
||||
//Game
|
||||
germanDictionary.put("locationLabel","Ort:");
|
||||
englishDictionary.put("locationLabel","Location:");
|
||||
//Error
|
||||
germanDictionary.put("IOException","Fehler beim lesen der Datei");
|
||||
englishDictionary.put("IOException","Could not read file");
|
||||
germanDictionary.put("tournamentExists","Turniername vergeben");
|
||||
englishDictionary.put("tournamentExists","Tournament exists already");
|
||||
germanDictionary.put("invalidName","Name nicht gueltig");
|
||||
englishDictionary.put("invalidName","Name not valid");
|
||||
germanDictionary.put("invalidMode","Modus nicht gueltig");
|
||||
englishDictionary.put("invalidMode","Mode not valid");
|
||||
germanDictionary.put("numberParticipant","Anzahl Spieler muss mindestens 4 sein und eine Potenz von 2");
|
||||
englishDictionary.put("numberParticipant","Number of players must be greater than 3 and power of 2");
|
||||
germanDictionary.put("invalidPhone","Telefonnummer nicht gueltig");
|
||||
englishDictionary.put("invalidPhone","Phonenumber not valid");
|
||||
germanDictionary.put("invalidDate","Geburtsdatum nicht gueltig");
|
||||
englishDictionary.put("invalidDate","Birthdate not valid");
|
||||
germanDictionary.put("participantNotExist","Teilnehmer existiert nicht");
|
||||
englishDictionary.put("participantNotExist","Participant does not exist");
|
||||
germanDictionary.put("placeNotExist","Teilnehmer existiert nicht");
|
||||
englishDictionary.put("placeNotExist","Participant does not exist");
|
||||
|
||||
//SaveMsg
|
||||
germanDictionary.put("save","Zuletzt gespeichert: ");
|
||||
englishDictionary.put("save","Last saved: ");
|
||||
|
||||
//Alert
|
||||
germanDictionary.put("yes","Ja");
|
||||
englishDictionary.put("yes","Yes");
|
||||
germanDictionary.put("no","Nein");
|
||||
englishDictionary.put("no","No");
|
||||
germanDictionary.put("titleDelete","Entfernen");
|
||||
englishDictionary.put("titleDelete","Remove");
|
||||
germanDictionary.put("headerDelete","Turnier entfernen?");
|
||||
englishDictionary.put("headerDelete","Delete Tournament?");
|
||||
germanDictionary.put("contentDelete","Sind Sie sicher, dass sie das Turnier entfernen wollen?\nNach diesem Vorgang kann es nicht wiederhergestellt werden.");
|
||||
englishDictionary.put("contentDelete","Are you shure you want to delete the tournament?\nAfter that there is no way to restore.");
|
||||
|
||||
germanDictionary.put("titleSchedule","Neu erstellen");
|
||||
englishDictionary.put("titleSchedule","Create new");
|
||||
germanDictionary.put("headerSchedule","Spielplan neu erstellen?");
|
||||
englishDictionary.put("headerSchedule","Create new Schedule?");
|
||||
germanDictionary.put("contentSchedule","Sind Sie sicher, dass Sie den Spielplan neu erstellen moechten?\nAlle Spielfortschritte gehen daraufhin verloren!");
|
||||
englishDictionary.put("contentSchedule","Are you shure you want to create a new game schedule?\nAll results will be lost!");
|
||||
}
|
||||
|
||||
public void translateGUI() {
|
||||
|
@ -136,6 +178,18 @@ public class LanguageConfigurator {
|
|||
translateGUI();
|
||||
}
|
||||
|
||||
public String getSelectedLanguage(String getMsg) {
|
||||
String word = "";
|
||||
switch (selectedLanguage) {
|
||||
case GERMAN -> word = germanDictionary.getOrDefault(getMsg,"check Logs");
|
||||
case ENGLISH -> word = englishDictionary.getOrDefault(getMsg,"check Logs");
|
||||
}
|
||||
if (word.equals("check Logs")) {
|
||||
//TODO Log
|
||||
}
|
||||
return word;
|
||||
}
|
||||
|
||||
public enum Language {
|
||||
ENGLISH,GERMAN
|
||||
}
|
||||
|
|
|
@ -61,7 +61,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
public void saveTournament(){
|
||||
executorService.execute(new saveTask());
|
||||
factoryDecorator.clearMessage(false);
|
||||
factoryDecorator.printMessageToFooter("Zuletzt gespeichert: " + new Date().toString(),false);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("save");
|
||||
factoryDecorator.printMessageToFooter(msg + new Date().toString(),false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,7 +72,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
try {
|
||||
if(fileIO.tournamentExists(name)){
|
||||
//TODO:Logger
|
||||
factoryDecorator.printMessageToFooter("Turniername existiert bereits",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("tournamentExists");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
return;
|
||||
}
|
||||
Tournament tournament = new Tournament(name, type);
|
||||
|
@ -81,16 +83,19 @@ public class TournamentDecorator implements IsObservable{
|
|||
} catch (InvalidNameException e) {
|
||||
e.printStackTrace();
|
||||
//TODO: Logger
|
||||
factoryDecorator.printMessageToFooter("Invalider Turniername",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidName");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
} catch (Tournament.InvalidTypeException e) {
|
||||
e.printStackTrace();
|
||||
//TODO: Logger
|
||||
factoryDecorator.printMessageToFooter("Turniermodus nicht moeglich",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidMode");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
//TODO: Logger
|
||||
factoryDecorator.printMessageToFooter("Fehler bei Dateizugriff",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("IOException");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -102,7 +107,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
informListener();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Fehler bei Dateizugriff",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("IOException");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,7 +119,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
factoryDecorator.clearMessage(true);
|
||||
} catch (Tournament.NumberOfParticipantInvalidException e) {
|
||||
e.printStackTrace();
|
||||
factoryDecorator.printMessageToFooter("Anzahl Teilnehmer muss mindestens 4 betragen und eine Potenz von 2 sein.",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("numberParticipant");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
informListener();
|
||||
}
|
||||
|
@ -125,13 +132,16 @@ public class TournamentDecorator implements IsObservable{
|
|||
informListener();
|
||||
} catch (InvalidNameException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Invalider Teilnehmername",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidName");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
} catch (Person.InvalidPhoneNumberException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Invalide Telefonnummer",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidPhone");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
} catch (Player.InvalidDateException e) {
|
||||
e.printStackTrace();
|
||||
factoryDecorator.printMessageToFooter("Ungueltiges Geburtsdatum", true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidDate");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,8 +152,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
informListener();
|
||||
} catch (Tournament.ParticipantNotExistsException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Teilnehmer existiert nicht",true);
|
||||
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("participantNotExist");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,7 +164,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
informListener();
|
||||
} catch (InvalidNameException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Invalider Ortsname",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("invalidName");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,7 +176,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
informListener();
|
||||
} catch (Tournament.PlaceNotExistsException e) {
|
||||
e.printStackTrace(); //TODO handle and logging
|
||||
factoryDecorator.printMessageToFooter("Ort existiert nicht",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("placeNotExist");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,7 +202,8 @@ public class TournamentDecorator implements IsObservable{
|
|||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Platform.runLater(() -> {
|
||||
factoryDecorator.printMessageToFooter("Datenzugriff nicht moeglich",true);
|
||||
String msg = factoryDecorator.getLanguageConfigurator().getSelectedLanguage("IOException");
|
||||
factoryDecorator.printMessageToFooter(msg, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,33 @@
|
|||
package ch.zhaw.projekt2.turnierverwaltung.main.gameScheduleView;
|
||||
|
||||
import ch.zhaw.projekt2.turnierverwaltung.LanguageConfigurator;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ButtonBar;
|
||||
import javafx.scene.control.ButtonType;
|
||||
|
||||
public class AlertNewSchedule extends Alert {
|
||||
private ButtonType yesButton = new ButtonType("Ja", ButtonBar.ButtonData.YES);
|
||||
private ButtonType noButton = new ButtonType("Nein", ButtonBar.ButtonData.NO);
|
||||
private boolean result;
|
||||
private ButtonType yesButton;
|
||||
private ButtonType noButton;
|
||||
private Boolean result;
|
||||
private String yes;
|
||||
private String no;
|
||||
private String titleDelete;
|
||||
private String headerDelete;
|
||||
private String contentDelete;
|
||||
|
||||
public AlertNewSchedule() {
|
||||
super(AlertType.WARNING);
|
||||
setTitle("Neu erstellen");
|
||||
setHeaderText("Spielplan neu erstellen?");
|
||||
setContentText("Sind Sie sicher, dass Sie den Spielplan neu erstellen moechten?\nAlle Spielfortschritte gehen daraufhin verloren!");
|
||||
getButtonTypes().setAll(yesButton,noButton);
|
||||
public AlertNewSchedule(LanguageConfigurator languageConfigurator){
|
||||
super(Alert.AlertType.WARNING);
|
||||
yes = languageConfigurator.getSelectedLanguage("yes");
|
||||
no = languageConfigurator.getSelectedLanguage("no");
|
||||
titleDelete = languageConfigurator.getSelectedLanguage("titleSchedule");
|
||||
headerDelete = languageConfigurator.getSelectedLanguage("headerSchedule");
|
||||
contentDelete = languageConfigurator.getSelectedLanguage("contentSchedule");
|
||||
yesButton = new ButtonType(yes, ButtonBar.ButtonData.YES);
|
||||
noButton = new ButtonType(no, ButtonBar.ButtonData.NO);
|
||||
setTitle(titleDelete);
|
||||
setHeaderText(headerDelete);
|
||||
setContentText(contentDelete);
|
||||
getButtonTypes().setAll(yesButton, noButton);
|
||||
}
|
||||
|
||||
public boolean showAndGetResult() {
|
||||
|
|
|
@ -40,7 +40,7 @@ public class GameScheduleController extends FXController {
|
|||
@FXML
|
||||
void createNewSchedule(ActionEvent event) {
|
||||
if (getTournamentDecorator().getTournament().getGameList().size() > 0) {
|
||||
AlertNewSchedule alert = new AlertNewSchedule();
|
||||
AlertNewSchedule alert = new AlertNewSchedule(getLanguageConfigurator());
|
||||
if (alert.showAndGetResult()) {
|
||||
getTournamentDecorator().createNewGameSchedule();
|
||||
}
|
||||
|
|
|
@ -1,20 +1,32 @@
|
|||
package ch.zhaw.projekt2.turnierverwaltung.main.tournamentList;
|
||||
|
||||
import ch.zhaw.projekt2.turnierverwaltung.LanguageConfigurator;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.ButtonBar;
|
||||
import javafx.scene.control.ButtonType;
|
||||
|
||||
public class AlertDelete extends Alert {
|
||||
ButtonType yesButton = new ButtonType("Ja", ButtonBar.ButtonData.YES);
|
||||
ButtonType noButton = new ButtonType("Nein", ButtonBar.ButtonData.NO);
|
||||
ButtonType yesButton;
|
||||
ButtonType noButton;
|
||||
Boolean result;
|
||||
String yes;
|
||||
String no;
|
||||
String titleDelete;
|
||||
String headerDelete;
|
||||
String contentDelete;
|
||||
|
||||
public AlertDelete(String name){
|
||||
public AlertDelete(LanguageConfigurator languageConfigurator){
|
||||
super(Alert.AlertType.WARNING);
|
||||
setTitle("Entfernen");
|
||||
setHeaderText("Turnier entfernen?");
|
||||
setContentText("Sind Sie sicher, dass sie das Turnier " + name + " entfernen wollen?\n" +
|
||||
"Nach diesem Vorgang kann es nicht wiederhergestellt werden.");
|
||||
yes = languageConfigurator.getSelectedLanguage("yes");
|
||||
no = languageConfigurator.getSelectedLanguage("no");
|
||||
titleDelete = languageConfigurator.getSelectedLanguage("titleDelete");
|
||||
headerDelete = languageConfigurator.getSelectedLanguage("headerDelete");
|
||||
contentDelete = languageConfigurator.getSelectedLanguage("contentDelete");
|
||||
yesButton = new ButtonType(yes, ButtonBar.ButtonData.YES);
|
||||
noButton = new ButtonType(no, ButtonBar.ButtonData.NO);
|
||||
setTitle(titleDelete);
|
||||
setHeaderText(headerDelete);
|
||||
setContentText(contentDelete);
|
||||
getButtonTypes().setAll(yesButton, noButton);
|
||||
}
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ public class TournamentListController extends FXController {
|
|||
@FXML
|
||||
void deleteTournament(ActionEvent event) {
|
||||
FileIO.TournamentFile tournamentFile = tournamentListView.getSelectionModel().getSelectedItems().get(0);
|
||||
AlertDelete alert = new AlertDelete(tournamentFile.toString());
|
||||
AlertDelete alert = new AlertDelete(getLanguageConfigurator());
|
||||
if(alert.showAndGetResult()){
|
||||
getTournamentDecorator().deleteTournament(tournamentFile);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue