xdoo / vaadin-demo

demo using vaadin with spring boot.
4 stars 2 forks source link

#108 events vereinheitlichen #139

Closed peter-mueller closed 9 years ago

peter-mueller commented 9 years ago

Beschreibung:

Die Verwendung des EventBus wurde stark vereinfacht, dazu wurde ein Model eingeführt, das die Momentanen Daten speichert:

public class BuergerModel implements BuergerReadOnlyModel {
    /** All the kinders of the selectedBuerger. */
    private final BeanItemContainer<Buerger> selectedBuergerKinder = new BeanItemContainer<>(Buerger.class);
    /** All the partners of the selectedBuerger. */
    private final BeanItemContainer<Buerger> selectedBuergerPartner = new BeanItemContainer<>(Buerger.class);
    /** A List of all the Buergers, possible reduced by the query. */
    private final BeanItemContainer<Buerger> buergers = new BeanItemContainer<>(Buerger.class);
    /** The current (single or none) selected Buerger in the GUI. */
    private Optional<Buerger> selectedBuerger = Optional.empty();
    /** The query to filter the buergers. */
    private Optional<String> query = Optional.empty();

}

Im EventBus wurden die einfachen Keys (=Selector) und die Keys für Entitäten (Request und Response) modelliert:

.
├── EventBus.java
├── events
│   ├── Association.java
│   └── Eventable.java
└── selector
    ├── entity
    │   ├── BaseEntityKey.java
    │   ├── RequestEntityKey.java
    │   ├── RequestEvent.java
    │   └── ResponseEntityKey.java
    ├── Keyable.java
    └── Key.java

Auditing geht noch nicht, und wird erst nach dem PR gefixt, ein Ticket dazu wird dann erstellt. thanks @FabianHoltkoetter

Branch-Checklist:

closes #108

Arne2 commented 9 years ago

GenericGrid kann so nicht bleiben, entweder entfernst du es ganz, oder du führst es wieder zurück so wie es gedacht war. Du kannst einfach eine Klasse übergeben dafür ist die entityClass da. Jetzt jetzt hardgecoded mit der entityClass Bürger drin. Denke daran die ViewFactory zu überarbeiten und wenn die GenericGrid woanders noch verwendet wird bitte auch.

FabianWilms commented 9 years ago

Momentan wird die Fehlermeldung, wenn ein Bürger nicht gelöscht werden konnte, da er in einem anderen Bürger referenziert wird, nicht angezeigt. (Erro 409 abfangen)

peter-mueller commented 9 years ago

@FabianHoltkoetter Das GenericGrid fliegt raus, oder? Fehlermeldungen sollen über #95 gelöst werden.

FabianWilms commented 9 years ago

So war der Plan. Es wird ja sowieso generiert, und bevor wir uns jetzt mit einer "generischeren" Lösung aufhalten würde ich es rauswerfen.

peter-mueller commented 9 years ago

@FabianHoltkoetter Momentan geh ich davon aus dass die Relation immer vom gleichen Typ ist:


        @SuppressWarnings("unchecked") final Association<Buerger> association = (Association<Buerger>) event.getData();
        final Buerger buerger;
        if (association.getAssociation().getId() == null) {
            buerger = service.create(association.getAssociation());
        } else {
            buerger = association.getAssociation();
        }

        final Buerger.Rel rel = Buerger.Rel.valueOf(association.getRel());
        if (Buerger.Rel.kinder == rel)
            addBuergerKind(buerger);
        if (Buerger.Rel.partner == rel)
            setBuergerPartner(buerger);
...
}

Ich würde das fürs generieren so ändern, dass man erst die Relation prüft und dann casted ?!

FabianWilms commented 9 years ago

@peter-mueller auf jedenfall. Ein Beispiel wäre ja schon die Wohnung eines Bürgers wo das der Fall sein könnte.

darenegade commented 9 years ago
FabianWilms commented 9 years ago

@peter-mueller Bitte die Nutzung des Eventbus mit neuem Key/Model-Ansatz im Wiki dokumentieren