Au cours des 5 derniers mois, nous avons prototypé GWT et mis en place l'infrastructure. Nous utilisons GXT pour les widgets avec les implémentations MVP et Command Pattern. Cependant, nous cherchons actuellement à faire un pic sur un ComboBox avec autosuggest à partir d'une base de données en direct. Je voudrais le faire dans le cadre des implémentations MVP et Command pattern. Quelqu'un a-t-il des idées pour s'y prendre?Combobox dynamique Autosuggest dans GXT
Répondre
J'ai résolu cela en utilisant un DispatchDataProxy générique modélisé sur le modèle de commande. Merci pour le lien, mais la documentation de GXT laisse beaucoup à désirer, bien que le framework soit vraiment sympa et cool.
Je vais poster le code ici `DispatchDataProxy public class implémente DataProxy> {
@Inject
private DispatchAsync dispatch ;//= new StandardDispatchAsync(new DefaultExceptionHandler());
@Override
public void load(DataReader<ListLoadResult<X>> reader, Object loadConfig, final AsyncCallback<ListLoadResult<X>> callback) {
if (loadConfig instanceof BasePagingLoadConfig) {
BasePagingLoadConfig a = (BasePagingLoadConfig) loadConfig;
Map<String, Object> map = a.getProperties();
Object data = map.get("query");
XCommand action = new XCommand();
action.setX((String) data);
dispatch.execute(action, new AsyncCallback<XResult>() {
@Override
public void onFailure(Throwable arg0) {
//Log.debug("Some error:" + arg0.getMessage());
callback.onFailure(arg0);
}
@Override
public void onSuccess(XResult arg0) {
ListLoadResult<X> list = arg0.getList();
callback.onSuccess(list);
}
});
}
}
public DispatchAsync getDispatch() {
return dispatch;
}
public void setDispatch(DispatchAsync dispatch) {
this.dispatch = dispatch;
}
}`
Espoir son utile. Apprécieront également quelques commentaires
Avez-vous regardé ici?
http://www.sencha.com/examples-2/explorer.html#advancedcombobox
Ils montrent quelque chose de similaire. Le problème avec GXT est que vous êtes mieux d'utiliser leur DataProxy parce que vous devez définir une instance ModelData.
J'ai trouvé une solution pour la boîte combo simple, remplacer la méthode getValue:
public SimpleComboBox<String> createEditableSimpleComboBox() {
return new SimpleComboBox<String>() {
@Override
public SimpleComboValue<String> getValue() {
SimpleComboValue<String> v = super.getValue();
String raw = getRawValue();
if ((v == null || v.getValue() == null) && raw != null && !raw.isEmpty()) {
v = new SimpleComboValue<String>(raw){
private static final long serialVersionUID = 1L;
};
}
return v;
}
};
}
Maintenant, lorsque vous ajoutez à la méthode boîte valeur par défaut combo (non défini dans le magasin) getValue retourne cette valeur - pas nul.
+1 pour la mauvaise documentation ... – Guillaume