Slide 64
Slide 64 text
64
JFace I - M. Baron - Page
mickael-baron.fr mickaelbaron
JFace / Viewers : LabelProvider
Exemple (suite) : dessiner le contenu des cellules
protected void paint(Event event, Object element) {
Person currentPerson = (Person)element;
Display display = viewer.getControl().getDisplay();
TextLayout layout = new TextLayout(display);
layout.setText(currentPerson.getName());
TextStyle plain = new TextStyle(JFaceResources
.getFont(JFaceResources.DEFAULT_FONT), display
.getSystemColor(SWT.COLOR_LIST_FOREGROUND), null);
TextStyle italic = new TextStyle(JFaceResources.getFontRegistry()
.getItalic(JFaceResources.DEFAULT_FONT), display
.getSystemColor(SWT.COLOR_BLUE), null);
Font newFont = new Font(display, "Arial", 9, SWT.BOLD);
TextStyle font = new TextStyle(newFont, display
.getSystemColor(SWT.COLOR_WHITE), display
.getSystemColor(SWT.COLOR_BLACK));
layout.setStyle(plain, 0, 2);
layout.setStyle(italic, 3, 5);
layout.setStyle(font, 6, currentPerson.getName().length() - 1);
layout.draw(event.gc, event.x, event.y);
}
La cellule la plus grande
fixe la taille de toutes
les autres dimensions
d’une même colonne
OwnerDrawLabelExample.java du
projet TableViewerExamples
Précise les
différents
styles
Utilisation d’un
TextLayout pour
faciliter l’agencement
du texte dans la cellule