package org.eclipse.nebula.cwt.v; import org.eclipse.nebula.cwt.test.AbstractVTestCase; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; public class DisposalTests extends AbstractVTestCase { private VCanvas comp; @Override protected void setUp() throws Exception { comp = new VCanvas(getShell(), SWT.BORDER); } public void testDisposeWithListeners() throws Exception { asyncExec(new Runnable() { public void run() { comp.addListener(SWT.Dispose, new Listener() { public void handleEvent(Event event) { assertFalse(comp.isDisposed()); } }); } }); asyncExec(new Runnable() { public void run() { getShell().dispose(); } }); while(getDisplay() != null && !getDisplay().isDisposed()) { Thread.sleep(100); } } }