implemented functionality to save participants also in file.
This commit is contained in:
parent
ff6f2bd94e
commit
4cb743a21a
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,9 +10,16 @@ public class TournamentDecorator implements IsObservable{
|
|||
private FileIO fileIO;
|
||||
private List<IsObserver> 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();
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue