2009-11-14 12 views
5

praticamente creo un visualizzatore di tabelle come al solito, ma inizialmente non ordina tutte le righe in base alla colonna definita per l'ordinamento.TableViewer, la definizione di un ordine di ordinamento iniziale non ha alcun effetto sui dati

Il codice che sto usando:

viewer.getTable().setSortColumn(viewer.getTable().getColumn(4)); 
viewer.getTable().setSortDirection(SWT.UP); 

Solo dopo aver fatto clic manualmente la colonna # 4 ottengo l'ordine corretto, altrimenti si segue esattamente l ' "ordine inserire" della lista oggetto collegato al ViewContentProvider. Per favore puoi aiutarmi? Tnx

risposta

0

Nell'API JFace è disponibile un'opzione di ordinamento.

Se ho capito correttamente this article, descrive ciò che è necessario in base a tale supporto di ordinamento.

1

Hai solo bisogno di aggiornare la tabella.

1

Appena avuto lo stesso problema.

Quando si utilizza ... tableViewer.setComparator(comparator) ... il codice precedente viene ignorato.

È necessario impostare manualmente l'indice della colonna di ordinamento iniziale nel ViewerComparator esteso.

0

Partendo risposta di Devalex, i seguenti ha lavorato per me:

viewer.setContentProvider(...); 
viewer.setInput(...); 
viewer.setComparator(myComparator); 
myComparator.setColumn(colIndex); 
viewer.refresh(); 
Problemi correlati