diff --git a/pom.xml b/pom.xml
index 6d000cb..08323dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,11 @@
com.vaadin
vaadin-push
+
+ org.vaadin.teemu
+ switch
+ 3.0.0
+
org.hibernate
hibernate-core
diff --git a/src/main/java/META-INF/persistence.xml b/src/main/java/META-INF/persistence.xml
index 55b1f46..0c77216 100644
--- a/src/main/java/META-INF/persistence.xml
+++ b/src/main/java/META-INF/persistence.xml
@@ -1,6 +1,8 @@
-
+
+ org.hibernate.ejb.HibernatePersistence
+ schema/ClubEvent.hbm.xml
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Adress
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Attendance
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact
@@ -12,5 +14,12 @@
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpaesse
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.StartpassStartrechte
de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Version
+
+
+
+
+
+
+
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java
index 3df18e3..4c227ce 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java
@@ -5,11 +5,14 @@ import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@@ -42,8 +45,10 @@ public class GroupDef implements Serializable {
private String name;
- // bi-directional many-to-one association to Persongroup
- @OneToMany(mappedBy = "groupDef")
+ @ManyToMany(fetch=FetchType.LAZY)
+ @JoinTable (name = "persongroup",
+ joinColumns = { @JoinColumn(name = "group_id") },
+ inverseJoinColumns = { @JoinColumn(name = "person_id") })
private List persongroups;
public GroupDef() {
@@ -116,4 +121,32 @@ public class GroupDef implements Serializable {
return "GroupDef [id=" + id + ", name=" + name + "]";
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + id;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ GroupDef other = (GroupDef) obj;
+ if (id != other.id)
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ return true;
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java
index a0d83db..d045eae 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java
@@ -56,9 +56,12 @@ public class Person implements Serializable {
@OneToMany(mappedBy = "person")
private List contacts;
- // bi-directional many-to-one association to Persongroup
- @OneToMany(mappedBy = "person")
- private List persongroups;
+ // bi-directional many-to-many association to Persongroup
+ @ManyToMany(fetch=FetchType.EAGER)
+ @JoinTable (name = "persongroup",
+ joinColumns = { @JoinColumn(name = "person_id") },
+ inverseJoinColumns = { @JoinColumn(name = "group_id") })
+ private List groups;
// bi-directional many-to-one association to Relative
@OneToMany(mappedBy = "person1Bean")
@@ -72,7 +75,7 @@ public class Person implements Serializable {
@OneToMany(mappedBy = "person")
private List startpaesses;
- @ManyToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY)
+ @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE, CascadeType.DETACH }, fetch = FetchType.LAZY)
@JoinTable(
name = "clubevent_has_person",
joinColumns = { @JoinColumn(name = "person_id") },
@@ -221,26 +224,20 @@ public class Person implements Serializable {
return contact;
}
- public List getPersongroups() {
- return this.persongroups;
+ public List getPersongroups() {
+ return this.groups;
}
- public void setPersongroups(List persongroups) {
- this.persongroups = persongroups;
+ public void setPersongroups(List persongroups) {
+ this.groups = persongroups;
}
- public Persongroup addPersongroup(Persongroup persongroup) {
+ public void addPersongroup(GroupDef persongroup) {
getPersongroups().add(persongroup);
- persongroup.setPerson(this);
-
- return persongroup;
}
- public Persongroup removePersongroup(Persongroup persongroup) {
+ public void removePersongroup(GroupDef persongroup) {
getPersongroups().remove(persongroup);
- persongroup.setPerson(null);
-
- return persongroup;
}
public List getRelatives1() {
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Persongroup.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Persongroup.java
index 2671105..4466b8d 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Persongroup.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Persongroup.java
@@ -88,4 +88,44 @@ public class Persongroup implements Serializable {
this.groupDef = groupDef;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((deleted == null) ? 0 : deleted.hashCode());
+ result = prime * result + ((groupDef == null) ? 0 : groupDef.hashCode());
+ result = prime * result + id;
+ result = prime * result + ((person == null) ? 0 : person.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Persongroup other = (Persongroup) obj;
+ if (deleted == null) {
+ if (other.deleted != null)
+ return false;
+ } else if (!deleted.equals(other.deleted))
+ return false;
+ if (groupDef == null) {
+ if (other.groupDef != null)
+ return false;
+ } else if (!groupDef.equals(other.groupDef))
+ return false;
+ if (id != other.id)
+ return false;
+ if (person == null) {
+ if (other.person != null)
+ return false;
+ } else if (!person.equals(other.person))
+ return false;
+ return true;
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Relative.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Relative.java
index e707166..a241982 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Relative.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Relative.java
@@ -111,4 +111,56 @@ public class Relative implements Serializable {
this.person2Bean = person2Bean;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((deleted == null) ? 0 : deleted.hashCode());
+ result = prime * result + id;
+ result = prime * result + ((person1Bean == null) ? 0 : person1Bean.hashCode());
+ result = prime * result + ((person2Bean == null) ? 0 : person2Bean.hashCode());
+ result = prime * result + ((toPerson1Relation == null) ? 0 : toPerson1Relation.hashCode());
+ result = prime * result + ((toPerson2Relation == null) ? 0 : toPerson2Relation.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Relative other = (Relative) obj;
+ if (deleted == null) {
+ if (other.deleted != null)
+ return false;
+ } else if (!deleted.equals(other.deleted))
+ return false;
+ if (id != other.id)
+ return false;
+ if (person1Bean == null) {
+ if (other.person1Bean != null)
+ return false;
+ } else if (!person1Bean.equals(other.person1Bean))
+ return false;
+ if (person2Bean == null) {
+ if (other.person2Bean != null)
+ return false;
+ } else if (!person2Bean.equals(other.person2Bean))
+ return false;
+ if (toPerson1Relation == null) {
+ if (other.toPerson1Relation != null)
+ return false;
+ } else if (!toPerson1Relation.equals(other.toPerson1Relation))
+ return false;
+ if (toPerson2Relation == null) {
+ if (other.toPerson2Relation != null)
+ return false;
+ } else if (!toPerson2Relation.equals(other.toPerson2Relation))
+ return false;
+ return true;
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Startpaesse.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Startpaesse.java
index 437f97e..1be213c 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Startpaesse.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Startpaesse.java
@@ -113,4 +113,50 @@ public class Startpaesse implements Serializable {
return startpassStartrechte;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((deleted == null) ? 0 : deleted.hashCode());
+ result = prime * result + id;
+ result = prime * result + ((person == null) ? 0 : person.hashCode());
+ result = prime * result + ((startpassNr == null) ? 0 : startpassNr.hashCode());
+ result = prime * result + ((startpassStartrechtes == null) ? 0 : startpassStartrechtes.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Startpaesse other = (Startpaesse) obj;
+ if (deleted == null) {
+ if (other.deleted != null)
+ return false;
+ } else if (!deleted.equals(other.deleted))
+ return false;
+ if (id != other.id)
+ return false;
+ if (person == null) {
+ if (other.person != null)
+ return false;
+ } else if (!person.equals(other.person))
+ return false;
+ if (startpassNr == null) {
+ if (other.startpassNr != null)
+ return false;
+ } else if (!startpassNr.equals(other.startpassNr))
+ return false;
+ if (startpassStartrechtes == null) {
+ if (other.startpassStartrechtes != null)
+ return false;
+ } else if (!startpassStartrechtes.equals(other.startpassStartrechtes))
+ return false;
+ return true;
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java
index 086575c..72d1891 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java
@@ -16,10 +16,8 @@ import com.vaadin.event.selection.SelectionEvent;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.communication.PushMode;
import com.vaadin.spring.annotation.SpringUI;
-import com.vaadin.ui.CheckBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.EventBusiness;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
@@ -27,6 +25,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent;
+import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDialog;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
@Theme("vaadin-clubhelpertheme")
@@ -57,12 +56,13 @@ public class MainUi extends UI {
LOGGER.debug("Starting Vaadin UI with " + getClass().getName());
- List persons = personDao.list();
+ List persons = personDao.listAll();
personGrid = new PersonGrid(groupDao);
personGrid.setItems(persons);
personGrid.setCaption("Personen");
personGrid.onClosedFunction(() -> detailClosed());
personGrid.onPersonSelect(ev -> personSelectionChange(ev));
+ personGrid.onPersonEdit(p -> onPersonEdit(p));
this.calendar = new CalendarComponent();
calendar.setHandler(this::onItemClick);
@@ -74,16 +74,6 @@ public class MainUi extends UI {
setContent(contentLayout);
setSizeFull();
-// final List events = eventBusiness.loadEvents(request);
-// calendar.setItems(events);
-// for (ClubEvent ev : events) {
-// if (ev.getPersons() != null && ev.getPersons().size()>0) {
-// System.out.println(ev.getCaption());
-// for (Person p: ev.getPersons()) {
-// System.out.println("\t" + p.getPrename() + "=" + persons.contains(p));
-// }
-// }
-// }
ExecutorService exec = Executors.newSingleThreadExecutor();
exec.execute(() -> {
@@ -97,11 +87,17 @@ public class MainUi extends UI {
});
exec.shutdown();
+ LOGGER.info("Loaded UI and started fetch of Events");
}
+ private void onPersonEdit(Person p) {
+ PersonEditDialog dlg = new PersonEditDialog(groupDao.listAll(), p, personDao);
+ getUI().addWindow(dlg);
+ }
+
private void personSelectionChange(SelectionEvent ev) {
Set selected = ev.getAllSelectedItems();
- System.out.println("Selection changed to: " + selected);
+ LOGGER.debug("Selection changed to: {}", selected);
eventBusiness.changePersons(selected);
}
@@ -119,8 +115,10 @@ public class MainUi extends UI {
personGrid.setCaption(ev.getCaption());
personGrid.setTitle(ev.getCaption());
- personGrid.setVisible(true);
+ personGrid.setEnabled(false);
personGrid.selectItems(ev.getPersons());
+ personGrid.setVisible(true);
+ personGrid.setEnabled(true);
eventBusiness.setSelected(ev);
}
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java
new file mode 100644
index 0000000..b20fa5f
--- /dev/null
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDialog.java
@@ -0,0 +1,78 @@
+package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.vaadin.teemu.switchui.Switch;
+
+import com.vaadin.data.Binder;
+import com.vaadin.data.HasValue.ValueChangeEvent;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.Window;
+
+import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
+import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef;
+import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
+
+public class PersonEditDialog extends Window {
+
+ private static final long serialVersionUID = 4692332924201974714L;
+ private final TextField textPrename;
+ private final TextField textSureName;
+ private final Person person;
+
+ private final Binder binder;
+
+ public PersonEditDialog(List groups, Person person, PersonDao dao) {
+ this.person = person;
+
+ textPrename = new TextField();
+ textSureName = new TextField();
+ Panel groupPanel = new Panel("Gruppen");
+ VerticalLayout glay = new VerticalLayout();
+ groupPanel.setContent(glay);
+ List selected = new ArrayList<>();
+ for (GroupDef tmp : person.getPersongroups()) {
+ selected.add(tmp);
+ }
+ for (GroupDef g: groups) {
+ Switch sw = new Switch(g.getName());
+ sw.setData(g);
+ sw.setValue(selected.contains(g));
+ sw.addValueChangeListener(ev -> groupChanged(ev));
+ glay.addComponent(sw);
+ }
+
+ binder = new Binder<>();
+ binder.forField(textPrename).bind(Person::getPrename, Person::setPrename);
+ binder.forField(textSureName).bind(Person::getSurname, Person::setSurname);
+ binder.readBean(person);
+
+ Button close = new Button("Schließen");
+ close.addClickListener(ev -> PersonEditDialog.this.close());
+ Button ok = new Button("Speichern");
+ ok.addClickListener(ev -> {
+ binder.writeBeanIfValid(person);
+ dao.update(person);
+ });
+ VerticalLayout layout = new VerticalLayout();
+ layout.addComponents(textPrename, textSureName, groupPanel, close, ok);
+ setContent(layout);
+
+ }
+
+ private void groupChanged(ValueChangeEvent ev) {
+ GroupDef group = (GroupDef) ((Switch)ev.getComponent()).getData();
+ List pg = person.getPersongroups();
+ if (ev.getValue()) {
+ pg.add(group);
+ } else {
+ pg.remove(group);
+ }
+ }
+
+
+}
diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java
index e57e0a5..b96226f 100644
--- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java
+++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java
@@ -3,16 +3,22 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.vaadin.data.HasValue.ValueChangeEvent;
+import com.vaadin.data.provider.ConfigurableFilterDataProvider;
import com.vaadin.data.provider.ListDataProvider;
import com.vaadin.event.selection.SelectionListener;
import com.vaadin.event.selection.SingleSelectionEvent;
+import com.vaadin.icons.VaadinIcons;
+import com.vaadin.server.SerializablePredicate;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
@@ -23,11 +29,11 @@ import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.MultiSelect;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.themes.ValoTheme;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
-import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Persongroup;
public class PersonGrid extends CustomComponent {
@@ -44,8 +50,12 @@ public class PersonGrid extends CustomComponent {
private final TextField textTitle;
- private final ListDataProvider dataProvider;
private ClosedFunction closedFunction = null;
+ private ConfigurableFilterDataProvider> dataProvider;
+ private Boolean selectedOnlyFilter;
+ private Set groupMemberFilter;
+ private List allGroups;
+ private Consumer onPersonEdit;
public PersonGrid(GroupDao groupDao) {
@@ -91,14 +101,59 @@ public class PersonGrid extends CustomComponent {
setCompositionRoot(panel);
}
+ private Button buildDeleteButton(Person p) {
+ Button button = new Button(VaadinIcons.EDIT);
+ button.addStyleName(ValoTheme.BUTTON_SMALL);
+ button.addClickListener(e -> showPersonDetails(p));
+ return button;
+ }
+
+ private void showPersonDetails(Person p) {
+ if (onPersonEdit != null) {
+ onPersonEdit.accept(p);
+ }
+ }
+
public void onClosedFunction(ClosedFunction closedFunction) {
this.closedFunction = closedFunction;
}
private void onSelectedOnly(ValueChangeEvent ev) {
- dataProvider.clearFilters();
- Set selected = grid.getSelectedItems();
- dataProvider.addFilter(p -> selected.contains(p));
+ this.selectedOnlyFilter = ev.getValue();
+ updateFilter();
+ }
+
+ private void updateFilter() {
+ Predicate filter = p -> true;
+ if (selectedOnlyFilter!= null && selectedOnlyFilter.equals(Boolean.TRUE)) {
+ Set selected = grid.getSelectedItems();
+ filter = p -> selected.contains(p);
+ }
+ if (groupMemberFilter != null && groupMemberFilter.isEmpty() == false) {
+ final Set groupIds = new HashSet<>();
+ groupMemberFilter.forEach(gm -> {
+ groupIds.add(gm.getId());
+ });
+
+ filter = filter.and(p -> {
+ {
+ List personGroups = p.getPersongroups();
+ for (GroupDef pg : personGroups) {
+ if (groupIds.contains(pg.getId())) {
+ return true;
+ }
+ }
+ return false;
+ }
+ });
+ }
+
+ setFilter(filter);
+ }
+
+ public void setFilter(Predicate filter) {
+ dataProvider.setFilter(p -> filter.test(p));
+ grid.getDataProvider().refreshAll();
}
public void onPersonSelect(SelectionListener listener) throws UnsupportedOperationException {
@@ -128,17 +183,9 @@ public class PersonGrid extends CustomComponent {
}
private void onGroupSelected(SingleSelectionEvent ev) {
- dataProvider.clearFilters();
- final Set groups = ev.getAllSelectedItems();
- dataProvider.addFilter(p -> {
- List pgs = p.getPersongroups();
- for (Persongroup pg : pgs) {
- if (groups.contains(pg.getGroupDef())) {
- return true;
- }
- }
- return false;
- });
+
+ groupMemberFilter = ev.getAllSelectedItems();
+ updateFilter();
}
public void setTitle(String value) {
@@ -161,6 +208,12 @@ public class PersonGrid extends CustomComponent {
}
public void selectItems(Collection persons) {
+ log.debug("Selecting now: {}" + persons);
selectItems(persons.toArray(new Person[0]));
}
+
+ public void onPersonEdit(Consumer function) {
+ this.onPersonEdit = function;
+ }
+
}
diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml
index 3786a5e..45363c8 100644
--- a/src/main/resources/hibernate.cfg.xml
+++ b/src/main/resources/hibernate.cfg.xml
@@ -17,6 +17,6 @@
org.hibernate.context.internal.ThreadLocalSessionContext
-
+
diff --git a/src/main/resources/schema/ClubEvent.hbm.xml b/src/main/resources/schema/ClubEvent.hbm.xml
index 1d63fc5..4633e4b 100644
--- a/src/main/resources/schema/ClubEvent.hbm.xml
+++ b/src/main/resources/schema/ClubEvent.hbm.xml
@@ -25,7 +25,7 @@
-
+