Da Codename One eine Teilmenge der grundlegenden Java-Objektfunktionalität unterstützt, kann ich Vectors.sort() nicht verwenden, um meine Daten zu sortieren, bevor sie in ein DefaultListModel hinzugefügt werden. Wenn Sie nach anderen Sortieroptionen in Codename One suchen, habe ich das FilterProxyListModel gefunden.Beispiele für FilterProxyListModel in CodenameOne
Ich kann kein Beispiel finden, wie man das FilterProxyListModel richtig initialisiert, da es ein interessantes, aber kniffliges "Proxy" -Designmuster verwendet, mit dem ich nicht vertraut bin. Hier ist, wie ich es bisher implementiert habe, aber die Komponente zeigt keine Elemente im Simulator, wenn ich es so mache. Dies ist in der „initListModel ...“ Methode für meine Liste aus dem GUI-Builder:
protected boolean initListModelLearnableTopicsList(List cmp){
Vector learnableListModel = new Vector;
//omitting initialization of learnableListModel as a Vector of HashTables with key/value pairs to display
...
FilterProxyListModel<DefaultListModel> fpListModel = new FilterProxyListModel<DefaultListModel>(new DefaultListModel(learnableListModel)) {
@Override
protected int compare(Object a, Object b, boolean ascending) {
//details omitted... uses data in the LearnableListModel to provide sort order
}
@Override
protected boolean check(Object o, String str) {
//force all results to pass filter since original method fails when a Map object without a key of "name" is in the list
return true;
}
};
fpListModel.sort(true);
cmp.setModel(fpListModel);
}
Bin ich etwas falsch hier? Gibt es da ein Beispiel, das ich als Anleitung für das richtige Vorgehen verwenden sollte?
-Update empfehlen: Ich, dass ein Teil der Sortiermethode realisiert schließt alle Einträge, die Map-Objekte ohne „name“ sind Schlüssel mit einem String-Wert. es ist die Prüfmethode. Da ich nur die Sortier- und nicht die Filterfunktion von 'FilterProxyListModel' verwende, überschreibe ich die' check() 'Methode mit' return true; 'so dass alle Einträge den Filter passieren. Die Frage bleibt jedoch: Wo gibt es ein Referenzbeispiel für die Verwendung von FilterProxyListModel? wenn es noch keinen gibt, sollte es ... –