Game schedule #14
|
@ -36,6 +36,7 @@ public class Factory {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadTournamentList(BorderPane pane, FactoryDecorator factoryDecorator){
|
public void loadTournamentList(BorderPane pane, FactoryDecorator factoryDecorator){
|
||||||
|
tournamentDecorator.setTournament(null);
|
||||||
TournamentListController controller = (TournamentListController) setCenterOfBorderPane(pane, getClass().getResource("tournamentList/tournamentList.fxml"), factoryDecorator);
|
TournamentListController controller = (TournamentListController) setCenterOfBorderPane(pane, getClass().getResource("tournamentList/tournamentList.fxml"), factoryDecorator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,19 @@ package ch.zhaw.projekt2.turnierverwaltung;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
public class Person implements 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 name;
|
||||||
private String firstName;
|
private String firstName;
|
||||||
private String phoneNumber;
|
private String phoneNumber;
|
||||||
|
|
||||||
public Person(String firstName, String name, String phoneNumber) throws InvalidNameException, InvalidPhoneNumberException {
|
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.");
|
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");
|
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.");
|
throw new InvalidPhoneNumberException("The entered Phone Number is invalid.");
|
||||||
}
|
}
|
||||||
setFirstName(firstName);
|
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
|
@Override
|
||||||
public boolean equals(Participant participant) {
|
public boolean equals(Participant participant) {
|
||||||
return getClass().equals(participant.getClass()) && getName().equals(participant.getName()) &&
|
return getClass().equals(participant.getClass()) && toString().toLowerCase().equals(participant.toString().toLowerCase());
|
||||||
getFirstName().equals(((Player) participant).getFirstName());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class Team implements Participant {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Participant participant) {
|
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() {
|
public Person getContactPerson() {
|
||||||
|
@ -39,4 +39,9 @@ public class Team implements Participant {
|
||||||
public void setContactPerson(Person contactPerson) {
|
public void setContactPerson(Person contactPerson) {
|
||||||
this.contactPerson = contactPerson;
|
this.contactPerson = contactPerson;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
return name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,16 @@ public class TournamentDecorator implements IsObservable{
|
||||||
private FileIO fileIO;
|
private FileIO fileIO;
|
||||||
private List<IsObserver> listener = new ArrayList<>();
|
private List<IsObserver> listener = new ArrayList<>();
|
||||||
|
|
||||||
public TournamentDecorator(FileIO fileIO, Tournament tournament){
|
public TournamentDecorator(FileIO fileIO){
|
||||||
setTournament(tournament);
|
|
||||||
setFileIO(fileIO);
|
setFileIO(fileIO);
|
||||||
|
addListener(new IsObserver() {
|
||||||
|
@Override
|
||||||
|
public void update() {
|
||||||
|
if(tournament != null){
|
||||||
|
saveTournament();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFileIO(FileIO fileIO) {
|
public void setFileIO(FileIO fileIO) {
|
||||||
|
@ -37,6 +44,14 @@ public class TournamentDecorator implements IsObservable{
|
||||||
listener.remove(observer);
|
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){
|
public void createTournament(String name, Tournament.Type type){
|
||||||
if(fileIO.tournamentExists(name)){
|
if(fileIO.tournamentExists(name)){
|
||||||
System.out.println("Tournament with same name exists already.");
|
System.out.println("Tournament with same name exists already.");
|
||||||
|
@ -77,7 +92,6 @@ public class TournamentDecorator implements IsObservable{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void informListener() {
|
public void informListener() {
|
||||||
for(IsObserver observer : listener) {
|
for(IsObserver observer : listener) {
|
||||||
observer.update();
|
observer.update();
|
||||||
|
|
|
@ -16,7 +16,7 @@ import java.io.IOException;
|
||||||
|
|
||||||
public class MainWindow extends Application {
|
public class MainWindow extends Application {
|
||||||
private FileIO fileIO = new FileIO(System.getProperty("user.dir") + "/tournierverwaltung_angrynerds");
|
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 Factory factory = new Factory(fileIO, tournamentDecorator); //TODO make it private!
|
||||||
private FactoryDecorator factoryDecorator;
|
private FactoryDecorator factoryDecorator;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue