Sortierung im Dashboard-Widget „Wertpapiere: Termin erreicht“

Hi zusammen,

ich hätte eine Frage zu dem Widget “Wertpapiere: Termin erreicht” (unter “Allgemein”).

Nachdem man für Wertpapiere ein selbst hinzugefügtes Attribut vom Typ “Termin” angelegt/befüllt hat, kann man mit diesem Widget die Liste an Wertpapieren (und deren Termin) anzeigen lassen, für die der eingestellte Termin erreicht wurde. Nicht nur das - man kann sich nicht nur erreichte Termine anzeigen lassen, sondern kann sich sogar aussuchen, ob zukünftige oder vergangene Termine angezeigt werden sollen. Ganz praktisch, wenn man bestimmte Termine im Blick behalten möchte.
Habe gerade ein bisschen damit rumgespielt und habe vor, das für irgendetwas sinnvolles zu benutzen. :slightly_smiling_face:

Was ich allerdings nicht verstehe und das ist nun meine Frage: Nach welcher Logik wird diese Liste sortiert?

Ich hatte z.B. erwartet/gehofft, dass bei der Einstellung “Termin liegt in der Zukunft” das früheste eintreffende Datum zuerst in der Liste stehen würde (damit dieses bei einer klein eingestellten Höhe des Widgets nicht abgeschnitten wird) und bei vergangenen Terminen auch eine Sortierung nach Datum existiert (wobei ich da nicht wüsste, was sinniger ist - das älteste oder das jüngste verstrichene Datum zuerst).

Die Liste scheint weder nach dem hinterlegten Datum sortiert zu sein (weder aufsteigend noch absteigend), noch nach dem Namen des Wertpapiers. Zumindest kann ich kein Sortierkriterium erkennen.

grafik

Ist die Reihenfolge völliger Zufall?
Eine Sortierung nach Datum fänd ich schon wünschenswert, sofern das Widget irgendwann mal wieder angetastet wird und das nicht zu viele Umstände bereiten würde. :grinning:

1 Like

Wahrscheinlich ist das die Reihenfolge, in der die Wertpapiere ursprünglich angelegt wurden. Ich sehe nicht, dass da irgendwie ausdrücklich sortiert würde.

2 Likes

Hmm… das könnte tatsächlich sein. Dürfte zumindest ungefähr hinkommen, wenn ich in meinen Erinnerungen wühle. :smile:

Also wird nach einer internen ID sortiert, die nicht auf der GUI einsehbar ist. Nagut. Schade, dass man nicht nach dem Datum sortieren kann. Danke dir. :slight_smile:

Eine Sortierung nach Datum würde mMn schon verständlicher sein, als die aktuelle (für den Nutzer scheinbar wahllose) “Sortierung”.

Es müsste sich ja um diese Stelle im Code handeln, oder?
Ich habe aktuell keinen Zugriff auf die eclipse-Umgebung und kann nicht debuggen um mit Sicherheit die Stelle zu identifizieren.

Um eine Sortierung reinzubringen, müsste man vor das return items; die Liste eben noch sortieren:

Collections.sort(items, (r, l) -> r.date.compareTo(l.date));

Disclaimer: Ich habe nur im github-Code geschaut ohne zu testen ob das so baut und richtig herum sortiert.

Falls das jemand als PR reinbringen will, dann gerne einfach übernehmen (oder anders machen, falls ich was übersehen haben sollte).
Ansonsten kann ich das als PR anlegen, sobald ich wieder Zugriff auf eclipse habe (wird aber noch einige Wochen dauern).

2 Likes

So macht es das LimitExceededWidget:

Man könnte es auch eine Hierarchiestufe höher hier machen (und dem Item einen Comparator geben):

2 Likes

Ich habe einen Codevorschlag angelegt mit entweder der pauschalen Sortierung nach Datum. Oder der Möglichkeit zwischen aufsteigender und absteigender Sortierung zu wählen (falls diese Konfigurierbarkeit überhaupt nötig/gewünscht ist).

2 Likes

Oh, spitze. So bald hatte ich gar nicht mit einem Codevorschlag gerechnet (obwohl ihr beide hier ja schon mehrere Lösungsmöglichkeiten angesprochen habt). Finde ich super. Dankeschön. :blush:

Mir persönlich gefällt auch die Konfigurierbarkeit. Bei verstrichenen Terminen möchte man ja vielleicht zuerst die ältesten sehen oder eben vielleicht auch die in der jüngsten Vergangenheit.

Edit: Die Umsetzung wurde mit Version 0.62.1 ausgeliefert. Funktioniert wunderbar. :smile:

1 Like