1 package org.eclipse.jface.tests.labelProviders;
2 
3 import org.eclipse.jface.resource.ImageDescriptor;
4 import org.eclipse.jface.tests.viewers.StructuredViewerTest.TestLabelProvider;
5 import org.eclipse.jface.viewers.ArrayContentProvider;
6 import org.eclipse.jface.viewers.LabelProvider;
7 import org.eclipse.jface.viewers.StructuredViewer;
8 import org.eclipse.jface.viewers.TableViewer;
9 import org.eclipse.swt.graphics.Image;
10 import org.eclipse.swt.layout.FillLayout;
11 import org.eclipse.swt.widgets.Display;
12 import org.eclipse.swt.widgets.Shell;
13 import org.eclipse.swt.widgets.Table;
14 
15 import junit.framework.TestCase;
16 
17 public class LabelProviderLambdaTest extends TestCase {
18 
initializeShell()19 	protected static Shell initializeShell() {
20 		Display display = Display.getDefault();
21 		Shell shell = new Shell(display);
22 		shell.setLayout(new FillLayout());
23 		return shell;
24 	}
25 
initializeViewer(Shell shell)26 	protected static StructuredViewer initializeViewer(Shell shell) {
27 		final TableViewer viewer = new TableViewer(shell);
28 		viewer.setContentProvider(ArrayContentProvider.getInstance());
29 		viewer.setInput(createModel());
30 		return viewer;
31 	}
32 
33 	@SuppressWarnings("boxing")
createModel()34 	protected static Integer[] createModel() {
35 		Integer[] model = new Integer[10];
36 		for (int i = 0; i < 10; i++) {
37 			model[i] = i;
38 		}
39 		return model;
40 	}
41 
testCreateTextProvider()42 	public void testCreateTextProvider() {
43 		Shell shell = initializeShell();
44 		StructuredViewer viewer = initializeViewer(shell);
45 		viewer.setLabelProvider(LabelProvider.createTextProvider(inputElement -> inputElement.toString()));
46 		shell.open();
47 		Table table = (Table) viewer.getControl();
48 		String firstElementText = table.getItem(0).getText();
49 		assertEquals("rendered label", Integer.valueOf(0).toString(), firstElementText);
50 	}
51 
testCreateTextImageProvider()52 	public void testCreateTextImageProvider() {
53 		Shell shell = initializeShell();
54 		StructuredViewer viewer = initializeViewer(shell);
55 		Image fgImage = ImageDescriptor.createFromFile(TestLabelProvider.class, "images/java.gif").createImage();
56 		viewer.setLabelProvider(LabelProvider.createTextImageProvider(inputElement -> inputElement.toString(),
57 				inputElement -> fgImage));
58 		shell.open();
59 		Table table = (Table) viewer.getControl();
60 		String firstElementText = table.getItem(0).getText();
61 		LabelProvider provider = (LabelProvider) viewer.getLabelProvider();
62 		assertEquals("same label text", Integer.valueOf(0).toString(), firstElementText);
63 		assertEquals("same image", fgImage, provider.getImage(table.getItem(0)));
64 
65 	}
66 
testCreateImageProvider()67 	public void testCreateImageProvider() {
68 		Shell shell = initializeShell();
69 		StructuredViewer viewer = initializeViewer(shell);
70 		Image fgImage = ImageDescriptor.createFromFile(TestLabelProvider.class, "images/java.gif").createImage();
71 		viewer.setLabelProvider(LabelProvider.createImageProvider(inputElement -> fgImage));
72 		shell.open();
73 		Table table = (Table) viewer.getControl();
74 		LabelProvider provider = (LabelProvider) viewer.getLabelProvider();
75 		String firstElementText = table.getItem(0).getText();
76 		assertEquals("same label text", Integer.valueOf(0).toString(), firstElementText);
77 		assertEquals("same image", fgImage, provider.getImage(table.getItem(0)));
78 	}
79 
80 }
81