par souci de simplicité:Comment modifier un ensemble <? extends EntityProxy> avec le framework GWT Editor?
public class Person
{
String name;
Set<Address> addresses;
}
public class Address
{
String city;
String street;
}
avec et correspondant à
public interface PersonProxy extends EntityProxy
{
public String getName();
public Set<AdressProxy> getAddresses();
}
et
public interface AdressProxy extends EntityProxy
{
public String getCity();
public String getStreet();
}
j'ai eu cours UiBuinder modifier AddressProxy et clair pour moi comment utiliser ListEditor dans Si j'ai une liste mais que les données sont définies dans la classe Personne Comment utiliser Editor Framework pour les modifier? Ou peut-être comment puis-je convertir Set à la liste quand il devient PersonProxy?
j'ai fait une tentative de mettre une sorte de classe d'adaptateur de l'éditeur qui mettrait en œuvre
LeafValueEditor<Set<AddressProxy>>
puis à l'intérieur du mouvement LeafValueEditor.setValue() à une liste et de commencer une nouvelle driver.edit() sur une hiérarchie d'éditeur distincte qui s'occupe de l'édition de liste mais avec maintenant de la chance.
Merci! C'est quelque chose pour commencer. Franchement paresseux, j'espérais un lien vers un code :-). –
Je pense qu'un certain type de 'SetEditor' standard (déléguant probablement à' ListEditor') devrait être fourni par GWT. J'ai eu le même problème que OP et j'ai fini par exposer des accesseurs typés 'List' (convertissant la vraie propriété' Set') sur une classe de domaine juste pour pouvoir utiliser 'ListEditor'. Mais ce n'est pas toujours possible (parfois nous avons juste besoin d'un comportement "Set" du côté client) –
Le problème est que a) un Set par définition n'a pas d'ordre spécifique et les sous-éditeurs pour les valeurs sont nécessairement un _list_, et b) vous voulez probablement autoriser les valeurs dupliquées au cours de l'édition et vérifier uniquement l'unicité à _flush_time, mais vous devez en quelque sorte dire à l'utilisateur quand c'est le cas ("hé, j'avais 4 valeurs et seulement 3 d'eux!"); et l'unicité dépend de la façon dont vous avez implémenté 'equals()' dans les objets édités. Si vous pouvez créer un SetEditor _standard_ ', merci de le faire! –