Adopt widgets to the recent changes in the event system
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/Grid.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/Grid.java
index a8c5dbc..78b6c41 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/Grid.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/Grid.java
@@ -27,9 +27,7 @@
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
@@ -44,6 +42,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.TypedListener;
/**
@@ -223,7 +222,12 @@
*/
public void addSelectionListener( SelectionListener listener ) {
checkWidget();
- SelectionEvent.addListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ TypedListener typedListener = new TypedListener( listener );
+ addListener( SWT.Selection, typedListener );
+ addListener( SWT.DefaultSelection, typedListener );
}
/**
@@ -242,7 +246,11 @@
*/
public void removeSelectionListener( SelectionListener listener ) {
checkWidget();
- SelectionEvent.removeListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ removeListener( SWT.Selection, listener );
+ removeListener( SWT.DefaultSelection, listener );
}
/**
@@ -267,7 +275,12 @@
*/
public void addTreeListener( TreeListener listener ) {
checkWidget();
- TreeEvent.addListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ TypedListener typedListener = new TypedListener( listener );
+ addListener( SWT.Expand, typedListener );
+ addListener( SWT.Collapse, typedListener );
}
/**
@@ -286,7 +299,11 @@
*/
public void removeTreeListener( TreeListener listener ) {
checkWidget();
- TreeEvent.removeListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ removeListener( SWT.Expand, listener );
+ removeListener( SWT.Collapse, listener );
}
/**
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumn.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumn.java
index fd25242..d9d89a0 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumn.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumn.java
@@ -12,14 +12,13 @@
import org.eclipse.rap.rwt.graphics.Graphics;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.TypedListener;
/**
@@ -224,7 +223,12 @@
*/
public void addSelectionListener( SelectionListener listener ) {
checkWidget();
- SelectionEvent.addListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ TypedListener typedListener = new TypedListener( listener );
+ addListener( SWT.Selection, typedListener );
+ addListener( SWT.DefaultSelection, typedListener );
}
/**
@@ -245,7 +249,11 @@
*/
public void removeSelectionListener( SelectionListener listener ) {
checkWidget();
- SelectionEvent.removeListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ removeListener( SWT.Selection, listener );
+ removeListener( SWT.DefaultSelection, listener );
}
/**
@@ -268,7 +276,12 @@
*/
public void addControlListener( ControlListener listener ) {
checkWidget();
- ControlEvent.addListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ TypedListener typedListener = new TypedListener( listener );
+ addListener( SWT.Move, typedListener );
+ addListener( SWT.Resize, typedListener );
}
/**
@@ -290,7 +303,11 @@
*/
public void removeControlListener( ControlListener listener ) {
checkWidget();
- ControlEvent.removeListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ removeListener( SWT.Move, listener );
+ removeListener( SWT.Resize, listener );
}
/**
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumnGroup.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumnGroup.java
index b713fc4..f6f44f1 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumnGroup.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/GridColumnGroup.java
@@ -14,11 +14,11 @@
import java.util.List;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.TypedListener;
/**
@@ -120,7 +120,12 @@
*/
public void addTreeListener( TreeListener listener ) {
checkWidget();
- TreeEvent.addListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ TypedListener typedListener = new TypedListener( listener );
+ addListener( SWT.Expand, typedListener );
+ addListener( SWT.Collapse, typedListener );
}
/**
@@ -142,7 +147,11 @@
*/
public void removeTreeListener( TreeListener listener ) {
checkWidget();
- TreeEvent.removeListener( this, listener );
+ if( listener == null ) {
+ SWT.error( SWT.ERROR_NULL_ARGUMENT );
+ }
+ removeListener( SWT.Expand, listener );
+ removeListener( SWT.Collapse, listener );
}
/**
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkit/GridColumnGroupLCA.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkit/GridColumnGroupLCA.java
index d805d12..a72a3dc 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkit/GridColumnGroupLCA.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkit/GridColumnGroupLCA.java
@@ -26,9 +26,10 @@
import org.eclipse.rap.rwt.lifecycle.ProcessActionRunner;
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
-import org.eclipse.swt.events.TreeEvent;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.internal.widgets.ItemLCAUtil;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Widget;
@@ -104,10 +105,11 @@
group.setExpanded( expanded );
}
} );
- if( TreeEvent.hasListener( group ) ) {
- int eventType = expanded ? TreeEvent.TREE_EXPANDED : TreeEvent.TREE_COLLAPSED;
- TreeEvent event = new TreeEvent( group, null, eventType );
- event.processEvent();
+ if( expanded && group.isListening( SWT.Expand ) ) {
+ processGroupExpandedEvent( group );
+ }
+ if( !expanded && group.isListening( SWT.Collapse ) ) {
+ processGroupCollapsedEvent( group );
}
}
}
@@ -166,4 +168,17 @@
}
return result;
}
+
+ /////////////////////////////////
+ // Process expand/collapse events
+
+ private static void processGroupExpandedEvent( GridColumnGroup group ) {
+ Event event = new Event();
+ group.notifyListeners( SWT.Expand, event );
+ }
+
+ private static void processGroupCollapsedEvent( GridColumnGroup group ) {
+ Event event = new Event();
+ group.notifyListeners( SWT.Collapse, event );
+ }
}
diff --git a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
index 16187c0..3e3238a 100644
--- a/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
+++ b/bundles/org.eclipse.rap.nebula.widgets.grid/src/org/eclipse/nebula/widgets/grid/internal/gridkit/GridLCA.java
@@ -117,6 +117,7 @@
ControlLCAUtil.processKeyEvents( grid );
ControlLCAUtil.processMenuDetect( grid );
WidgetLCAUtil.processHelp( grid );
+ EventLCAUtil.processScrollBarSelection( grid );
}
@Override
@@ -336,11 +337,11 @@
boolean result = false;
ScrollBar horizontalBar = grid.getHorizontalBar();
if( horizontalBar != null ) {
- result = result || SelectionEvent.hasListener( horizontalBar );
+ result = result || horizontalBar.isListening( SWT.Selection );
}
ScrollBar verticalBar = grid.getVerticalBar();
if( verticalBar != null ) {
- result = result || SelectionEvent.hasListener( verticalBar );
+ result = result || verticalBar.isListening( SWT.Selection );
}
return result;
}
@@ -352,12 +353,6 @@
private static void processScrollBarSelection( ScrollBar scrollBar, int selection ) {
if( scrollBar != null ) {
scrollBar.setSelection( selection );
- if( SelectionEvent.hasListener( scrollBar ) ) {
- SelectionEvent evt = new SelectionEvent( scrollBar, null, SelectionEvent.WIDGET_SELECTED );
- evt.stateMask = EventLCAUtil.readStateMask( scrollBar,
- ClientMessageConst.EVENT_WIDGET_SELECTED );
- evt.processEvent();
- }
}
}
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumnGroup_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumnGroup_Test.java
index a6332ef..6cff3b2 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumnGroup_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumnGroup_Test.java
@@ -17,7 +17,6 @@
import org.eclipse.rap.rwt.testfixture.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.TreeAdapter;
-import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
@@ -85,10 +84,12 @@
TreeListener listener = new TreeAdapter() {};
group.addTreeListener( listener );
- assertTrue( TreeEvent.hasListener( group ) );
+ assertTrue( group.isListening( SWT.Expand ) );
+ assertTrue( group.isListening( SWT.Collapse ) );
group.removeTreeListener( listener );
- assertFalse( TreeEvent.hasListener( group ) );
+ assertFalse( group.isListening( SWT.Expand ) );
+ assertFalse( group.isListening( SWT.Collapse ) );
}
public void testGetHeaderText_Initial() {
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumn_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumn_Test.java
index d52c620..3e19955 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumn_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/GridColumn_Test.java
@@ -23,7 +23,6 @@
import org.eclipse.rap.rwt.testfixture.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
@@ -481,13 +480,16 @@
public void testAddRemoveControlListener() {
GridColumn column = new GridColumn( grid, SWT.NONE );
ControlListener listener = new ControlAdapter() { };
- assertFalse( ControlEvent.hasListener( column ) );
+ assertFalse( column.isListening( SWT.Move ) );
+ assertFalse( column.isListening( SWT.Resize ) );
column.addControlListener( listener );
- assertTrue( ControlEvent.hasListener( column ) );
+ assertTrue( column.isListening( SWT.Move ) );
+ assertTrue( column.isListening( SWT.Resize ) );
column.removeControlListener( listener );
- assertFalse( ControlEvent.hasListener( column ) );
+ assertFalse( column.isListening( SWT.Move ) );
+ assertFalse( column.isListening( SWT.Resize ) );
}
public void testAddControlListener_NullArgument() {
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/Grid_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/Grid_Test.java
index 22d4c07..9b6e784 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/Grid_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/Grid_Test.java
@@ -28,10 +28,8 @@
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.TreeAdapter;
-import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
@@ -366,20 +364,24 @@
SelectionListener listener = new SelectionAdapter() {};
grid.addSelectionListener( listener );
- assertTrue( SelectionEvent.hasListener( grid ) );
+ assertTrue( grid.isListening( SWT.Selection ) );
+ assertTrue( grid.isListening( SWT.DefaultSelection ) );
grid.removeSelectionListener( listener );
- assertFalse( SelectionEvent.hasListener( grid ) );
+ assertFalse( grid.isListening( SWT.Selection ) );
+ assertFalse( grid.isListening( SWT.DefaultSelection ) );
}
public void testAddRemoveTreeListener() {
TreeListener listener = new TreeAdapter() {};
grid.addTreeListener( listener );
- assertTrue( TreeEvent.hasListener( grid ) );
+ assertTrue( grid.isListening( SWT.Expand ) );
+ assertTrue( grid.isListening( SWT.Collapse ) );
grid.removeTreeListener( listener );
- assertFalse( TreeEvent.hasListener( grid ) );
+ assertFalse( grid.isListening( SWT.Expand ) );
+ assertFalse( grid.isListening( SWT.Collapse ) );
}
public void testClearAll() {
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkip/GridColumnGroupLCA_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkip/GridColumnGroupLCA_Test.java
index 81fc716..0670431 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkip/GridColumnGroupLCA_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumngroupkip/GridColumnGroupLCA_Test.java
@@ -14,15 +14,18 @@
import static org.eclipse.nebula.widgets.grid.GridTestUtil.loadImage;
import static org.eclipse.nebula.widgets.grid.internal.gridkit.GridLCATestUtil.jsonEquals;
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import java.io.IOException;
import java.util.Arrays;
-import java.util.LinkedList;
import java.util.List;
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridColumnGroup;
import org.eclipse.nebula.widgets.grid.internal.gridcolumngroupkit.GridColumnGroupLCA;
+import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.internal.protocol.ClientMessageConst;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.rap.rwt.testfixture.Fixture;
@@ -31,8 +34,8 @@
import org.eclipse.rap.rwt.testfixture.Message.DestroyOperation;
import org.eclipse.rap.rwt.testfixture.Message.Operation;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TreeAdapter;
import org.eclipse.swt.events.TreeEvent;
+import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.internal.graphics.ImageFactory;
@@ -41,6 +44,7 @@
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.mockito.ArgumentCaptor;
import junit.framework.TestCase;
@@ -242,30 +246,30 @@
}
public void testProcessTreeEvent_Expanded() {
- List<TreeEvent> events = new LinkedList<TreeEvent>();
- group.addTreeListener( new LoggingTreeListener( events ) );
+ TreeListener treeListener = mock( TreeListener.class );
+ group.addTreeListener( treeListener );
group.setExpanded( false );
Fixture.fakeNotifyOperation( getId( group ), ClientMessageConst.EVENT_TREE_EXPANDED, null );
Fixture.readDataAndProcessAction( group );
- assertEquals( 1, events.size() );
- TreeEvent event = events.get( 0 );
- assertEquals( SWT.Expand, event.getID() );
+ ArgumentCaptor<TreeEvent> captor = ArgumentCaptor.forClass( TreeEvent.class );
+ verify( treeListener, times( 1 ) ).treeExpanded( captor.capture() );
+ TreeEvent event = captor.getValue();
assertEquals( group, event.getSource() );
assertTrue( group.getExpanded() );
}
public void testProcessTreeEvent_Collapsed() {
- List<TreeEvent> events = new LinkedList<TreeEvent>();
- group.addTreeListener( new LoggingTreeListener( events ) );
+ TreeListener treeListener = mock( TreeListener.class );
+ group.addTreeListener( treeListener );
Fixture.fakeNotifyOperation( getId( group ), ClientMessageConst.EVENT_TREE_COLLAPSED, null );
Fixture.readDataAndProcessAction( group );
- assertEquals( 1, events.size() );
- TreeEvent event = events.get( 0 );
- assertEquals( SWT.Collapse, event.getID() );
+ ArgumentCaptor<TreeEvent> captor = ArgumentCaptor.forClass( TreeEvent.class );
+ verify( treeListener, times( 1 ) ).treeCollapsed( captor.capture() );
+ TreeEvent event = captor.getValue();
assertEquals( group, event.getSource() );
assertFalse( group.getExpanded() );
}
@@ -407,7 +411,7 @@
}
public void testRenderCustomVariant() throws IOException {
- group.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+ group.setData( RWT.CUSTOM_VARIANT, "blue" );
lca.renderChanges( group );
Message message = Fixture.getProtocolMessage();
@@ -418,7 +422,7 @@
Fixture.markInitialized( display );
Fixture.markInitialized( group );
- group.setData( WidgetUtil.CUSTOM_VARIANT, "blue" );
+ group.setData( RWT.CUSTOM_VARIANT, "blue" );
Fixture.preserveWidgets();
lca.renderChanges( group );
@@ -426,21 +430,4 @@
assertNull( message.findSetOperation( group, "customVariant" ) );
}
- //////////////////
- // Helping classes
-
- private static class LoggingTreeListener extends TreeAdapter {
- private final List<TreeEvent> events;
- private LoggingTreeListener( List<TreeEvent> events ) {
- this.events = events;
- }
- @Override
- public void treeExpanded( TreeEvent event ) {
- events.add( event );
- }
- @Override
- public void treeCollapsed( TreeEvent event ) {
- events.add( event );
- }
- }
}
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
index a1813b8..0bac66e 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/gridcolumnkit/GridColumnLCA_Test.java
@@ -14,6 +14,11 @@
import static org.eclipse.nebula.widgets.grid.GridTestUtil.loadImage;
import static org.eclipse.nebula.widgets.grid.internal.gridkit.GridLCATestUtil.jsonEquals;
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
@@ -518,10 +523,11 @@
}
public void testReadWidth() {
- final List<ControlEvent> events = new LinkedList<ControlEvent>();
GridColumn[] columns = createGridColumns( grid, 2, SWT.NONE );
- columns[ 0 ].addControlListener( new LoggingControlListener( events ) );
- columns[ 1 ].addControlListener( new LoggingControlListener( events ) );
+ ControlListener controlListener0 = mock( ControlListener.class );
+ columns[ 0 ].addControlListener( controlListener0 );
+ ControlListener controlListener1 = mock( ControlListener.class );
+ columns[ 1 ].addControlListener( controlListener1 );
// Simulate request that initializes widgets
Fixture.fakeNewRequest( display );
@@ -535,25 +541,22 @@
Fixture.fakeCallOperation( getId( columns[ 0 ] ), "resize", parameters );
Fixture.executeLifeCycleFromServerThread();
- assertEquals( 2, events.size() );
- ControlEvent event = events.get( 0 );
- assertSame( columns[ 0 ], event.widget );
- assertEquals( SWT.Resize, event.getID() );
+ verify( controlListener0, times( 1 ) ).controlResized( any( ControlEvent.class ) );
assertEquals( newWidth, columns[ 0 ].getWidth() );
- event = events.get( 1 );
- assertSame( columns[ 1 ], event.widget );
- assertEquals( SWT.Move, event.getID() );
+ verify( controlListener1, times( 1 ) ).controlMoved( any( ControlEvent.class ) );
Message message = Fixture.getProtocolMessage();
assertEquals( Integer.valueOf( newWidth ), message.findSetProperty( columns[ 0 ], "width" ) );
assertEquals( Integer.valueOf( newLeft ), message.findSetProperty( columns[ 1 ], "left" ) );
}
public void testReadLeft() {
- final List<ControlEvent> events = new LinkedList<ControlEvent>();
GridColumn[] columns = createGridColumns( grid, 2, SWT.NONE );
- column.addControlListener( new LoggingControlListener( events ) );
- columns[ 0 ].addControlListener( new LoggingControlListener( events ) );
- columns[ 1 ].addControlListener( new LoggingControlListener( events ) );
+ ControlListener controlListener = mock( ControlListener.class );
+ column.addControlListener( controlListener );
+ ControlListener controlListener0 = mock( ControlListener.class );
+ columns[ 0 ].addControlListener( controlListener0 );
+ ControlListener controlListener1 = mock( ControlListener.class );
+ columns[ 1 ].addControlListener( controlListener1 );
// Simulate request that initializes widgets
Fixture.fakeNewRequest( display );
@@ -566,13 +569,10 @@
Fixture.fakeCallOperation( getId( columns[ 0 ] ), "move", parameters );
Fixture.executeLifeCycleFromServerThread();
- assertEquals( 2, events.size() );
- ControlEvent event = events.get( 0 );
- assertSame( columns[ 0 ], event.widget );
- assertEquals( SWT.Move, event.getID() );
- event = events.get( 1 );
- assertSame( column, event.widget );
- assertEquals( SWT.Move, event.getID() );
+
+ verify( controlListener, times( 1 ) ).controlMoved( any( ControlEvent.class ) );
+ verify( controlListener0, times( 1 ) ).controlMoved( any( ControlEvent.class ) );
+ verify( controlListener1, times( 0 ) ).controlMoved( any( ControlEvent.class ) );
Message message = Fixture.getProtocolMessage();
assertEquals( Integer.valueOf( 20 ), message.findSetProperty( column, "left" ) );
assertEquals( Integer.valueOf( 0 ), message.findSetProperty( columns[ 0 ], "left" ) );
@@ -977,19 +977,4 @@
assertEquals( JSONObject.NULL, message.findSetProperty( column, "footerImage" ) );
}
- //////////////////
- // Helping classes
-
- private static class LoggingControlListener implements ControlListener {
- private final List<ControlEvent> events;
- private LoggingControlListener( List<ControlEvent> events ) {
- this.events = events;
- }
- public void controlMoved( ControlEvent event ) {
- events.add( event );
- }
- public void controlResized( ControlEvent event ) {
- events.add( event );
- }
- }
}
diff --git a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
index 084df96..af7f0c1 100644
--- a/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
+++ b/tests/org.eclipse.rap.nebula.widgets.grid.test/src/org/eclipse/nebula/widgets/grid/internal/griditemkit/GridItemLCA_Test.java
@@ -16,11 +16,11 @@
import static org.eclipse.nebula.widgets.grid.internal.gridkit.GridLCATestUtil.jsonEquals;
import static org.eclipse.rap.rwt.internal.protocol.ClientMessageConst.EVENT_TREE_EXPANDED;
import static org.eclipse.rap.rwt.lifecycle.WidgetUtil.getId;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.rap.rwt.RWT;
@@ -32,9 +32,8 @@
import org.eclipse.rap.rwt.testfixture.Message.CreateOperation;
import org.eclipse.rap.rwt.testfixture.Message.DestroyOperation;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TreeAdapter;
import org.eclipse.swt.events.TreeEvent;
+import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
@@ -42,6 +41,7 @@
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.mockito.ArgumentCaptor;
import junit.framework.TestCase;
@@ -620,33 +620,33 @@
}
public void testProcessTreeEvent_Expanded() {
- List<TreeEvent> events = new LinkedList<TreeEvent>();
- grid.addTreeListener( new LoggingTreeListener( events ) );
+ TreeListener treeListener = mock( TreeListener.class );
+ grid.addTreeListener( treeListener );
new GridItem( item, SWT.NONE );
Fixture.fakeNotifyOperation( getId( item ), ClientMessageConst.EVENT_TREE_EXPANDED, null );
Fixture.readDataAndProcessAction( item );
- assertEquals( 1, events.size() );
- SelectionEvent event = events.get( 0 );
- assertEquals( SWT.Expand, event.getID() );
+ ArgumentCaptor<TreeEvent> captor = ArgumentCaptor.forClass( TreeEvent.class );
+ verify( treeListener, times( 1 ) ).treeExpanded( captor.capture() );
+ TreeEvent event = captor.getValue();
assertEquals( grid, event.getSource() );
assertEquals( item, event.item );
assertTrue( item.isExpanded() );
}
public void testProcessTreeEvent_Collapsed() {
- List<TreeEvent> events = new LinkedList<TreeEvent>();
- grid.addTreeListener( new LoggingTreeListener( events ) );
+ TreeListener treeListener = mock( TreeListener.class );
+ grid.addTreeListener( treeListener );
new GridItem( item, SWT.NONE );
item.setExpanded( true );
Fixture.fakeNotifyOperation( getId( item ), ClientMessageConst.EVENT_TREE_COLLAPSED, null );
Fixture.readDataAndProcessAction( item );
- assertEquals( 1, events.size() );
- SelectionEvent event = events.get( 0 );
- assertEquals( SWT.Collapse, event.getID() );
+ ArgumentCaptor<TreeEvent> captor = ArgumentCaptor.forClass( TreeEvent.class );
+ verify( treeListener, times( 1 ) ).treeCollapsed( captor.capture() );
+ TreeEvent event = captor.getValue();
assertEquals( grid, event.getSource() );
assertEquals( item, event.item );
assertFalse( item.isExpanded() );
@@ -666,21 +666,4 @@
assertTrue( jsonEquals( "[ false, true ]", actual ) );
}
- //////////////////
- // Helping classes
-
- private static class LoggingTreeListener extends TreeAdapter {
- private final List<TreeEvent> events;
- private LoggingTreeListener( List<TreeEvent> events ) {
- this.events = events;
- }
- @Override
- public void treeExpanded( TreeEvent event ) {
- events.add( event );
- }
- @Override
- public void treeCollapsed( TreeEvent event ) {
- events.add( event );
- }
- }
}