Problema: ho bisogno di una tabella SWT (JFace TableViewer) con altezza di riga variabile. In effetti, ho risolto questo problema sul mio computer di sviluppo (con Ubuntu 10.10). Sfortunatamente, questo non funziona su Windows o su Mac.Tabella SWT con altezza di riga variabile: funziona su Linux, ma non su Mac/Windows
Inizialmente, pensavo di non aver usato correttamente le librerie. Ma ormai temo che ciò che voglio fare sia semplicemente impossibile su Windows. Spero che qualcuno qui mi convinca altrimenti.
Per riprodurre: anziché fornire il mio codice qui, ho creato un programma minimale per riprodurre il problema. Ho iniziato con il seguente Snipplet:
ho modificato il metodo update() per produrre due righe di testo per le directory e una linea per i file (per simulare un ambiente con altezze di righe variabile):
... if (file.isDirectory()) { cell.setText(styledString.toString() + "\n" + styledString.toString()); cell.setImage(IMAGE1); } else { cell.setImage(IMAGE2); } ...
Questo funziona come previsto su Linux, ma su Windows tutte le righe hanno la stessa altezza. In particolare, è visibile solo una linea.
Successivamente, stavo cercando di aiutare SWT rendendo measure() più intelligente. Così ho riscritto misura() in questo modo:
protected void measure(Event event, Object element) { if (((File) element).isDirectory()) { event.height = 32; } else { event.height = 16; } super.measure(event, element); }
Il risultato: Tutte le righe hanno l'altezza 32. Ancora una volta, questo funziona come previsto su Linux.
La mia paura è che su Windows tutte le righe devono avere la stessa altezza. Questo sarebbe uno showstopper per me. Qualcuno può confermare questo, o ancora meglio, fornire una soluzione alternativa?
Grazie!
In realtà, avrei trovato una spiegazione per questo comportamento, e forse anche un fix (devo ancora provare questo fuori): https://bugs.eclipse.org/bugs/show_bug .cgi? id = 148039 – jastram
Grazie a tutti per le risposte. Ho finito per utilizzare http://sourceforge.net/projects/agilegrid/, che disegna anche la tabella in modo nativo, come KTable. È un piacere lavorare con, certamente rispetto a SWT. – jastram