Use String instead of int for event type in internal package
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
index 805600c..e34a59c 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
@@ -12,6 +12,7 @@
import org.eclipse.rap.clientscripting.internal.ClientFunction;
import org.eclipse.rap.clientscripting.internal.ClientListenerBinding;
+import org.eclipse.rap.clientscripting.internal.ClientListenerUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
@@ -81,7 +82,8 @@
if( widget.isDisposed() ) {
throw new IllegalArgumentException( "Widget is disposed" );
}
- final ClientListenerBinding binding = addTo( WidgetUtil.getId( widget ), eventType );
+ String eventTypeString = ClientListenerUtil.getEventType( eventType );
+ final ClientListenerBinding binding = addTo( WidgetUtil.getId( widget ), eventTypeString );
if( binding != null ) {
widget.addListener( SWT.Dispose, new Listener() {
public void handleEvent( Event event ) {
@@ -99,7 +101,7 @@
if( widget == null ) {
throw new NullPointerException( "widget is null" );
}
- removeFrom( WidgetUtil.getId( widget ), eventType );
+ removeFrom( WidgetUtil.getId( widget ), ClientListenerUtil.getEventType( eventType ) );
}
/**
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientFunction.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientFunction.java
index 58c02e2..f562179 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientFunction.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientFunction.java
@@ -44,7 +44,7 @@
return bindings;
}
- protected ClientListenerBinding addTo( String targetId, int eventType ) {
+ protected ClientListenerBinding addTo( String targetId, String eventType ) {
if( findBinding( targetId, eventType ) == null ) {
ClientListenerBinding binding = new ClientListenerBinding( this, targetId, eventType );
bindings.add( binding );
@@ -54,7 +54,7 @@
}
}
- protected void removeFrom( String targetId, int eventType ) {
+ protected void removeFrom( String targetId, String eventType ) {
ClientListenerBinding binding = findBinding( targetId, eventType );
if( binding != null ) {
binding.dispose();
@@ -62,9 +62,11 @@
}
}
- ClientListenerBinding findBinding( String targetId, int eventType ) {
+ ClientListenerBinding findBinding( String targetId, String eventType ) {
for( ClientListenerBinding binding : bindings ) {
- if( binding.getTargetId() == targetId && binding.getEventType() == eventType ) {
+ if( binding.getTargetId().equals( targetId )
+ && binding.getEventType().equals( eventType ) )
+ {
return binding;
}
}
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding.java
index a4dacf5..4dbcda0 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding.java
@@ -20,25 +20,25 @@
private final ClientFunction function;
private final String targetId;
- private final int eventType;
+ private final String eventType;
private final RemoteObject remoteObject;
private boolean disposed;
- public ClientListenerBinding( ClientFunction function, String targetId, int eventType ) {
+ public ClientListenerBinding( ClientFunction function, String targetId, String eventType ) {
this.function = function;
this.targetId = targetId;
this.eventType = eventType;
remoteObject = RWT.getUISession().getConnection().createRemoteObject( REMOTE_TYPE );
remoteObject.set( "listener", function.getRemoteId() );
remoteObject.set( "targetObject", targetId );
- remoteObject.set( "eventType", ClientListenerUtil.getEventType( eventType ) );
+ remoteObject.set( "eventType", eventType );
}
public String getTargetId() {
return targetId;
}
- public int getEventType() {
+ public String getEventType() {
return eventType;
}
@@ -60,7 +60,10 @@
result = true;
} else if( obj != null && getClass() == obj.getClass() ) {
ClientListenerBinding other = ( ClientListenerBinding )obj;
- if( eventType == other.eventType && targetId == other.targetId && function == other.function ) {
+ if( eventType.equals( other.eventType )
+ && targetId.equals( other.targetId )
+ && function == other.function )
+ {
result = true;
}
}
@@ -71,7 +74,7 @@
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + eventType;
+ result = prime * result + eventType.hashCode();
result = prime * result + targetId.hashCode();
result = prime * result + function.hashCode();
return result;
diff --git a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/ClientListener_Test.java b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/ClientListener_Test.java
index 91c4204..87415f1 100644
--- a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/ClientListener_Test.java
+++ b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/ClientListener_Test.java
@@ -165,10 +165,10 @@
public void testRemoveFrom_disposesBinding() {
Label label = new Label( shell, SWT.NONE );
listener.addTo( label, SWT.MouseDown );
+ ClientListenerBinding binding = findBinding( listener, label, SWT.MouseDown );
listener.removeFrom( label, SWT.MouseDown );
- ClientListenerBinding binding = findBinding( listener, label, SWT.MouseDown );
assertTrue( binding.isDisposed() );
}
@@ -176,11 +176,11 @@
public void testRemoveFrom_mayBeCalledTwice() {
Label label = new Label( shell, SWT.NONE );
listener.addTo( label, SWT.MouseDown );
-
- listener.removeFrom( label, SWT.MouseDown );
- listener.removeFrom( label, SWT.MouseDown );
-
ClientListenerBinding binding = findBinding( listener, label, SWT.MouseDown );
+
+ listener.removeFrom( label, SWT.MouseDown );
+ listener.removeFrom( label, SWT.MouseDown );
+
assertTrue( binding.isDisposed() );
}
diff --git a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientFunction_Test.java b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientFunction_Test.java
index 5f14d91..afd334c 100644
--- a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientFunction_Test.java
+++ b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientFunction_Test.java
@@ -25,13 +25,11 @@
import org.eclipse.rap.rwt.remote.Connection;
import org.eclipse.rap.rwt.remote.RemoteObject;
import org.eclipse.rap.rwt.testfixture.Fixture;
-import org.eclipse.swt.SWT;
import org.junit.*;
public class ClientFunction_Test {
- private static final String TARGET_ID = "w101";
private static final String CLIENT_LISTENER_TYPE = "rwt.clientscripting.Listener";
private static final String LISTENER_BINDING_TYPE = "rwt.clientscripting.EventBinding";
@@ -80,17 +78,17 @@
@Test
public void testAddTo_createsBinding() {
- function.addTo( TARGET_ID, SWT.MouseDown );
+ function.addTo( "w101", "MouseDown" );
- assertNotNull( function.findBinding( TARGET_ID, SWT.MouseDown ) );
+ assertNotNull( function.findBinding( "w101", "MouseDown" ) );
}
@Test
public void testAddTo_ignoresSubsequentCalls() {
Connection connection = fakeConnection( mock( RemoteObject.class ), LISTENER_BINDING_TYPE );
- function.addTo( TARGET_ID, SWT.KeyDown );
- function.addTo( TARGET_ID, SWT.KeyDown );
+ function.addTo( "w101", "KeyDown" );
+ function.addTo( "w101", "KeyDown" );
assertEquals( 1, function.getBindings().size() );
verify( connection, times( 1 ) ).createRemoteObject( eq( LISTENER_BINDING_TYPE ) );
@@ -98,39 +96,39 @@
@Test
public void testRemoveFrom_disposesBinding() {
- function.addTo( TARGET_ID, SWT.MouseDown );
- ClientListenerBinding binding = function.findBinding( TARGET_ID, SWT.MouseDown );
+ function.addTo( "w101", "MouseDown" );
+ ClientListenerBinding binding = function.findBinding( "w101", "MouseDown" );
- function.removeFrom( TARGET_ID, SWT.MouseDown );
+ function.removeFrom( "w101", "MouseDown" );
assertTrue( binding.isDisposed() );
}
@Test
public void testRemoveFrom_RemovesBindingFromList() {
- function.addTo( TARGET_ID, SWT.MouseDown );
+ function.addTo( "w101", "MouseDown" );
- function.removeFrom( TARGET_ID, SWT.MouseDown );
+ function.removeFrom( "w101", "MouseDown" );
- assertNull( function.findBinding( TARGET_ID, SWT.MouseDown ) );
+ assertNull( function.findBinding( "w101", "MouseDown" ) );
}
@Test
public void testRemoveFrom_mayBeCalledTwice() {
- function.addTo( TARGET_ID, SWT.MouseDown );
- ClientListenerBinding binding = function.findBinding( TARGET_ID, SWT.MouseDown );
+ function.addTo( "w101", "MouseDown" );
+ ClientListenerBinding binding = function.findBinding( "w101", "MouseDown" );
- function.removeFrom( TARGET_ID, SWT.MouseDown );
- function.removeFrom( TARGET_ID, SWT.MouseDown );
+ function.removeFrom( "w101", "MouseDown" );
+ function.removeFrom( "w101", "MouseDown" );
assertTrue( binding.isDisposed() );
}
@Test
public void testRemoveFrom_ignoresNonExistingBinding() {
- function.removeFrom( TARGET_ID, SWT.MouseDown );
+ function.removeFrom( "w101", "MouseDown" );
- assertNull( function.findBinding( TARGET_ID, SWT.MouseDown ) );
+ assertNull( function.findBinding( "w101", "MouseDown" ) );
}
private void createListener() {
diff --git a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding_Test.java b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding_Test.java
index f36d21a..daa644d 100644
--- a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding_Test.java
+++ b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/ClientListenerBinding_Test.java
@@ -22,14 +22,11 @@
import org.eclipse.rap.rwt.remote.Connection;
import org.eclipse.rap.rwt.remote.RemoteObject;
import org.eclipse.rap.rwt.testfixture.Fixture;
-import org.eclipse.swt.SWT;
import org.junit.*;
public class ClientListenerBinding_Test {
- private static final String TARGET_ID_1 = "w101";
- private static final String TARGET_ID_2 = "w102";
private static final String LISTENER_BINDING_TYPE = "rwt.clientscripting.EventBinding";
private ClientListener listener1;
@@ -73,15 +70,15 @@
@Test
public void testCreation() {
- assertEquals( TARGET_ID_1, binding.getTargetId() );
- assertEquals( SWT.MouseDown, binding.getEventType() );
+ assertEquals( "w101", binding.getTargetId() );
+ assertEquals( "MouseDown", binding.getEventType() );
}
@Test
public void testCreation_createsRemoteObject() {
Connection connection = fakeConnection( mock( RemoteObject.class ), LISTENER_BINDING_TYPE );
- binding = new ClientListenerBinding( listener1, TARGET_ID_1, ClientListener.KeyDown );
+ binding = new ClientListenerBinding( listener1, "w101", "KeyDown" );
verify( connection ).createRemoteObject( eq( "rwt.clientscripting.EventBinding" ) );
}
@@ -91,10 +88,10 @@
RemoteObject remoteObject = mock( RemoteObject.class );
fakeConnection( remoteObject, LISTENER_BINDING_TYPE );
- binding = new ClientListenerBinding( listener1, TARGET_ID_1, ClientListener.KeyDown );
+ binding = new ClientListenerBinding( listener1, "w101", "KeyDown" );
verify( remoteObject ).set( eq( "listener" ), eq( listener1.getRemoteId() ) );
- verify( remoteObject ).set( eq( "targetObject" ), eq( TARGET_ID_1 ) );
+ verify( remoteObject ).set( eq( "targetObject" ), eq( "w101" ) );
verify( remoteObject ).set( eq( "eventType" ), eq( "KeyDown" ) );
}
@@ -102,7 +99,7 @@
public void testDispose_destroysRemoteObject() {
RemoteObject remoteObject = mock( RemoteObject.class );
fakeConnection( remoteObject, LISTENER_BINDING_TYPE );
- binding = new ClientListenerBinding( listener1, TARGET_ID_1, ClientListener.KeyDown );
+ binding = new ClientListenerBinding( listener1, "w101", "KeyDown" );
binding.dispose();
@@ -113,7 +110,7 @@
public void testDispose_mayBeCalledTwice() {
RemoteObject remoteObject = mock( RemoteObject.class );
fakeConnection( remoteObject, LISTENER_BINDING_TYPE );
- binding = new ClientListenerBinding( listener1, TARGET_ID_1, ClientListener.KeyDown );
+ binding = new ClientListenerBinding( listener1, "w101", "KeyDown" );
binding.dispose();
binding.dispose();
@@ -139,11 +136,11 @@
}
private void createBindingss() {
- binding = new ClientListenerBinding( listener1, TARGET_ID_1, SWT.MouseDown );
- equalBinding = new ClientListenerBinding( listener1, TARGET_ID_1, SWT.MouseDown );
- bindingWithDifferentWidget = new ClientListenerBinding( listener1, TARGET_ID_2, SWT.MouseDown );
- bindingWithDifferentEvent = new ClientListenerBinding( listener1, TARGET_ID_1, SWT.MouseUp );
- bindingWithDifferentListener = new ClientListenerBinding( listener2, TARGET_ID_1, SWT.MouseDown );
+ binding = new ClientListenerBinding( listener1, "w101", "MouseDown" );
+ equalBinding = new ClientListenerBinding( listener1, "w101", "MouseDown" );
+ bindingWithDifferentWidget = new ClientListenerBinding( listener1, "w102", "MouseDown" );
+ bindingWithDifferentEvent = new ClientListenerBinding( listener1, "w101", "MouseUp" );
+ bindingWithDifferentListener = new ClientListenerBinding( listener2, "w101", "MouseDown" );
}
}
diff --git a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/TestUtil.java b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/TestUtil.java
index 12f210b..507af28 100644
--- a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/TestUtil.java
+++ b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/TestUtil.java
@@ -36,7 +36,7 @@
int type )
{
ClientFunction function = listener; // the IDE does not see findBinding otherwise?
- return function.findBinding( WidgetUtil.getId( widget ), type );
+ return function.findBinding( WidgetUtil.getId( widget ), ClientListenerUtil.getEventType( type ) );
}
}