比方說,我有一個對象的層次結構是這樣的:如何爲類型的子類實現GWT編輯器?
帳戶>網站>供應
的帳戶是一個真實的公司,一個網站是一個建築,他們已經和一個電源或者是一個ElecSupply
或GasSupply
。供應從未被實例化,理論上可能是一個抽象類。
我使用Objectify進行持久化,並且有一個頁面顯示每個站點的耗材列表,無論它們是ElecSupply
還是GasSupply
。
現在我正在實施GWT Editor Framework,並提出了這個多態實體的問題。我該如何實現一個編輯器和一套這樣的對象的子編輯器?
@Entity
public class Supply implements Serializable
{
@Id
protected Long id;
@Embedded
protected List<BillingPeriod> billingPeriods = new ArrayList<BillingPeriod>();
public Supply()
{
}
// ...
}
子類:(ElecSupply有5個獨特的領域和氣體供應只有一個)
@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()
{
}
// ...
}
所以我想知道如果任何人有任何這類經驗結構體?我試圖爲ElecSupply
和GasSupply
分別編輯編輯器,然後將它們顯示或隱藏爲編輯頁面的一部分。
我想要做的另一種方式是使用單個編輯器(對於Supply),然後根據我們正在編輯的對象類型加載不同的子編輯器。
任何燈光棚將受到感謝。
迄今似乎工作得很好。感謝您的一個奇妙的答案。 – slugmandrew