Startpass in person table optional edit button.

master
Markus Kreth 7 years ago
parent 8bcc5b74f6
commit 82902993cc
  1. 1
      .settings/org.eclipse.core.resources.prefs
  2. 2
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Person.java
  3. 27
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/Startpass.java
  4. 11
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/HeadView.java
  5. 1
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java
  6. 8
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java
  7. 34
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java
  8. 13
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java
  9. 2
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/SingleEventView.java

@ -5,5 +5,4 @@ encoding//src/main/resources/jasper/calendar_month.jrxml=UTF-8
encoding//src/main/resources/jasper/calendar_year.jrxml=UTF-8 encoding//src/main/resources/jasper/calendar_year.jrxml=UTF-8
encoding//src/test/java=UTF-8 encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8 encoding//src/test/resources=UTF-8
encoding//target/generated-resources/gwt=UTF-8
encoding/<project>=UTF-8 encoding/<project>=UTF-8

@ -47,7 +47,7 @@ public class Person extends BaseEntity implements Serializable {
private String username; private String username;
@OneToOne @OneToOne(mappedBy = "person")
private Startpass startpass; private Startpass startpass;
// bi-directional many-to-one association to Adress // bi-directional many-to-one association to Adress

@ -7,36 +7,36 @@ import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Inheritance; import javax.persistence.Inheritance;
import javax.persistence.InheritanceType; import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne; import javax.persistence.JoinColumn;
import javax.persistence.NamedQuery; import javax.persistence.NamedQuery;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
/** /**
* The persistent class for the startpaesse database table. * The persistent class for the startpaesse database table.
* *
*/ */
@Entity @Entity
@Table(name="startpaesse") @Table(name = "startpaesse")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQuery(name="Startpaesse.findAll", query="SELECT s FROM Startpaesse s") @NamedQuery(name = "Startpass.findAll", query = "SELECT s FROM Startpass s")
public class Startpaesse extends BaseEntity implements Serializable { public class Startpass extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1464510869007022357L; private static final long serialVersionUID = 1464510869007022357L;
@Column(name="startpass_nr") @Column(name = "startpass_nr")
private String startpassNr; private String startpassNr;
//bi-directional many-to-one association to Person @OneToOne
@ManyToOne @JoinColumn(name = "person_id")
private Person person; private Person person;
//bi-directional many-to-one association to StartpassStartrechte // bi-directional many-to-one association to StartpassStartrechte
@OneToMany(mappedBy="startpaesse") @OneToMany(mappedBy = "startpaesse")
private List<StartpassStartrechte> startpassStartrechtes; private List<StartpassStartrechte> startpassStartrechtes;
public Startpaesse() { public Startpass() {
} }
public String getStartpassNr() { public String getStartpassNr() {
@ -77,4 +77,9 @@ public class Startpaesse extends BaseEntity implements Serializable {
return startpassStartrechte; return startpassStartrechte;
} }
@Override
public String toString() {
return "Startpass [startpassNr=" + startpassNr + "]";
}
} }

@ -32,6 +32,7 @@ import com.vaadin.ui.Notification;
import com.vaadin.ui.Window; import com.vaadin.ui.Window;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper.CalendarCreator; import de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper.CalendarCreator;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider;
import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRException;
@ -90,12 +91,20 @@ public class HeadView extends HorizontalLayout {
private void openPopupMenu(ClickEvent ev) { private void openPopupMenu(ClickEvent ev) {
Button button = ev.getButton(); Button button = ev.getButton();
Person loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN);
ContextMenu contextMenu = new ContextMenu(button, true); ContextMenu contextMenu = new ContextMenu(button, true);
monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId(); monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId();
contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1)).getId(); contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1));
if (loggedinPerson != null) {
contextMenu.addItem("Personen verwalten", ev1 -> switchToPersonEditUi());
}
contextMenu.open(50, 50); contextMenu.open(50, 50);
} }
private void switchToPersonEditUi() {
}
private void calendarExport(MenuItem ev1) { private void calendarExport(MenuItem ev1) {
boolean monthOnly = ev1.getId() == monthItemId; boolean monthOnly = ev1.getId() == monthItemId;

@ -48,6 +48,7 @@ public class MainUi extends UI {
// Create and register the views // Create and register the views
navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness)); navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness));
navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao)); navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao));
navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao));
navigator.navigateTo(MainView.VIEW_NAME); navigator.navigateTo(MainView.VIEW_NAME);
} }

