SWT Table de Tri en cliquant sur l'en-tête de colonne
En swt tableau de tri des œuvres pour Cordes comment faire le tri pour les Entiers, les Doubles et les valeurs de Date. Et cela fonctionne uniquement pour les chaînes dans l'ordre croissant. Quelqu'un peut-il suggérer une meilleure façon de le faire.
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "1", "v", "1.1", "20/03/2013" });
item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "10", "z", "1.5", "20/04/2013" });
item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "3", "a", "1.3", "30/01/2013" });
Listener sortListener = new Listener() {
public void handleEvent(Event e) {
TableItem[] items = table.getItems();
Collator collator = Collator.getInstance(Locale.getDefault());
TableColumn column = (TableColumn) e.widget;
int index = column == tblclmnNumber ? 0 : 1;
for (int i = 1; i < items.length; i++) {
String value1 = items[i].getText(index);
for (int j = 0; j < i; j++) {
String value2 = items[j].getText(index);
if (collator.compare(value1, value2) < 0) {
String[] values = { items[i].getText(0),
items[i].getText(1), items[i].getText(2),
items[i].getText(3) };
items[i].dispose();
TableItem item = new TableItem(table, SWT.NONE, j);
item.setText(values);
items = table.getItems();
break;
}
}
}
table.setSortColumn(column);
}
};
tblclmnNumber.addListener(SWT.Selection, sortListener);
tblclmnName.addListener(SWT.Selection, sortListener);
tblclmnDeci.addListener(SWT.Selection, sortListener);
tblclmnDate.addListener(SWT.Selection, sortListener);
table.setSortColumn(tblclmnNumber);
table.setSortDirection(SWT.UP);
OriginalL'auteur Venkatachalam Subramanian | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
J'ai modifié le SWT extrait avec tri à montrer comment est-ce possible de trier les colonnes avec différents types de données..
Résumer il est totalement à programmeur comment sera colonnes dans le tableau trié, parce que la table juste en veut toujours le tableau de Chaîne de caractères pour une ligne tout ce qu'ils veux dire..
OriginalL'auteur Sorceror
Vous pouvez jeter un comparateur pour la colonne en tant que données de la colonne, et ensuite l'utiliser pour le tri. Cela permet de maintenir la logique de tri de plus près à la définition de la colonne elle-même.
OriginalL'auteur pretzalcoatl