package org.eclipse.nebula.widgets.gallery.tests; import junit.framework.TestCase; import org.eclipse.nebula.widgets.gallery.DefaultGalleryGroupRenderer; import org.eclipse.nebula.widgets.gallery.DefaultGalleryItemRenderer; import org.eclipse.nebula.widgets.gallery.Gallery; import org.eclipse.nebula.widgets.gallery.GalleryItem; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class GalleryTest extends TestCase { Display d = null; Shell s = null; private boolean createdDisplay = false; protected void setUp() throws Exception { d = Display.getCurrent(); if( d == null ){ d = new Display(); createdDisplay = true; } s = new Shell(d, SWT.NONE); super.setUp(); } protected void tearDown() throws Exception { if( createdDisplay){ d.dispose(); } super.tearDown(); } public void testGalleryAddRemoveClear() { Gallery g = createGallery(SWT.V_SCROLL); // Create 3 groups GalleryItem items[] = new GalleryItem[3]; for (int i = 0; i < 3; i++) { items[i] = new GalleryItem(g, SWT.None); items[i].setText("i" + i); } assertEquals(g.getItemCount(), 3); // Add content in groups GalleryItem subItems[][] = new GalleryItem[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { subItems[i][j] = new GalleryItem(items[i], SWT.None); subItems[i][j].setText("si" + i + "_" + j); } assertEquals(items[i].getItemCount(), 3); } // dispose si1_1 subItems[1][1].dispose(); assertEquals(2, items[1].getItemCount()); assertEquals("si1_0", items[1].getItem(0).getText()); assertEquals("si1_2", items[1].getItem(1).getText()); // dispose si0 items[0].dispose(); assertEquals(2, g.getItemCount()); assertTrue(subItems[0][1].isDisposed()); // clear si1 items[1].clear(); assertEquals("", items[1].getText()); assertFalse("".equals(subItems[1][0].getText())); items[1].setText("si1"); // clearAll si1 items[1].clearAll(true); assertEquals("", subItems[1][0].getText()); g.dispose(); } public void testClear() { Gallery g = createGallery(SWT.V_SCROLL); // Add content GalleryItem items[] = new GalleryItem[3]; GalleryItem subItems[][] = new GalleryItem[3][3]; for (int i = 0; i < 3; i++) { items[i] = new GalleryItem(g, SWT.None); items[i].setText("i" + i); for (int j = 0; j < 3; j++) { subItems[i][j] = new GalleryItem(items[i], SWT.None); subItems[i][j].setText("si" + i + "_" + j); } } g.clear(0, true); assertEquals("", items[0].getText() ) ; assertEquals("", subItems[0][0].getText() ) ; assertEquals("", subItems[0][1].getText() ) ; assertEquals("", subItems[0][2].getText() ) ; g.clear(1); assertEquals("", items[1].getText() ) ; assertFalse("".equals( subItems[1][0].getText() )) ; assertFalse("".equals( subItems[1][1].getText() )) ; assertFalse("".equals( subItems[1][2].getText() )) ; g.clear(2, false); assertEquals("", items[2].getText() ) ; assertFalse("".equals( subItems[2][0].getText() )) ; assertFalse("".equals( subItems[2][1].getText() )) ; assertFalse("".equals( subItems[2][2].getText() )) ; } private Gallery createGallery(int flags) { Gallery g = new Gallery(s, flags); // Renderers DefaultGalleryGroupRenderer gr = new DefaultGalleryGroupRenderer(); gr.setMinMargin(2); gr.setItemHeight(56); gr.setItemWidth(72); gr.setAutoMargin(true); g.setGroupRenderer(gr); DefaultGalleryItemRenderer ir = new DefaultGalleryItemRenderer(); g.setItemRenderer(ir); return g; } }