Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 215468 Details for
Bug 379234
Untyped Expand/Collapse listeners are not notified
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Improved patch
Bug-379234.patch (text/plain), 8.46 KB, created by
Ivan Furnadjiev
on 2012-05-11 08:11:41 EDT
(
hide
)
Description:
Improved patch
Filename:
MIME Type:
Creator:
Ivan Furnadjiev
Created:
2012-05-11 08:11:41 EDT
Size:
8.46 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt >Index: src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java,v >retrieving revision 1.44 >diff -u -r1.44 UntypedEventAdapter.java >--- src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java 14 Nov 2011 23:46:43 -0000 1.44 >+++ src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java 11 May 2012 12:05:33 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2002, 2011 Innoopract Informationssysteme GmbH and others. >+ * Copyright (c) 2002, 2012 Innoopract Informationssysteme GmbH and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -27,6 +27,7 @@ > SelectionListener, > FocusListener, > TreeListener, >+ ExpandListener, > ShellListener, > MenuListener, > ModifyListener, >@@ -114,6 +115,18 @@ > dispatchEvent( event ); > } > >+ public void itemCollapsed( ExpandEvent typedEvent ) { >+ Event event = createEvent( SWT.Collapse, typedEvent.getSource() ); >+ copyFields( typedEvent, event ); >+ dispatchEvent( event ); >+ } >+ >+ public void itemExpanded( ExpandEvent typedEvent ) { >+ Event event = createEvent( SWT.Expand, typedEvent.getSource() ); >+ copyFields( typedEvent, event ); >+ dispatchEvent( event ); >+ } >+ > public void shellActivated( ShellEvent typedEvent ) { > Event event = createEvent( SWT.Activate, typedEvent.getSource() ); > copyFields( typedEvent, event ); >@@ -272,7 +285,11 @@ > break; > case SWT.Expand: > case SWT.Collapse: >- TreeEvent.addListener( widget, ( TreeListener )this ); >+ if( widget instanceof ExpandBar ) { >+ ExpandEvent.addListener( widget, ( ExpandListener )this ); >+ } else { >+ TreeEvent.addListener( widget, ( TreeListener )this ); >+ } > break; > case SWT.Activate: > case SWT.Deactivate: >@@ -364,7 +381,11 @@ > break; > case SWT.Expand: > case SWT.Collapse: >- TreeEvent.removeListener( widget, ( TreeListener )this ); >+ if( widget instanceof ExpandBar ) { >+ ExpandEvent.removeListener( widget, ( ExpandListener )this ); >+ } else { >+ TreeEvent.removeListener( widget, ( TreeListener )this ); >+ } > break; > case SWT.Activate: > case SWT.Deactivate: >@@ -488,7 +509,11 @@ > break; > case SWT.Expand: > case SWT.Collapse: >- result = TreeEvent.hasListener( widget ); >+ if( widget instanceof ExpandBar ) { >+ result = ExpandEvent.hasListener( widget ); >+ } else { >+ result = TreeEvent.hasListener( widget ); >+ } > break; > case SWT.Activate: > case SWT.Deactivate: >@@ -566,10 +591,10 @@ > break; > case SWT.Expand: > case SWT.Collapse: >- if( event.widget instanceof Tree ) { >- typedEvent = new TreeEvent( event ); >- } else { >+ if( event.widget instanceof ExpandBar ) { > typedEvent = new ExpandEvent( event ); >+ } else { >+ typedEvent = new TreeEvent( event ); > } > break; > case SWT.Activate: >@@ -692,6 +717,18 @@ > to.text = from.text; > } > >+ private static void copyFields( ExpandEvent from, Event to ) { >+ copyFields( ( TypedEvent )from, to ); >+ to.detail = from.detail; >+ to.doit = from.doit; >+ to.x = from.x; >+ to.y = from.y; >+ to.height = from.height; >+ to.width = from.width; >+ to.item = from.item; >+ to.text = from.text; >+ } >+ > private static void copyFields( VerifyEvent from, Event to ) { > copyFields( ( TypedEvent )from, to ); > to.start = from.start; >#P org.eclipse.rap.rwt.test >Index: src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.test/src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java,v >retrieving revision 1.22 >diff -u -r1.22 UntypedEventAdapter_Test.java >--- src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java 4 Dec 2011 19:34:26 -0000 1.22 >+++ src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java 11 May 2012 12:05:35 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2002, 2011 Innoopract Informationssysteme GmbH and others. >+ * Copyright (c) 2002, 2012 Innoopract Informationssysteme GmbH and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -18,6 +18,7 @@ > import junit.framework.TestCase; > > import org.eclipse.rap.rwt.testfixture.Fixture; >+import org.eclipse.rwt.lifecycle.PhaseId; > import org.eclipse.swt.SWT; > import org.eclipse.swt.events.*; > import org.eclipse.swt.internal.events.SetDataEvent; >@@ -35,10 +36,11 @@ > private static final String EVENT_FIRED = "fired|"; > private static int eventType; > private static String log; >- >+ > private Display display; > private Control widget; > >+ @Override > protected void setUp() throws Exception { > Fixture.setUp(); > eventType = 0; >@@ -47,6 +49,7 @@ > widget = new Shell( display ); > } > >+ @Override > protected void tearDown() throws Exception { > Fixture.tearDown(); > } >@@ -85,6 +88,12 @@ > adapter.addListener( SWT.Collapse, listener ); > adapter.treeCollapsed( new TreeEvent( widget, null, 0 ) ); > assertEquals( SWT.Collapse, eventType ); >+ adapter.addListener( SWT.Expand, listener ); >+ adapter.itemExpanded( new ExpandEvent( widget, null, 0 ) ); >+ assertEquals( SWT.Expand, eventType ); >+ adapter.addListener( SWT.Collapse, listener ); >+ adapter.itemCollapsed( new ExpandEvent( widget, null, 0 ) ); >+ assertEquals( SWT.Collapse, eventType ); > adapter.addListener( SWT.Activate, listener ); > adapter.shellActivated( new ShellEvent( widget, 0 ) ); > assertEquals( SWT.Activate, eventType ); >@@ -250,6 +259,46 @@ > assertEquals( mouseEvent.stateMask, eventLog[ 0 ].stateMask ); > } > >+ public void testAddNotifyRemoveTreeEvent() { >+ Fixture.fakePhase( PhaseId.PROCESS_ACTION ); >+ final Event[] eventLog = { null }; >+ Listener listener = new Listener() { >+ public void handleEvent( Event event ) { >+ eventLog[ 0 ] = event; >+ } >+ }; >+ Shell shell = new Shell( display ); >+ Tree tree = new Tree( shell, SWT.NONE ); >+ tree.addListener( SWT.Expand, listener ); >+ assertTrue( TreeEvent.hasListener( tree ) ); >+ >+ tree.notifyListeners( SWT.Expand, null ); >+ assertNotNull( eventLog[ 0 ] ); >+ >+ tree.removeListener( SWT.Expand, listener ); >+ assertFalse( TreeEvent.hasListener( tree ) ); >+ } >+ >+ public void testAddNotifyRemoveExpandEvent() { >+ Fixture.fakePhase( PhaseId.PROCESS_ACTION ); >+ final Event[] eventLog = { null }; >+ Listener listener = new Listener() { >+ public void handleEvent( Event event ) { >+ eventLog[ 0 ] = event; >+ } >+ }; >+ Shell shell = new Shell( display ); >+ ExpandBar expandBar = new ExpandBar( shell, SWT.NONE ); >+ expandBar.addListener( SWT.Expand, listener ); >+ assertTrue( ExpandEvent.hasListener( expandBar ) ); >+ >+ expandBar.notifyListeners( SWT.Expand, null ); >+ assertNotNull( eventLog[ 0 ] ); >+ >+ expandBar.removeListener( SWT.Expand, listener ); >+ assertFalse( ExpandEvent.hasListener( expandBar ) ); >+ } >+ > public void testInvalidEventType() { > final Event[] eventLog = { null }; > Listener listener = new Listener() { >@@ -262,13 +311,13 @@ > assertNull( eventLog[ 0 ] ); > widget.removeListener( 505, listener ); > } >- >+ > public void testIsSerializable() throws Exception { > UntypedEventAdapter adapter = new UntypedEventAdapter(); > adapter.addListener( SWT.Move, new SerializableListener() ); >- >+ > UntypedEventAdapter deserializeAdapter = Fixture.serializeAndDeserialize( adapter ); >- >+ > Listener[] listeners = deserializeAdapter.getListeners( SWT.Move ); > assertEquals( 1, listeners.length ); > assertEquals( SerializableListener.class, listeners[ 0 ].getClass() );
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
ivan
:
review?
Actions:
View
|
Diff
Attachments on
bug 379234
:
215465
| 215468