Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 379234 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java (-7 / +44 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2002, 2011 Innoopract Informationssysteme GmbH and others.
2
 * Copyright (c) 2002, 2012 Innoopract Informationssysteme GmbH and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 27-32 Link Here
27
             SelectionListener,
27
             SelectionListener,
28
             FocusListener,
28
             FocusListener,
29
             TreeListener,
29
             TreeListener,
30
             ExpandListener,
30
             ShellListener,
31
             ShellListener,
31
             MenuListener,
32
             MenuListener,
32
             ModifyListener,
33
             ModifyListener,
Lines 114-119 Link Here
114
    dispatchEvent( event );
115
    dispatchEvent( event );
115
  }
116
  }
116
117
118
  public void itemCollapsed( ExpandEvent typedEvent ) {
119
    Event event = createEvent( SWT.Collapse, typedEvent.getSource() );
120
    copyFields( typedEvent, event );
121
    dispatchEvent( event );
122
  }
123
124
  public void itemExpanded( ExpandEvent typedEvent ) {
125
    Event event = createEvent( SWT.Expand, typedEvent.getSource() );
126
    copyFields( typedEvent, event );
127
    dispatchEvent( event );
128
  }
129
117
  public void shellActivated( ShellEvent typedEvent ) {
130
  public void shellActivated( ShellEvent typedEvent ) {
118
    Event event = createEvent( SWT.Activate, typedEvent.getSource() );
131
    Event event = createEvent( SWT.Activate, typedEvent.getSource() );
119
    copyFields( typedEvent, event );
132
    copyFields( typedEvent, event );
Lines 272-278 Link Here
272
      break;
285
      break;
273
      case SWT.Expand:
286
      case SWT.Expand:
274
      case SWT.Collapse:
287
      case SWT.Collapse:
275
        TreeEvent.addListener( widget, ( TreeListener )this );
288
        if( widget instanceof ExpandBar ) {
289
          ExpandEvent.addListener( widget, ( ExpandListener )this );
290
        } else {
291
          TreeEvent.addListener( widget, ( TreeListener )this );
292
        }
276
      break;
293
      break;
277
      case SWT.Activate:
294
      case SWT.Activate:
278
      case SWT.Deactivate:
295
      case SWT.Deactivate:
Lines 364-370 Link Here
364
      break;
381
      break;
365
      case SWT.Expand:
382
      case SWT.Expand:
366
      case SWT.Collapse:
383
      case SWT.Collapse:
367
        TreeEvent.removeListener( widget, ( TreeListener )this );
384
        if( widget instanceof ExpandBar ) {
385
          ExpandEvent.removeListener( widget, ( ExpandListener )this );
386
        } else {
387
          TreeEvent.removeListener( widget, ( TreeListener )this );
388
        }
368
      break;
389
      break;
369
      case SWT.Activate:
390
      case SWT.Activate:
370
      case SWT.Deactivate:
391
      case SWT.Deactivate:
Lines 488-494 Link Here
488
        break;
509
        break;
489
      case SWT.Expand:
510
      case SWT.Expand:
490
      case SWT.Collapse:
511
      case SWT.Collapse:
491
        result = TreeEvent.hasListener( widget );
512
        if( widget instanceof ExpandBar ) {
513
          result = ExpandEvent.hasListener( widget );
514
        } else {
515
          result = TreeEvent.hasListener( widget );
516
        }
492
        break;
517
        break;
493
      case SWT.Activate:
518
      case SWT.Activate:
494
      case SWT.Deactivate:
519
      case SWT.Deactivate:
Lines 566-575 Link Here
566
      break;
591
      break;
567
      case SWT.Expand:
592
      case SWT.Expand:
568
      case SWT.Collapse:
593
      case SWT.Collapse:
569
        if( event.widget instanceof Tree ) {
594
        if( event.widget instanceof ExpandBar ) {
570
          typedEvent = new TreeEvent( event );
571
        } else {
572
          typedEvent = new ExpandEvent( event );
595
          typedEvent = new ExpandEvent( event );
596
        } else {
597
          typedEvent = new TreeEvent( event );
573
        }
598
        }
574
      break;
599
      break;
575
      case SWT.Activate:
600
      case SWT.Activate:
Lines 692-697 Link Here
692
    to.text = from.text;
717
    to.text = from.text;
693
  }
718
  }
