From b09929da190d745f2c15efd03e8f6a141ebcd663 Mon Sep 17 00:00:00 2001 From: schrom01 Date: Sun, 1 May 2022 14:22:01 +0200 Subject: [PATCH 1/5] added Participant List to Tournament.java --- .../turnierverwaltung/Participant.java | 1 + .../projekt2/turnierverwaltung/Player.java | 6 +++ .../zhaw/projekt2/turnierverwaltung/Team.java | 5 +++ .../turnierverwaltung/Tournament.java | 41 +++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java index e48f3a1..31c2a39 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java @@ -3,4 +3,5 @@ package ch.zhaw.projekt2.turnierverwaltung; public interface Participant { String getName(); void setName(String name); + boolean equals(Participant participant); } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java index 4273fd1..f922512 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java @@ -18,4 +18,10 @@ public class Player extends Person implements Participant{ public void setDateOfBirth(Date dateOfBirth) { this.dateOfBirth = dateOfBirth; } + + @Override + public boolean equals(Participant participant) { + return getClass().equals(participant.getClass()) && getName().equals(participant.getName()) && + getFirstName().equals(((Player) participant).getFirstName()); + } } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java index 880cc13..23ca660 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java @@ -27,6 +27,11 @@ public class Team implements Participant { this.name = name; } + @Override + public boolean equals(Participant participant) { + return getClass().equals(participant.getClass()) && name.equals(participant.getName()); + } + public Person getContactPerson() { return contactPerson; } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java index e46f505..878985f 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java @@ -4,11 +4,14 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; public class Tournament implements Serializable { private String name; private Type type; + private List participants; @@ -21,6 +24,22 @@ public class Tournament implements Serializable { setName(name); setType(type); + participants = new ArrayList<>(); + } + + public void addParticipant(Participant newParticipant) throws ParticipantExistsException { + for(Participant participant : participants){ + if(participant.equals(newParticipant)){ + throw new ParticipantExistsException("A Participant with the same Name exists already."); + } + } + participants.add(newParticipant); + } + + public void removeParticipant(Participant participant) throws ParticipantNotExistsException { + if(!participants.contains(participant)){ + throw new ParticipantNotExistsException("The given Participant is not part of this Tournament"); + } } public String getName() { @@ -82,5 +101,27 @@ public class Tournament implements Serializable { } + public class ParticipantExistsException extends Exception { + public ParticipantExistsException() { + super(); + } + + public ParticipantExistsException(String errorMessage) { + super(errorMessage); + } + + } + + public class ParticipantNotExistsException extends Exception { + public ParticipantNotExistsException() { + super(); + } + + public ParticipantNotExistsException(String errorMessage) { + super(errorMessage); + } + + } + } -- 2.40.1 From ff6f2bd94edc662015b0b09e820b0e696fedf2fa Mon Sep 17 00:00:00 2001 From: schrom01 Date: Sun, 1 May 2022 15:18:30 +0200 Subject: [PATCH 2/5] created Methods to show and add Players. --- .../projekt2/turnierverwaltung/Factory.java | 2 +- .../zhaw/projekt2/turnierverwaltung/Game.java | 4 ++- .../InvalidNameException.java | 12 +++++++++ .../turnierverwaltung/Participant.java | 4 ++- .../projekt2/turnierverwaltung/Person.java | 25 +++++++++++++++++-- .../projekt2/turnierverwaltung/Player.java | 13 +++++----- .../turnierverwaltung/Tournament.java | 20 ++++++--------- .../TournamentDecorator.java | 20 ++++++++++++++- .../ParticipantFormularController.java | 7 +++--- .../turnierverwaltung/FileIOTest.java | 2 +- 10 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/InvalidNameException.java diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java index c05347b..e59d7d5 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java @@ -21,7 +21,7 @@ public class Factory { } public void setTournament(Tournament tournament) { - this.tournamentDecorator = tournamentDecorator; + this.tournamentDecorator.setTournament(tournament); } public BorderPane loadMainWindow(){ diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Game.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Game.java index bab3390..3df9735 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Game.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Game.java @@ -1,6 +1,8 @@ package ch.zhaw.projekt2.turnierverwaltung; -public class Game { +import java.io.Serializable; + +public class Game implements Serializable { private Participant participant1, Participant2; private int points1, points2; private Location location; diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/InvalidNameException.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/InvalidNameException.java new file mode 100644 index 0000000..d3be2ec --- /dev/null +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/InvalidNameException.java @@ -0,0 +1,12 @@ +package ch.zhaw.projekt2.turnierverwaltung; + +public class InvalidNameException extends Exception { + public InvalidNameException() { + super(); + } + + public InvalidNameException(String errorMessage) { + super(errorMessage); + } + +} \ No newline at end of file diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java index 31c2a39..6f85290 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Participant.java @@ -1,6 +1,8 @@ package ch.zhaw.projekt2.turnierverwaltung; -public interface Participant { +import java.io.Serializable; + +public interface Participant extends Serializable { String getName(); void setName(String name); boolean equals(Participant participant); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java index 1165e7d..ec70ee9 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java @@ -1,11 +1,20 @@ package ch.zhaw.projekt2.turnierverwaltung; -public class Person { +import java.io.Serializable; + +public class Person implements Serializable { private String name; private String firstName; private String phoneNumber; - public Person(String firstName, String name, String phoneNumber){ + public Person(String firstName, String name, String phoneNumber) throws InvalidNameException, InvalidPhoneNumberException { + if(!firstName.matches("^[a-zA-Z][a-zA-Z][-',.][a-zA-Z]{1,20}$")){ + throw new InvalidNameException("The First name is Invalid."); + } else if(!name.matches("^[a-zA-Z][a-zA-Z][-',.][a-zA-Z]{1,20}$")){ + throw new InvalidNameException("The Last name is Invalid"); + } else if(!phoneNumber.matches("[\\+0-9]+")){ + throw new InvalidPhoneNumberException("The entered Phone Number is invalid."); + } setFirstName(firstName); setName(name); setPhoneNumber(phoneNumber); @@ -34,4 +43,16 @@ public class Person { public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } + + public class InvalidPhoneNumberException extends Exception { + public InvalidPhoneNumberException() { + super(); + } + + public InvalidPhoneNumberException(String errorMessage) { + super(errorMessage); + } + + } + } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java index f922512..6f78215 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java @@ -1,22 +1,23 @@ package ch.zhaw.projekt2.turnierverwaltung; -import java.util.Date; +import java.util.GregorianCalendar; public class Player extends Person implements Participant{ - private Date dateOfBirth; + private GregorianCalendar dateOfBirth; - public Player(String firstName, String name, String phoneNumber, Date dateOfBirth){ + public Player(String firstName, String name, String phoneNumber, String dateOfBirth) throws InvalidNameException, InvalidPhoneNumberException { super(firstName, name, phoneNumber); setDateOfBirth(dateOfBirth); } - public Date getDateOfBirth() { + public GregorianCalendar getDateOfBirth() { return dateOfBirth; } - public void setDateOfBirth(Date dateOfBirth) { - this.dateOfBirth = dateOfBirth; + public void setDateOfBirth(String dateOfBirth) { + String[] date = dateOfBirth.split("\\."); + this.dateOfBirth = new GregorianCalendar(Integer.valueOf(date[2]), Integer.valueOf(date[1]), Integer.valueOf(date[0])); } @Override diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java index 878985f..d684b1f 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Tournament.java @@ -3,6 +3,7 @@ package ch.zhaw.projekt2.turnierverwaltung; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import java.io.File; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; @@ -17,7 +18,7 @@ public class Tournament implements Serializable { public Tournament(String name, Type type) throws InvalidNameException, InvalidTypeException { if(!name.matches("[\\w]{1,20}")){ - throw new Tournament.InvalidNameException("Invalid Name entered"); //TODO handle en logging. + throw new InvalidNameException("Invalid Name entered"); //TODO handle en logging. } else if(!Arrays.asList(Type.values()).contains(type)){ throw new InvalidTypeException("Invalid Type selected"); //TODO handle en logging. } @@ -42,6 +43,12 @@ public class Tournament implements Serializable { } } + public ObservableList getParticipants() { + ObservableList participantsObservable = FXCollections.observableArrayList(); + participantsObservable.addAll(participants); + return participantsObservable; + } + public String getName() { return name; } @@ -79,17 +86,6 @@ public class Tournament implements Serializable { } } - public class InvalidNameException extends Exception { - public InvalidNameException() { - super(); - } - - public InvalidNameException(String errorMessage) { - super(errorMessage); - } - - } - public class InvalidTypeException extends Exception { public InvalidTypeException() { super(); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java index a848a4a..b9a1f24 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java @@ -2,6 +2,7 @@ package ch.zhaw.projekt2.turnierverwaltung; import java.io.IOException; import java.util.ArrayList; +import java.util.Date; import java.util.List; public class TournamentDecorator implements IsObservable{ @@ -22,6 +23,10 @@ public class TournamentDecorator implements IsObservable{ this.tournament = tournament; } + public Tournament getTournament() { + return tournament; + } + @Override public void addListener(IsObserver observer) { listener.add(observer); @@ -41,7 +46,7 @@ public class TournamentDecorator implements IsObservable{ Tournament tournament = new Tournament(name, type); fileIO.saveTournament(tournament); informListener(); - } catch (Tournament.InvalidNameException e) { + } catch (InvalidNameException e) { e.printStackTrace(); //TODO handle and logging } catch (Tournament.InvalidTypeException e) { e.printStackTrace(); //TODO handle and logging @@ -59,6 +64,19 @@ public class TournamentDecorator implements IsObservable{ } } + public void addPlayer(String firstName, String name, String phoneNumber, String dateOfBirth){ + try { + tournament.addParticipant(new Player(firstName, name, phoneNumber, dateOfBirth)); + informListener(); + } catch (Tournament.ParticipantExistsException e) { + e.printStackTrace(); //TODO handle and logging + } catch (InvalidNameException e) { + e.printStackTrace(); //TODO handle and logging + } catch (Person.InvalidPhoneNumberException e) { + e.printStackTrace(); //TODO handle and logging + } + } + public void informListener() { for(IsObserver observer : listener) { diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/participantAddFormular/ParticipantFormularController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/participantAddFormular/ParticipantFormularController.java index 08877c1..a6e2c4f 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/participantAddFormular/ParticipantFormularController.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/participantAddFormular/ParticipantFormularController.java @@ -1,6 +1,7 @@ package ch.zhaw.projekt2.turnierverwaltung.main.participantAddFormular; import ch.zhaw.projekt2.turnierverwaltung.FXController; +import ch.zhaw.projekt2.turnierverwaltung.Participant; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; @@ -44,7 +45,7 @@ public class ParticipantFormularController extends FXController { private Label participantListTitle; @FXML - private ListView participantListView; + private ListView participantListView; @FXML private Label participantNameLabel; @@ -63,7 +64,7 @@ public class ParticipantFormularController extends FXController { @FXML void addParticipant(ActionEvent event) { - + getTournamentDecorator().addPlayer(firstNameTextField.getText(), participantNameTextField.getText(), phoneNumberTextField.getText(), birthDateTextField.getText()); } @FXML @@ -78,6 +79,6 @@ public class ParticipantFormularController extends FXController { @Override public void loadContent() { - + participantListView.setItems(getTournamentDecorator().getTournament().getParticipants()); } } diff --git a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FileIOTest.java b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FileIOTest.java index c8b8060..09eeef6 100644 --- a/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FileIOTest.java +++ b/app/src/test/java/ch/zhaw/projekt2/turnierverwaltung/FileIOTest.java @@ -108,7 +108,7 @@ class FileIOTest { } @Test - void saveTournament() throws IOException, Tournament.InvalidNameException, Tournament.InvalidTypeException { + void saveTournament() throws IOException, InvalidNameException, Tournament.InvalidTypeException { Tournament tournament = null; tournament = new Tournament("test1", Tournament.Type.KO); io.saveTournament(tournament); -- 2.40.1 From 4cb743a21aef931f31c35b4c5821f85ed7e41dc0 Mon Sep 17 00:00:00 2001 From: schrom01 Date: Sun, 1 May 2022 17:00:09 +0200 Subject: [PATCH 3/5] implemented functionality to save participants also in file. --- .../projekt2/turnierverwaltung/Factory.java | 1 + .../projekt2/turnierverwaltung/Person.java | 14 ++++++++++--- .../projekt2/turnierverwaltung/Player.java | 3 +-- .../zhaw/projekt2/turnierverwaltung/Team.java | 7 ++++++- .../TournamentDecorator.java | 20 ++++++++++++++++--- .../turnierverwaltung/main/MainWindow.java | 2 +- 6 files changed, 37 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java index e59d7d5..7b329f4 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java @@ -36,6 +36,7 @@ public class Factory { } public void loadTournamentList(BorderPane pane, FactoryDecorator factoryDecorator){ + tournamentDecorator.setTournament(null); TournamentListController controller = (TournamentListController) setCenterOfBorderPane(pane, getClass().getResource("tournamentList/tournamentList.fxml"), factoryDecorator); } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java index ec70ee9..9cf624f 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Person.java @@ -3,16 +3,19 @@ package ch.zhaw.projekt2.turnierverwaltung; import java.io.Serializable; public class Person implements Serializable { + private final String NAME_MATCHING_REGEX = "[a-zA-Z]{1,20}"; + private final String PHONE_MATCHING_REGEX = "[\\+0-9]+"; + private String name; private String firstName; private String phoneNumber; public Person(String firstName, String name, String phoneNumber) throws InvalidNameException, InvalidPhoneNumberException { - if(!firstName.matches("^[a-zA-Z][a-zA-Z][-',.][a-zA-Z]{1,20}$")){ + if(!firstName.matches(NAME_MATCHING_REGEX)){ throw new InvalidNameException("The First name is Invalid."); - } else if(!name.matches("^[a-zA-Z][a-zA-Z][-',.][a-zA-Z]{1,20}$")){ + } else if(!name.matches(NAME_MATCHING_REGEX)){ throw new InvalidNameException("The Last name is Invalid"); - } else if(!phoneNumber.matches("[\\+0-9]+")){ + } else if(!phoneNumber.matches(PHONE_MATCHING_REGEX)){ throw new InvalidPhoneNumberException("The entered Phone Number is invalid."); } setFirstName(firstName); @@ -55,4 +58,9 @@ public class Person implements Serializable { } + @Override + public String toString(){ + return firstName + " " + name; + } + } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java index 6f78215..e1573a9 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java @@ -22,7 +22,6 @@ public class Player extends Person implements Participant{ @Override public boolean equals(Participant participant) { - return getClass().equals(participant.getClass()) && getName().equals(participant.getName()) && - getFirstName().equals(((Player) participant).getFirstName()); + return getClass().equals(participant.getClass()) && toString().toLowerCase().equals(participant.toString().toLowerCase()); } } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java index 23ca660..e815a16 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Team.java @@ -29,7 +29,7 @@ public class Team implements Participant { @Override public boolean equals(Participant participant) { - return getClass().equals(participant.getClass()) && name.equals(participant.getName()); + return getClass().equals(participant.getClass()) && toString().toLowerCase().equals(participant.toString().toLowerCase()); } public Person getContactPerson() { @@ -39,4 +39,9 @@ public class Team implements Participant { public void setContactPerson(Person contactPerson) { this.contactPerson = contactPerson; } + + @Override + public String toString(){ + return name; + } } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java index b9a1f24..47708ca 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java @@ -10,9 +10,16 @@ public class TournamentDecorator implements IsObservable{ private FileIO fileIO; private List listener = new ArrayList<>(); - public TournamentDecorator(FileIO fileIO, Tournament tournament){ - setTournament(tournament); + public TournamentDecorator(FileIO fileIO){ setFileIO(fileIO); + addListener(new IsObserver() { + @Override + public void update() { + if(tournament != null){ + saveTournament(); + } + } + }); } public void setFileIO(FileIO fileIO) { @@ -37,6 +44,14 @@ public class TournamentDecorator implements IsObservable{ listener.remove(observer); } + public void saveTournament(){ + try { + fileIO.saveTournament(tournament); + } catch (IOException e) { + e.printStackTrace(); //TODO handle and logging + } + } + public void createTournament(String name, Tournament.Type type){ if(fileIO.tournamentExists(name)){ System.out.println("Tournament with same name exists already."); @@ -77,7 +92,6 @@ public class TournamentDecorator implements IsObservable{ } } - public void informListener() { for(IsObserver observer : listener) { observer.update(); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java index 14348bd..290b1e6 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/MainWindow.java @@ -16,7 +16,7 @@ import java.io.IOException; public class MainWindow extends Application { private FileIO fileIO = new FileIO(System.getProperty("user.dir") + "/tournierverwaltung_angrynerds"); - private TournamentDecorator tournamentDecorator = new TournamentDecorator(fileIO, null); + private TournamentDecorator tournamentDecorator = new TournamentDecorator(fileIO); private Factory factory = new Factory(fileIO, tournamentDecorator); //TODO make it private! private FactoryDecorator factoryDecorator; -- 2.40.1 From 90fa3a9183b7061505b3709c661b931132ed5902 Mon Sep 17 00:00:00 2001 From: schrom01 Date: Sun, 1 May 2022 18:06:25 +0200 Subject: [PATCH 4/5] changed position of button. --- .../tournamentList/tournamentList.fxml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/tournamentList/tournamentList.fxml b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/tournamentList/tournamentList.fxml index 24c2e89..40bffeb 100644 --- a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/tournamentList/tournamentList.fxml +++ b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/tournamentList/tournamentList.fxml @@ -22,13 +22,19 @@ - + - + -- 2.40.1 From 0db169a77102b6bc3b398195eb139f72cc39677d Mon Sep 17 00:00:00 2001 From: Andrin Fassbind Date: Sun, 1 May 2022 20:26:33 +0200 Subject: [PATCH 5/5] Added GameSchedule View when open tournament GameSchedule.fxml gets loaded --- .../projekt2/turnierverwaltung/Factory.java | 8 ++ .../turnierverwaltung/FactoryDecorator.java | 9 +- .../projekt2/turnierverwaltung/FileIO.java | 2 +- .../main/gameScheduleView/GameController.java | 16 ++++ .../GameScheduleController.java | 24 +++++ .../PlacesFormularController.java | 66 ++++++++++++++ .../gameScheduleView/Game.fxml | 46 ++++++++++ .../gameScheduleView/GameSchedule.fxml | 26 ++++++ .../participantFormular.fxml | 8 +- .../placesAddFormular/PlacesFormular.fxml | 90 +++++++++++++++++++ 10 files changed, 287 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java create mode 100644 app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameScheduleController.java create mode 100644 app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/placesAddFormular/PlacesFormularController.java create mode 100644 app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/Game.fxml create mode 100644 app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/GameSchedule.fxml create mode 100644 app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/placesAddFormular/PlacesFormular.fxml diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java index 7b329f4..c89ff8a 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Factory.java @@ -46,6 +46,14 @@ public class Factory { setCenterOfBorderPane(pane, getClass().getResource("participantAddFormular/participantFormular.fxml"), factoryDecorator); } + public void loadPlacesFormular(BorderPane pane, FactoryDecorator factoryDecorator) { + setCenterOfBorderPane(pane, getClass().getResource("placesAddFormular/PlacesFormular.fxml"), factoryDecorator); + } + + public void loadGameScheduler(BorderPane pane, FactoryDecorator factoryDecorator) { + setCenterOfBorderPane(pane, getClass().getResource("gameScheduleView/GameSchedule.fxml"), factoryDecorator); + } + private FXController setCenterOfBorderPane(BorderPane pane, URL location, FactoryDecorator factoryDecorator) { FXController controller = null; try { diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java index 6278f10..9364f64 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java @@ -44,7 +44,7 @@ public class FactoryDecorator implements IsObservable{ public void openTournament(FileIO.TournamentFile tournamentFile){ try { factory.setTournament(fileIO.loadTournament(tournamentFile)); - factory.loadParticipantFormular((BorderPane) pane, this); //TODO load TournamentView instead of ParticipantFormular? + factory.loadGameScheduler((BorderPane) pane, this); informListener(); } catch (IOException e) { e.printStackTrace(); @@ -53,6 +53,13 @@ public class FactoryDecorator implements IsObservable{ } //TODO handle and logging } + public void openParticipantFormular() { + factory.loadParticipantFormular((BorderPane) pane, this); + } + + public void openPlacesFormular() { + factory.loadPlacesFormular((BorderPane) pane, this); + } public void informListener() { for(IsObserver observer : listener) { diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FileIO.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FileIO.java index 98b6d8b..f708a77 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FileIO.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FileIO.java @@ -107,7 +107,7 @@ public class FileIO { ObjectOutputStream out = null; try { - newSave.createNewFile(); + boolean newFile = newSave.createNewFile(); out = new ObjectOutputStream(new FileOutputStream(newSave)); out.writeObject(tournament); System.out.println("Save File" + tournament.getName() + ".txt being saved to " + saves.getAbsolutePath()); diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java new file mode 100644 index 0000000..836c784 --- /dev/null +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameController.java @@ -0,0 +1,16 @@ +package ch.zhaw.projekt2.turnierverwaltung.main.gameScheduleView; + +import ch.zhaw.projekt2.turnierverwaltung.FXController; +import javafx.fxml.FXML; +import javafx.scene.control.ChoiceBox; + +public class GameController extends FXController { + + @FXML + private ChoiceBox placesChoiceBox; + + @Override + public void loadContent() { + + } +} diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameScheduleController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameScheduleController.java new file mode 100644 index 0000000..ab82179 --- /dev/null +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/gameScheduleView/GameScheduleController.java @@ -0,0 +1,24 @@ +package ch.zhaw.projekt2.turnierverwaltung.main.gameScheduleView; + +import ch.zhaw.projekt2.turnierverwaltung.FXController; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; + +public class GameScheduleController extends FXController { + + @FXML + void openPlacesFormular(ActionEvent event) { + getFactoryDecorator().openPlacesFormular(); + } + + @FXML + void openParticipantFormular(ActionEvent event) { + getFactoryDecorator().openParticipantFormular(); + } + + @Override + public void loadContent() { + + } +} + diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/placesAddFormular/PlacesFormularController.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/placesAddFormular/PlacesFormularController.java new file mode 100644 index 0000000..5edac10 --- /dev/null +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/main/placesAddFormular/PlacesFormularController.java @@ -0,0 +1,66 @@ +package ch.zhaw.projekt2.turnierverwaltung.main.placesAddFormular; + +import ch.zhaw.projekt2.turnierverwaltung.FXController; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ListView; +import javafx.scene.control.TextField; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.GridPane; + +public class PlacesFormularController extends FXController { + + @FXML + private Label AddListTitle; + + @FXML + private Button closeBtn; + + @FXML + private Button deleteBtn; + + @FXML + private GridPane grid; + + @FXML + private ListView locationListView; + + @FXML + private Label locationNameLabel; + + @FXML + private TextField locationNameTextField; + + @FXML + private Label newLocationFormularTitle; + + @FXML + private Button saveBtn; + + @FXML + void changedSelection(MouseEvent event) { + + } + + @FXML + void closeFormular(ActionEvent event) { + + } + + @FXML + void deleteSelectedPlace(ActionEvent event) { + + } + + @FXML + void saveLocation(ActionEvent event) { + + } + + @Override + public void loadContent() { + + } +} diff --git a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/Game.fxml b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/Game.fxml new file mode 100644 index 0000000..83fcb91 --- /dev/null +++ b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/Game.fxml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/GameSchedule.fxml b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/GameSchedule.fxml new file mode 100644 index 0000000..cd88c6a --- /dev/null +++ b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/gameScheduleView/GameSchedule.fxml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/participantAddFormular/participantFormular.fxml b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/participantAddFormular/participantFormular.fxml index caa919e..0de5bb7 100644 --- a/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/participantAddFormular/participantFormular.fxml +++ b/app/src/main/resources/ch/zhaw/projekt2/turnierverwaltung/participantAddFormular/participantFormular.fxml @@ -4,12 +4,8 @@ - - - - @@ -17,7 +13,7 @@ - + @@ -36,7 +32,7 @@ - + + + + + -- 2.40.1