Search the FirstSpirit Knowledge Base
FS-Version: 5.0.318.57504
Hallo liebe Community,
ich versuche gerade den PageStore auszulesen. An sich ist das natürlich nicht schwer und funktioniert auch soweit ohne Probleme.
Nur die Sortierung ist nicht so ganz wie erwartet. Ich hätte gerne die Sortierung die man auch im JavaClient sieht. Wenn ich aber mit getChildren() die Liste aller Elemente bekomme, ist die Reihenfolge "willkürlich". Ich vermute, dass es nach dem Erzeugungsdatum sortiert ist.
Gibt es eine andere mit unbekannte Möglichkeit einen Store auszulesen und dabei die selbe Sortierung zu bekommen wie im JavaClient?
Liebe Grüße
Benjamin
------- English Version ---------------
Hello dear community,
I'm trying to read the PageStore. In itself this is of course not hard and works well so far without problems.
Only the sorting is not quite as expected. I would like to get the same ordering like in the JavaClient. But when I get the list of elements with the getChildren() method, I will get an "arbitary" order. I suspect that it is sorted by creation date.
Is there another way to read a store and to get the same order as in the Java client?
Kind regards
Benjamin
Code example:
import de.espirit.firstspirit.agency.StoreAgent;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import java.util.List;
import de.espirit.firstspirit.access.store.StoreElement;
StoreAgent storeAgent = context.requestSpecialist(StoreAgent.TYPE);
PageStoreRoot store = (PageStoreRoot) storeAgent.getStore(Type.PAGESTORE);
List children = store.getChildren().toList();
for (StoreElement element : children) {
// do something
}
Hallo Benjamin,
da der PageStore keine wirkliche Reihenfolge hat (im Client alphabetisch und nicht fachlich), gibt es auch keine Möglichkeit diese Reihenfolge per API abzufragen.
Grüße
Jan
Hallo Benjamin,
vorab:
Niemals: List children = store.getChildren().toList();
getChildren liefert dir ein Iterable zurück. Über dass du per iterator() oder auch for-each iterieren kannst. Das toList() läd aber alle Objekte in den Speicher!
Nun zu deinem eigentlichen Problem:
Hilft es dir die Position mit StoreElement.getChildIndex(StoreElement child) abzufragen? Siehe dazu: http://www.e-spirit.com/odfs50/access/de/espirit/firstspirit/access/store/StoreElement.html#getChild...
Viele Grüße
Tobias
Hallo Benjamin,
konnte Tobias' Antwort Dein Problem lösen oder benötigst Du noch weitere Antworten?
Sollte Tobias' Antwort bereits zu einer Lösung geführt haben, wäre es nett, wenn Du sie als "richtige Antwort" kennzeichnest.
Viele Grüße
Michaela
Hallo,
ich war leider im Urlaub. Ich habe die Funktionalität geprüft. Leider gibt die Methode getChildIndex die selbe Sortierung zurück.
Ich kann leider damit auch nicht die selbe Sortierung reproduzieren die im PageStore vorhanden ist.
Mit freundlichen Grüßen
Benjamin
Hallo Benjamin,
da der PageStore keine wirkliche Reihenfolge hat (im Client alphabetisch und nicht fachlich), gibt es auch keine Möglichkeit diese Reihenfolge per API abzufragen.
Grüße
Jan
Hallo Jan,
jetzt verstehe ich es! Danke für die Info. Irgendwie bin ich nicht auf den gedanken gekommen das es alphabetisch sortiert ist.
Liebe Grüße
Benjamin