694
719
720
  private static void copyFields( ExpandEvent from, Event to ) {
721
    copyFields( ( TypedEvent )from, to );
722
    to.detail = from.detail;
723
    to.doit = from.doit;
724
    to.x = from.x;
725
    to.y = from.y;
726
    to.height = from.height;
727
    to.width = from.width;
728
    to.item = from.item;
729
    to.text = from.text;
730
  }
731
695
  private static void copyFields( VerifyEvent from, Event to ) {
732
  private static void copyFields( VerifyEvent from, Event to ) {
696
    copyFields( ( TypedEvent )from, to );
733
    copyFields( ( TypedEvent )from, to );
697
    to.start = from.start;
734
    to.start = from.start;
(-)src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java (-5 / +54 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2002, 2011 Innoopract Informationssysteme GmbH and others.
2
 * Copyright (c) 2002, 2012 Innoopract Informationssysteme GmbH and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 18-23 Link Here
18
import junit.framework.TestCase;
18
import junit.framework.TestCase;
19
19
20
import org.eclipse.rap.rwt.testfixture.Fixture;
20
import org.eclipse.rap.rwt.testfixture.Fixture;
21
import org.eclipse.rwt.lifecycle.PhaseId;
21
import org.eclipse.swt.SWT;
22
import org.eclipse.swt.SWT;
22
import org.eclipse.swt.events.*;
23
import org.eclipse.swt.events.*;
23
import org.eclipse.swt.internal.events.SetDataEvent;
24
import org.eclipse.swt.internal.events.SetDataEvent;
Lines 35-44 Link Here
35
  private static final String EVENT_FIRED = "fired|";
36
  private static final String EVENT_FIRED = "fired|";
36
  private static int eventType;
37
  private static int eventType;
37
  private static String log;
38
  private static String log;
38
  
39
39
  private Display display;
40
  private Display display;
40
  private Control widget;
41
  private Control widget;
41
42
43
  @Override
42
  protected void setUp() throws Exception {
44
  protected void setUp() throws Exception {
43
    Fixture.setUp();
45
    Fixture.setUp();
44
    eventType = 0;
46
    eventType = 0;
Lines 47-52 Link Here
47
    widget = new Shell( display );
49
    widget = new Shell( display );
48
  }
50
  }
49
51
52
  @Override
50
  protected void tearDown() throws Exception {
53
  protected void tearDown() throws Exception {
51
    Fixture.tearDown();
54
    Fixture.tearDown();
52
  }
55
  }
Lines 85-90 Link Here
85
    adapter.addListener( SWT.Collapse, listener );
88
    adapter.addListener( SWT.Collapse, listener );
86
    adapter.treeCollapsed( new TreeEvent( widget, null, 0 ) );
89
    adapter.treeCollapsed( new TreeEvent( widget, null, 0 ) );
87
    assertEquals( SWT.Collapse, eventType );
90
    assertEquals( SWT.Collapse, eventType );
91
    adapter.addListener( SWT.Expand, listener );
92
    adapter.itemExpanded( new ExpandEvent( widget, null, 0 ) );
93
    assertEquals( SWT.Expand, eventType );
94
    adapter.addListener( SWT.Collapse, listener );
95
    adapter.itemCollapsed( new ExpandEvent( widget, null, 0 ) );
96
    assertEquals( SWT.Collapse, eventType );
88
    adapter.addListener( SWT.Activate, listener );
97
    adapter.addListener( SWT.Activate, listener );
89
    adapter.shellActivated( new ShellEvent( widget, 0 ) );
98
    adapter.shellActivated( new ShellEvent( widget, 0 ) );
90
    assertEquals( SWT.Activate, eventType );
99
    assertEquals( SWT.Activate, eventType );
Lines 250-255 Link Here
250
    assertEquals( mouseEvent.stateMask, eventLog[ 0 ].stateMask );
259
    assertEquals( mouseEvent.stateMask, eventLog[ 0 ].stateMask );
251
  }
260
  }
252
261
262
  public void testAddNotifyRemoveTreeEvent() {
263
    Fixture.fakePhase( PhaseId.PROCESS_ACTION );
264
    final Event[] eventLog = { null };
265
    Listener listener = new Listener() {
266
      public void handleEvent( Event event ) {
267
        eventLog[ 0 ] = event;
268
      }
269
    };
270
    Shell shell = new Shell( display );
271
    Tree tree = new Tree( shell, SWT.NONE );
272
    tree.addListener( SWT.Expand, listener );
273
    assertTrue( TreeEvent.hasListener( tree ) );
274
275
    tree.notifyListeners( SWT.Expand, null );
276
    assertNotNull( eventLog[ 0 ] );
277
278
    tree.removeListener( SWT.Expand, listener );
279
    assertFalse( TreeEvent.hasListener( tree ) );
280
  }
281
282
  public void testAddNotifyRemoveExpandEvent() {
283
    Fixture.fakePhase( PhaseId.PROCESS_ACTION );
284
    final Event[] eventLog = { null };
285
    Listener listener = new Listener() {
286
      public void handleEvent( Event event ) {
287
        eventLog[ 0 ] = event;
288
      }
289
    };
290
    Shell shell = new Shell( display );
291
    ExpandBar expandBar = new ExpandBar( shell, SWT.NONE );
292
    expandBar.addListener( SWT.Expand, listener );
293
    assertTrue( ExpandEvent.hasListener( expandBar ) );
294
295
    expandBar.notifyListeners( SWT.Expand, null );
296
    assertNotNull( eventLog[ 0 ] );
297
298
    expandBar.removeListener( SWT.Expand, listener );
299
    assertFalse( ExpandEvent.hasListener( expandBar ) );
300
  }
301
253
  public void testInvalidEventType() {
302
  public void testInvalidEventType() {
254
    final Event[] eventLog = { null };
303
    final Event[] eventLog = { null };
255
    Listener listener = new Listener() {
304
    Listener listener = new Listener() {
Lines 262-274 Link Here
262
    assertNull( eventLog[ 0 ] );
311
    assertNull( eventLog[ 0 ] );
263
    widget.removeListener( 505, listener );
312
    widget.removeListener( 505, listener );
264
  }
313
  }
265
  
314
266
  public void testIsSerializable() throws Exception {
315
  public void testIsSerializable() throws Exception {
267
    UntypedEventAdapter adapter = new UntypedEventAdapter();
316
    UntypedEventAdapter adapter = new UntypedEventAdapter();
268
    adapter.addListener( SWT.Move, new SerializableListener() );
317
    adapter.addListener( SWT.Move, new SerializableListener() );
269
    
318
270
    UntypedEventAdapter deserializeAdapter = Fixture.serializeAndDeserialize( adapter );
319
    UntypedEventAdapter deserializeAdapter = Fixture.serializeAndDeserialize( adapter );
271
    
320
272
    Listener[] listeners = deserializeAdapter.getListeners( SWT.Move );
321
    Listener[] listeners = deserializeAdapter.getListeners( SWT.Move );
273
    assertEquals( 1, listeners.length );
322
    assertEquals( 1, listeners.length );
274
    assertEquals( SerializableListener.class, listeners[ 0 ].getClass() );
323
    assertEquals( SerializableListener.class, listeners[ 0 ].getClass() );

Return to bug 379234