@ -24,7 +24,6 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; 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.CalendarComponent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDialog;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView;
@ -82,11 +81,9 @@ public class MainView extends BorderLayout implements View {
eventView.setVisible(false); eventView.setVisible(false);
personGrid = new PersonGrid(groupDao, personDao); personGrid = new PersonGrid(groupDao, personDao);
personGrid.setId("main.person");
personGrid.setCaption("Personen"); personGrid.setCaption("Personen");
personGrid.onClosedFunction(() -> detailClosed()); personGrid.onClosedFunction(() -> detailClosed());
personGrid.onPersonSelect(ev -> personSelectionChange(ev)); personGrid.onPersonSelect(ev -> personSelectionChange(ev));
personGrid.onPersonEdit(p -> onPersonEdit(p));
personGrid.setVisible(false); personGrid.setVisible(false);
VerticalLayout eastLayout = new VerticalLayout(); VerticalLayout eastLayout = new VerticalLayout();
@ -121,11 +118,6 @@ public class MainView extends BorderLayout implements View {
exec.shutdown(); exec.shutdown();
} }
private void onPersonEdit(Person p) {
PersonEditDialog dlg = new PersonEditDialog(groupDao.listAll(), p, personDao);
getUI().addWindow(dlg);
}
private void personSelectionChange(SelectionEvent<Person> ev) { private void personSelectionChange(SelectionEvent<Person> ev) {
Set<Person> selected = ev.getAllSelectedItems(); Set<Person> selected = ev.getAllSelectedItems();
LOGGER.debug("Selection changed to: {}", selected); LOGGER.debug("Selection changed to: {}", selected);

@ -0,0 +1,34 @@
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui;
import com.vaadin.navigator.View;
import com.vaadin.ui.HorizontalLayout;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDialog;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
public class PersonEditView extends HorizontalLayout implements View {
public static final String VIEW_NAME = "PersonEditView";
private static final long serialVersionUID = 1770993670570422036L;
private PersonGrid personGrid;
private PersonDao personDao;
private GroupDao groupDao;
public PersonEditView(GroupDao groupDao, PersonDao personDao) {
this.groupDao = groupDao;
this.personDao = personDao;
personGrid = new PersonGrid(groupDao, personDao);
personGrid.onPersonEdit(p -> onPersonEdit(p));
addComponent(personGrid);
}
private void onPersonEdit(Person p) {
PersonEditDialog dlg = new PersonEditDialog(groupDao.listAll(), p, personDao);
getUI().addWindow(dlg);
}
}

@ -20,6 +20,7 @@ import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox; import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox; import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Grid; import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
import com.vaadin.ui.Grid.SelectionMode; import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Layout; import com.vaadin.ui.Layout;
@ -32,6 +33,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass;
public class PersonGrid extends VerticalLayout { public class PersonGrid extends VerticalLayout {
@ -53,9 +55,12 @@ public class PersonGrid extends VerticalLayout {
private List<GroupDef> allGroups; private List<GroupDef> allGroups;
private PersonFilter filter; private PersonFilter filter;
private ClubEvent currentEvent; private ClubEvent currentEvent;
private Column<Person, Startpass> startpassColumn;
private Column<Person, Button> editButtonColumn;
public PersonGrid(GroupDao groupDao, PersonDao personDao) { public PersonGrid(GroupDao groupDao, PersonDao personDao) {
setId("main.person");
setCaption("Teilnehmer"); setCaption("Teilnehmer");
addStyleName("bold-caption"); addStyleName("bold-caption");
@ -96,8 +101,12 @@ public class PersonGrid extends VerticalLayout {
grid.addColumn(Person::getPrename).setCaption("Vorname"); grid.addColumn(Person::getPrename).setCaption("Vorname");
grid.addColumn(Person::getSurname).setCaption("Nachname"); grid.addColumn(Person::getSurname).setCaption("Nachname");
grid.addColumn(Person::getBirth, b -> b != null ? birthFormat.format(b) : "").setCaption("Geburtstag"); grid.addColumn(Person::getBirth, b -> b != null ? birthFormat.format(b) : "").setCaption("Geburtstag");
grid.addComponentColumn(this::buildPersonEditButton); startpassColumn = grid.addColumn(Person::getStartpass).setCaption("Startpass Nr.");
editButtonColumn = grid.addComponentColumn(this::buildPersonEditButton);
grid.setSelectionMode(SelectionMode.MULTI); grid.setSelectionMode(SelectionMode.MULTI);
startpassColumn.setHidden(false);
editButtonColumn.setHidden(true);
} }
private Layout setupFilterComponents() { private Layout setupFilterComponents() {
@ -195,6 +204,8 @@ public class PersonGrid extends VerticalLayout {
public void onPersonEdit(Consumer<Person> function) { public void onPersonEdit(Consumer<Person> function) {
this.onPersonEdit = function; this.onPersonEdit = function;
startpassColumn.setHidden(true);
editButtonColumn.setHidden(false);
} }
public void setEvent(ClubEvent ev) { public void setEvent(ClubEvent ev) {

@ -24,7 +24,7 @@ public class SingleEventView extends CustomComponent {
public SingleEventView() { public SingleEventView() {
setCaption("Gewählte Veranstaltung"); setCaption("Gewählte Veranstaltung");
addStyleName("bold-caption"); addStyleName("bold-caption");
setWidth(40.0f, Unit.PERCENTAGE); setWidth(50.0f, Unit.PERCENTAGE);
textTitle = new TextField(); textTitle = new TextField();
textTitle.setId("event.title"); textTitle.setId("event.title");

Loading…
Cancel
Save