Wie implementiere ich GWT-Editoren für Unterklassen eines Typs?

Nehmen wir an, ich habe eine Objekthierarchie wie diese:

Konto> Site> Angebot

Ein Account ist eine tatsächliche Firma, eine Site ist ein Gebäude, über das sie verfügen, und ein Supply ist eineElecSupply oderGasSupply. Das Angebot wird niemals instanziiert und könnte theoretisch eine abstrakte Klasse sein.

Ich verwende Objectify aus Gründen der Persistenz und habe eine Seite, auf der die Liste der Verbrauchsmaterialien für jede Site angezeigt wird, unabhängig davon, ob es sich um eine handeltElecSupply oderGasSupply.

Jetzt implementiere ich dieGWT Editor Framework und sind auf ein Problem mit dieser polymorphen Entität gestoßen. Wie implementiere ich einen Editor und mehrere Untereditoren für ein Objekt wie dieses?

@Entity
public class Supply implements Serializable
{
    @Id
    protected Long id;
    @Embedded
    protected List<BillingPeriod> billingPeriods = new ArrayList<BillingPeriod>();

    public Supply()
    {

    }
// ...
}

Die Unterklassen: (ElecSupply hat 5 eindeutige Felder und GasSupply hat nur ein)

@Subclass
public class ElecSupply extends Supply implements Serializable
{
    private String profile;
    private String mtc;
    private String llf;
    private String area;
    private String core;

    public ElecSupply()
    {

    }
}
@Subclass
public class GasSupply extends Supply implements Serializable
{
    private String mpr;

    public GasSupply()
    {

    }
// ...
}

Ich würde gerne wissen, ob jemand Erfahrung mit dieser Art von Struktur hat. Ich habe versucht, separate Editoren für zu erstellenElecSupply undGasSupplyKlicken Sie auf OK, und blenden Sie sie dann als Teil der Bearbeitungsseite ein oder aus.

Die andere Möglichkeit, über die ich nachgedacht habe, besteht darin, einen einzigen Editor (für Supply) zu haben und dann verschiedene Sub-Editoren zu laden, je nachdem, welchen Objekttyp wir bearbeiten.

Jeder Lichtschuppen wird dankbar aufgenommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage