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/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding//target/generated-resources/gwt=UTF-8
encoding/<project>=UTF-8

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

@ -7,36 +7,36 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
/**
* The persistent class for the startpaesse database table.
*
*/
@Entity
@Table(name="startpaesse")
@Table(name = "startpaesse")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@NamedQuery(name="Startpaesse.findAll", query="SELECT s FROM Startpaesse s")
public class Startpaesse extends BaseEntity implements Serializable {
@NamedQuery(name = "Startpass.findAll", query = "SELECT s FROM Startpass s")
public class Startpass extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1464510869007022357L;
@Column(name="startpass_nr")
@Column(name = "startpass_nr")
private String startpassNr;
//bi-directional many-to-one association to Person
@ManyToOne
@OneToOne
@JoinColumn(name = "person_id")
private Person person;
//bi-directional many-to-one association to StartpassStartrechte
@OneToMany(mappedBy="startpaesse")
// bi-directional many-to-one association to StartpassStartrechte
@OneToMany(mappedBy = "startpaesse")
private List<StartpassStartrechte> startpassStartrechtes;
public Startpaesse() {
public Startpass() {
}
public String getStartpassNr() {
@ -77,4 +77,9 @@ public class Startpaesse extends BaseEntity implements Serializable {
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 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.ui.components.CalendarComponent.ClubEventProvider;
import net.sf.jasperreports.engine.JRException;
@ -90,12 +91,20 @@ public class HeadView extends HorizontalLayout {
private void openPopupMenu(ClickEvent ev) {
Button button = ev.getButton();
Person loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN);
ContextMenu contextMenu = new ContextMenu(button, true);
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);
}
private void switchToPersonEditUi() {
}
private void calendarExport(MenuItem ev1) {
boolean monthOnly = ev1.getId() == monthItemId;

@ -48,6 +48,7 @@ public class MainUi extends UI {
// Create and register the views
navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness));
navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao));
navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao));
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.ui.components.CalendarComponent;
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.SingleEventView;
@ -82,11 +81,9 @@ public class MainView extends BorderLayout implements View {
eventView.setVisible(false);
personGrid = new PersonGrid(groupDao, personDao);
personGrid.setId("main.person");
personGrid.setCaption("Personen");
personGrid.onClosedFunction(() -> detailClosed());
personGrid.onPersonSelect(ev -> personSelectionChange(ev));
personGrid.onPersonEdit(p -> onPersonEdit(p));
personGrid.setVisible(false);
VerticalLayout eastLayout = new VerticalLayout();
@ -121,11 +118,6 @@ public class MainView extends BorderLayout implements View {
exec.shutdown();
}
private void onPersonEdit(Person p) {
PersonEditDialog dlg = new PersonEditDialog(groupDao.listAll(), p, personDao);
getUI().addWindow(dlg);
}
private void personSelectionChange(SelectionEvent<Person> ev) {
Set<Person> selected = ev.getAllSelectedItems();
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.ComboBox;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.HorizontalLayout;
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.GroupDef;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass;
public class PersonGrid extends VerticalLayout {
@ -53,9 +55,12 @@ public class PersonGrid extends VerticalLayout {
private List<GroupDef> allGroups;
private PersonFilter filter;
private ClubEvent currentEvent;
private Column<Person, Startpass> startpassColumn;
private Column<Person, Button> editButtonColumn;
public PersonGrid(GroupDao groupDao, PersonDao personDao) {
setId("main.person");
setCaption("Teilnehmer");
addStyleName("bold-caption");
@ -96,8 +101,12 @@ public class PersonGrid extends VerticalLayout {
grid.addColumn(Person::getPrename).setCaption("Vorname");
grid.addColumn(Person::getSurname).setCaption("Nachname");
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);
startpassColumn.setHidden(false);
editButtonColumn.setHidden(true);
}
private Layout setupFilterComponents() {
@ -195,6 +204,8 @@ public class PersonGrid extends VerticalLayout {
public void onPersonEdit(Consumer<Person> function) {
this.onPersonEdit = function;
startpassColumn.setHidden(true);
editButtonColumn.setHidden(false);
}
public void setEvent(ClubEvent ev) {

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

Loading…
Cancel
Save