Exemple #1
0
 @Test
 public void testDispose() {
   final List<Object> disposedWidgets = new ArrayList<Object>();
   DisposeListener disposeListener =
       new DisposeListener() {
         public void widgetDisposed(DisposeEvent evt) {
           disposedWidgets.add(evt.getSource());
         }
       };
   Display display = new Display();
   Composite shell = new Shell(display, SWT.NONE);
   shell.addDisposeListener(disposeListener);
   Button button1 = new Button(shell, SWT.PUSH);
   button1.addDisposeListener(disposeListener);
   // Ensure that dipose removes a widget from its parent and sets isDisposed()
   button1.dispose();
   assertTrue(button1.isDisposed());
   assertFalse(find(shell.getChildren(), button1));
   assertSame(button1, disposedWidgets.get(0));
   // Ensure that dispose may be called more than once
   disposedWidgets.clear();
   button1.dispose();
   assertTrue(button1.isDisposed());
   assertEquals(0, disposedWidgets.size());
   Button button2 = new Button(shell, SWT.PUSH);
   button2.addDisposeListener(disposeListener);
   shell.dispose();
   assertEquals(2, disposedWidgets.size());
   assertSame(shell, disposedWidgets.get(0));
   assertSame(button2, disposedWidgets.get(1));
   assertTrue(shell.isDisposed());
   assertTrue(button2.isDisposed());
   // the assert below may not work in the future since getChildren is
   // checkWidget()-protected
   assertEquals(0, ControlHolder.size(shell));
   assertEquals(0, Display.getCurrent().getShells().length);
   //
   disposedWidgets.clear();
   shell.dispose();
   assertEquals(0, disposedWidgets.size());
   assertTrue(shell.isDisposed());
 }
  public void testAddRemoveListener() {
    DisposeListener listener =
        new DisposeListener() {
          public void widgetDisposed(final DisposeEvent event) {
            log += WIDGET_DISPOSED;
          }
        };
    Display display = new Display();
    Composite shell = new Shell(display, SWT.NONE);
    shell.addDisposeListener(listener);

    DisposeEvent event = new DisposeEvent(shell);
    event.processEvent();
    assertEquals(WIDGET_DISPOSED, log);

    log = "";
    shell.removeDisposeListener(listener);
    event = new DisposeEvent(shell);
    event.processEvent();
    assertEquals("", log);
  }