¿Intenta agregar soporte básico de texto enriquecido a través de html a un visor de tablas jface?

Así que estoy tratando de agregar soporte básico de texto enriquecido a un jface tableviwer como negrita, subrayado, cursiva y resaltado y también necesito poder guardar esto en un modelo, así que pensé que una buena manera sería usar un subconjunto de html (o xml) etiquetas. Sin embargo, parece que no puedo encontrar una forma de renderizar html en el visor de tablas. He mirado StyledCellLabelProvier pero sus rangos de estilo parecen admitir solo el color de primer plano y de fondo y no la fuente y el tipo.

preguntado el 03 de mayo de 12 a las 13:05

3 Respuestas

Echa un vistazo a todos los campos públicos de StyleRange. Hay mucho más que color de primer plano y de fondo. Pista: se heredan de org.eclipse.swt.graphics.TextStyle.

contestado el 03 de mayo de 12 a las 16:05

Gracias por la información que he estado buscando en esta configuración, el color de primer plano y de fondo funciona a la perfección, pero los estilos de fuente no. Puedo configurar todo el contenido de la celda en negrita a través de cell.setFont(boldFont) pero si intento algo similar en un rango, simplemente ignore el bit en negrita, es decir, StyleRange (0, 4, nulo, colorYellow, SWT.BOLD) un poco perplejo (tanto en Windows 7 como en OS X). - muerto_cero

Note: the font style is not used if the font attribute is set ¿Ha intentado configurar la fuente (no fontStyle) en el StyleRange? - p12t

La TextLayout clase que es llamada por StyledCellLabelProvider para dibujar el texto no usa StyleRange pero es superclase TextStyle. fontStyle no es un atributo de TextStyle, por lo que se ignora. Selecciona el TextStyle.font explícitamente

contestado el 04 de mayo de 12 a las 07:05

No puede renderizar HTML en un visor de tablas, porque eso requeriría renderizar HTML en un SWT Tabley que requeriría representación HTML nativa en tablas en todas las plataformas y sistemas de ventanas compatibles.

contestado el 03 de mayo de 12 a las 16:05

Ok, ya veo, pero solo necesito admitir un subconjunto de plataformas y sé que el widget del navegador SWT definitivamente funciona en estas plataformas. ¿Seguro que implemento extender la clase de tabla? - muerto_cero

@dead_zero La cuestión es que, Table la clase en sí hace muy poco trabajo. Todo el renderizado se realiza mediante controles nativos: tabla Win32, tabla Cocoa, tabla Gnome, etc. Y no puede extenderlos. - Aleksey Romanov

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.