Je me demande s'il existe un moyen de construire la logique gwt uibinder dans une classe parente abstraite afin que je n'aie pas à répéter le code dans chaque classe que je veux lier.gwt uibinder dans une classe parent abstraite
par exemple, je voudrais pouvoir faire quelque chose comme ceci:
public abstract class BasePanel<Panel extends BasePanel> extends Composite {
interface Binder<BinderPanel extends BasePanel> extends UiBinder<Widget, BinderPanel> { }
private static final Binder binder = GWT.create(Binder<Panel>.class);
public BasePanel() {
initWidget(binder.createAndBindUi(this));
init();
}
}
En gros, cela permettrait à toutes les classes d'enfants de faire quelque chose comme ceci:
public MyPanel extends BasePanel<MyPanel> {
//my code here
}
le constructeur par défaut prendrait soin de tout le code pour lier MyPanel à MyPanel.ui.xml.
Fondamentalement, je veux être paresseux et seulement avoir à construire l'interface et le liant une fois pour que ce soit fait d'une manière commune. pensées?
merci d'avance.
Si vous voulez également éviter le code ui.xml dupliqué, vous devriez toujours prendre cette route. Placez le code de disposition en double dans un widget complètement séparé, cependant. Ce widget séparé devrait implémenter 'HasWidgets', et ensuite vous pouvez l'utiliser dans tous vos différents fichiers subclass.ui.xml. –
J'ai fait les deux suggestions (champs communs dans le widget de base et réduction de ui.xml). Je me demandais vraiment si les appels liants pourraient être aussi abstraits. ça sonne comme @strelock vous dites qu'il ne peut pas corriger? – jctierney