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