static class DataModelTreeModel.SortingListAdapter extends DataModelTreeModel.AbstractAdapter implements DataModelTreeModel.Adapter, java.util.Comparator<SystemObject>
Modifier and Type | Field and Description |
---|---|
(package private) java.util.Map<SystemObject,java.lang.String> |
_compareStrings |
protected java.util.ArrayList<SystemObject> |
_list |
_childs, _tag
Constructor and Description |
---|
SortingListAdapter(java.lang.String nodeTag,
java.util.List list) |
Modifier and Type | Method and Description |
---|---|
int |
compare(SystemObject o1,
SystemObject o2)
Compares its two arguments for order.
|
DataModelTreeModel.Adapter |
createChild(int searchIndex) |
int |
getChildCount() |
private java.lang.String |
getCompareString(SystemObject object)
Liefert einen String der in Vergleichsfunktionen benutzt werden kann um die Sortierreihenfolge festzulegen.
|
java.lang.String |
getValue() |
boolean |
isLeaf() |
createAdapter, getChild, getIndex, getTag, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getChild, getIndex
java.util.Map<SystemObject,java.lang.String> _compareStrings
protected java.util.ArrayList<SystemObject> _list
SortingListAdapter(java.lang.String nodeTag, java.util.List list)
public DataModelTreeModel.Adapter createChild(int searchIndex)
createChild
in class DataModelTreeModel.AbstractAdapter
public int getChildCount()
getChildCount
in interface DataModelTreeModel.Adapter
getChildCount
in class DataModelTreeModel.AbstractAdapter
public boolean isLeaf()
isLeaf
in interface DataModelTreeModel.Adapter
isLeaf
in class DataModelTreeModel.AbstractAdapter
public java.lang.String getValue()
getValue
in class DataModelTreeModel.AbstractAdapter
public int compare(SystemObject o1, SystemObject o2)
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)
The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is “Note: this comparator imposes orderings that are inconsistent with equals.”
compare
in interface java.util.Comparator<SystemObject>
o1
- the first object to be compared.o2
- the second object to be compared.java.lang.ClassCastException
- if the arguments’ types prevent them from being compared by this Comparator.private java.lang.String getCompareString(SystemObject object)
Liefert einen String der in Vergleichsfunktionen benutzt werden kann um die Sortierreihenfolge festzulegen. Der String enthält den Namen, die Pid und die Id des Objekts mit zwei bzw. einem Leerzeichen getrennt. Die Leerzeichen zwischen Name, Pid und Id sorgen dafür, dass zuerst nach Name und nur bei Namensgleichheit nach Pid respektive Id sortiert wird. Zwischen Name und Pid werden zwei Leerzeichen benutzt, um eine falsche Sortierung zu vermeiden, wenn in den Namen selbst auch Leerzeichen vorkommen. Anstelle von leeren Namen und Pids wird das Pipezeichen “|” benutzt, das dafür sorgt, dass die Objekte mit leeren Namen bzw. leeren Pids hinter denen mit nicht leeren Namen respektive nicht leeren Pids einsortiert werden. Umlaute werden durch ihre Zweibuchstaben-Äquivalente ersetzt, damit Objekte die Umlaute enthalten an einer sinnvollen Stelle einsortiert werden. Die einmal berechneten Vergleichsstrings werden in einer HashMap gespeichert um die Sortierzeit dramatisch zu verbessern.
object
- Systemobjekt für das ein Vergleichstring bestimmt werden soll.