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.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
public class Bug280635Test 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 testBug280635() {
final Gallery g = createGallery(SWT.V_SCROLL | SWT.VIRTUAL);
g.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
GalleryItem item = (GalleryItem) event.item;
int index;
if (item.getParentItem() != null) {
index = item.getParentItem().indexOf(item);
item.setItemCount(0);
} else {
index = g.indexOf(item);
item.setItemCount(100);
}
System.out.println("setData index " + index); //$NON-NLS-1$
// Your image here
// item.setImage(eclipseImage);
item.setText("Item " + index); //$NON-NLS-1$
}
});
g.setItemCount(1);
g.getItem(0).dispose();
assertEquals(g.getItemCount(), 0);
g.dispose();
}
public void testBug280635ForTree() {
final Tree g = createTree(SWT.V_SCROLL | SWT.VIRTUAL);
g.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
TreeItem item = (TreeItem) event.item;
int index;
if (item.getParentItem() != null) {
index = item.getParentItem().indexOf(item);
item.setItemCount(0);
} else {
index = g.indexOf(item);
item.setItemCount(100);
}
System.out.println("setData index " + index); //$NON-NLS-1$
// Your image here
// item.setImage(eclipseImage);
item.setText("Item " + index); //$NON-NLS-1$
}
});
g.setItemCount(1);
g.getItem(0).dispose();
assertEquals(g.getItemCount(), 0);
g.dispose();
}
private Tree createTree(int flags) {
Tree tree = new Tree(s, flags);
return tree;
}
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;
}
}