Adjust to use ClientListener from RWT master
* Change imports to ClientListener, use WidgetUtil.registerDataKeys
* DropDown must render ClientListeners itself (no LCA)
* Cleanup in demo: doesn't contribute an application configuration
anymore, just entrypoint snippets
* Change bundle dependencies to require RAP 2.2.0
* Increment bundle versions to 0.2.0
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.addons.autosuggest/META-INF/MANIFEST.MF
index c462895..b59448b 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.addons.autosuggest/META-INF/MANIFEST.MF
@@ -2,11 +2,9 @@
Bundle-ManifestVersion: 2
Bundle-Name: Auto Suggest component
Bundle-SymbolicName: org.eclipse.rap.addons.autosuggest
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-Vendor: Eclipse.org - RAP Incubator
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.rap.addons.autosuggest;version="0.1.0"
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0"
-Import-Package: org.eclipse.rap.addons.dropdown;version="0.1.0",
- org.eclipse.rap.clientscripting;version="0.2.0",
- org.eclipse.rap.clientscripting.internal;version="0.2.0"
+Export-Package: org.eclipse.rap.addons.autosuggest;version="0.2.0"
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.2.0"
+Import-Package: org.eclipse.rap.addons.dropdown;version="0.2.0"
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/pom.xml b/bundles/org.eclipse.rap.addons.autosuggest/pom.xml
index b82548d..3297889 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/pom.xml
+++ b/bundles/org.eclipse.rap.addons.autosuggest/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.addons.autosuggest</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java
index 60fb407..31de64d 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java
+++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggest.java
@@ -19,18 +19,20 @@
import org.eclipse.rap.addons.autosuggest.internal.resources.EventDelegatorListener;
import org.eclipse.rap.addons.autosuggest.internal.resources.ModelResources;
import org.eclipse.rap.addons.dropdown.DropDown;
-import org.eclipse.rap.clientscripting.ClientListener;
-import org.eclipse.rap.clientscripting.WidgetDataWhiteList;
import org.eclipse.rap.json.JsonObject;
import org.eclipse.rap.rwt.RWT;
+import org.eclipse.rap.rwt.internal.scripting.ClientListenerUtil;
+import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.rap.rwt.remote.AbstractOperationHandler;
import org.eclipse.rap.rwt.remote.RemoteObject;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
+@SuppressWarnings( "restriction" )
public class AutoSuggest {
private static final String EVENT_TYPE_SELECTION = "suggestionSelected";
@@ -158,7 +160,7 @@
attachClientListenerToModel( getAutoSuggestListener(), "change", "accept" );
}
- protected AutoSuggestClientListener getAutoSuggestListener() {
+ protected ClientListener getAutoSuggestListener() {
return AutoSuggestListener.getInstance();
}
@@ -176,8 +178,8 @@
}
}
- private void attachClientListenerToModel( AutoSuggestClientListener listener, String... types ) {
- String listenerId = listener.getId();
+ private void attachClientListenerToModel( ClientListener listener, String... types ) {
+ String listenerId = ClientListenerUtil.getRemoteId( listener );
for( String type : types ) {
remoteObject.call( "addListener",
new JsonObject().add( "listener", listenerId ).add( "type", type ) );
@@ -186,7 +188,7 @@
}
private void connectClientObjects() {
- WidgetDataWhiteList.addKey( MODEL_ID_KEY );
+ WidgetUtil.registerDataKeys( MODEL_ID_KEY );
remoteObject.set( "textWidgetId", getId( text ) );
remoteObject.set( "dropDownWidgetId", getId( dropDown ) );
dropDown.setData( MODEL_ID_KEY, remoteObject.getId() );
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggestClientListener.java b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggestClientListener.java
deleted file mode 100644
index b9a2f29..0000000
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/AutoSuggestClientListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * EclipseSource - initial API and implementation
- ******************************************************************************/
-package org.eclipse.rap.addons.autosuggest;
-
-import org.eclipse.rap.clientscripting.internal.ClientFunction;
-
-
-@SuppressWarnings( "restriction" )
-public class AutoSuggestClientListener extends ClientFunction {
-
- public AutoSuggestClientListener( String scriptCode ) {
- super( scriptCode );
- }
-
- public String getId() {
- return getRemoteId();
- }
-
-}
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggestListener.java b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggestListener.java
index 4ae4f27..ed6b64a 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggestListener.java
+++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggestListener.java
@@ -10,11 +10,11 @@
******************************************************************************/
package org.eclipse.rap.addons.autosuggest.internal.resources;
-import org.eclipse.rap.addons.autosuggest.AutoSuggestClientListener;
import org.eclipse.rap.rwt.SingletonUtil;
+import org.eclipse.rap.rwt.scripting.ClientListener;
-public class AutoSuggestListener extends AutoSuggestClientListener {
+public class AutoSuggestListener extends ClientListener {
public static AutoSuggestListener getInstance() {
return SingletonUtil.getSessionInstance( AutoSuggestListener.class );
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/EventDelegatorListener.java b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/EventDelegatorListener.java
index 5a3ac77..4721b7a 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/EventDelegatorListener.java
+++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/EventDelegatorListener.java
@@ -10,21 +10,21 @@
******************************************************************************/
package org.eclipse.rap.addons.autosuggest.internal.resources;
-import org.eclipse.rap.clientscripting.ClientListener;
import org.eclipse.rap.rwt.SingletonUtil;
+import org.eclipse.rap.rwt.scripting.ClientListener;
public class EventDelegatorListener {
- private final ClientListener eventDeleatorListener;
+ private final ClientListener eventDelegatorListener;
// Can not extend ClientListener since Widget#addListner would not detect it
public static ClientListener getInstance() {
- return SingletonUtil.getSessionInstance( EventDelegatorListener.class ).eventDeleatorListener;
+ return SingletonUtil.getSessionInstance( EventDelegatorListener.class ).eventDelegatorListener;
}
private EventDelegatorListener() {
- eventDeleatorListener = new ClientListener( getText() );
+ eventDelegatorListener = new ClientListener( getText() );
}
private static String getText() {
diff --git a/bundles/org.eclipse.rap.addons.dropdown/META-INF/MANIFEST.MF b/bundles/org.eclipse.rap.addons.dropdown/META-INF/MANIFEST.MF
index af0b42b..69577c2 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.rap.addons.dropdown/META-INF/MANIFEST.MF
@@ -2,12 +2,10 @@
Bundle-ManifestVersion: 2
Bundle-Name: DropDown
Bundle-SymbolicName: org.eclipse.rap.addons.dropdown
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-Vendor: Eclipse.org - RAP Incubator
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: org.eclipse.rap.clientscripting;version="0.1.100",
- org.eclipse.rap.clientscripting.internal;version="0.2.0",
- org.osgi.framework;version="1.3.0"
-Export-Package: org.eclipse.rap.addons.dropdown;version="0.1.0",
- org.eclipse.rap.addons.dropdown.internal.resources;version="0.1.0";x-internal:=true
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0"
+Import-Package: org.osgi.framework;version="1.3.0"
+Export-Package: org.eclipse.rap.addons.dropdown;version="0.2.0",
+ org.eclipse.rap.addons.dropdown.internal.resources;version="0.2.0";x-internal:=true
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.2.0"
diff --git a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDownHandler.js b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDownHandler.js
index 901bb3d..064eb32 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDownHandler.js
+++ b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDownHandler.js
@@ -23,7 +23,20 @@
events : [ "Selection", "DefaultSelection" ],
- methods : [ "setData" ],
+ methods : [ "setData", "addListener", "removeListener" ],
+
+ methodHandler: {
+ "addListener": function( widget, properties ) {
+ rwt.remote.HandlerUtil.callWithTarget( properties.listenerId, function( targetFunction ) {
+ widget.addListener( properties.eventType, targetFunction );
+ } );
+ },
+ "removeListener": function( widget, properties ) {
+ rwt.remote.HandlerUtil.callWithTarget( properties.listenerId, function( targetFunction ) {
+ widget.removeListener( properties.eventType, targetFunction );
+ } );
+ }
+ },
destructor : "destroy"
diff --git a/bundles/org.eclipse.rap.addons.dropdown/pom.xml b/bundles/org.eclipse.rap.addons.dropdown/pom.xml
index 27cdec3..3baa0ea 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/pom.xml
+++ b/bundles/org.eclipse.rap.addons.dropdown/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.addons.dropdown</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/bundles/org.eclipse.rap.addons.dropdown/src/org/eclipse/rap/addons/dropdown/DropDown.java b/bundles/org.eclipse.rap.addons.dropdown/src/org/eclipse/rap/addons/dropdown/DropDown.java
index 8848c65..b694dad 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/src/org/eclipse/rap/addons/dropdown/DropDown.java
+++ b/bundles/org.eclipse.rap.addons.dropdown/src/org/eclipse/rap/addons/dropdown/DropDown.java
@@ -10,19 +10,19 @@
******************************************************************************/
package org.eclipse.rap.addons.dropdown;
-import java.util.Arrays;
-
import org.eclipse.rap.addons.dropdown.internal.resources.DropDownResources;
import org.eclipse.rap.json.JsonArray;
import org.eclipse.rap.json.JsonObject;
import org.eclipse.rap.json.JsonValue;
import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
+import org.eclipse.rap.rwt.internal.lifecycle.WidgetDataUtil;
import org.eclipse.rap.rwt.internal.protocol.JsonUtil;
+import org.eclipse.rap.rwt.internal.scripting.ClientListenerUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetAdapter;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.rap.rwt.remote.AbstractOperationHandler;
import org.eclipse.rap.rwt.remote.RemoteObject;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.internal.events.EventLCAUtil;
@@ -286,7 +286,12 @@
super.addListener( eventType, listener );
boolean isListening = EventLCAUtil.isListening( this, eventType );
String remoteType = eventTypeToString( eventType );
- if( remoteType != null && !wasListening && isListening ) {
+ if( listener instanceof ClientListener ) {
+ JsonObject parameters = new JsonObject()
+ .add( "eventType", ClientListenerUtil.getEventType( eventType ) )
+ .add( "listenerId", ClientListenerUtil.getRemoteId( ( ClientListener )listener ) );
+ remoteObject.call( "addListener", parameters );
+ } else if( remoteType != null && !wasListening && isListening ) {
remoteObject.listen( remoteType, true );
}
}
@@ -297,7 +302,12 @@
super.removeListener( eventType, listener );
boolean isListening = EventLCAUtil.isListening( this, eventType );
String remoteType = eventTypeToString( eventType );
- if( remoteType != null && wasListening && !isListening ) {
+ if( listener instanceof ClientListener ) {
+ JsonObject parameters = new JsonObject()
+ .add( "eventType", ClientListenerUtil.getEventType( eventType ) )
+ .add( "listenerId", ClientListenerUtil.getRemoteId( ( ClientListener )listener ) );
+ remoteObject.call( "removeListener", parameters );
+ } else if( remoteType != null && wasListening && !isListening ) {
remoteObject.listen( remoteType, false );
}
}
@@ -374,9 +384,7 @@
// TODO [tb] : could be optimized using a PhaseListener
// This implementation assumes the client merges the new values with the existing
// ones, which is the case in the WebClient
- WidgetDataWhiteList service = RWT.getClient().getService( WidgetDataWhiteList.class );
- String[] dataKeys = service == null ? null : service.getKeys();
- if( dataKeys != null && Arrays.asList( dataKeys ).contains( key ) ) {
+ if( WidgetDataUtil.getDataKeys().contains( key ) ) {
@SuppressWarnings( "deprecation" )
JsonObject data = new JsonObject().add( key, JsonUtil.createJsonValue( value ) );
remoteObject.call( "setData", data );
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo.examples/META-INF/MANIFEST.MF b/examples/org.eclipse.rap.addons.dropdown.demo.examples/META-INF/MANIFEST.MF
index 1eb37e6..d398baf 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo.examples/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.rap.addons.dropdown.demo.examples/META-INF/MANIFEST.MF
@@ -3,11 +3,11 @@
Bundle-Name: DropDown Addon for Examples Demo
Bundle-SymbolicName: org.eclipse.rap.addons.dropdown.demo.examples
Bundle-Version: 1.0.0.qualifier
-Import-Package: org.eclipse.rap.addons.autosuggest;version="0.1.0",
+Import-Package: org.eclipse.rap.addons.autosuggest;version="0.2.0",
org.osgi.framework;version="1.3.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Eclipse.org - RAP
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0",
- org.eclipse.rap.examples;bundle-version="2.1.0"
-Export-Package: org.eclipse.rap.addons.dropdown.demo.examples;version="0.1.0"
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.2.0",
+ org.eclipse.rap.examples;bundle-version="2.2.0"
+Export-Package: org.eclipse.rap.addons.dropdown.demo.examples;version="0.2.0"
Bundle-Activator: org.eclipse.rap.addons.dropdown.demo.examples.Activator
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo.examples/pom.xml b/examples/org.eclipse.rap.addons.dropdown.demo.examples/pom.xml
index c5bea08..e1974cf 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo.examples/pom.xml
+++ b/examples/org.eclipse.rap.addons.dropdown.demo.examples/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.rap</groupId>
<artifactId>org.eclipse.rap.demo.examples.parent</artifactId>
- <version>2.1.0-SNAPSHOT</version>
+ <version>2.2.0-SNAPSHOT</version>
<relativePath>../../org.eclipse.rap/releng/org.eclipse.rap.demo.examples.build/parent/</relativePath>
</parent>
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/DropDown Demo 9494_dropdown.launch b/examples/org.eclipse.rap.addons.dropdown.demo/DropDown Demo 9494_dropdown.launch
deleted file mode 100644
index c0c2877..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/DropDown Demo 9494_dropdown.launch
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="true"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/DropDown Demo 9494_dropdown"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -clean -console -consolelog"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
-<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>
-<stringAttribute key="org.eclipse.rap.launch.contextpath" value="/example"/>
-<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/DropDownDemo9494_dropdown"/>
-<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
-<stringAttribute key="org.eclipse.rap.launch.entryPoint" value=""/>
-<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="DEBUG"/>
-<stringAttribute key="org.eclipse.rap.launch.logLevel" value="OFF"/>
-<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
-<intAttribute key="org.eclipse.rap.launch.port" value="9494"/>
-<stringAttribute key="org.eclipse.rap.launch.servletName" value="/controls"/>
-<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/dropdown"/>
-<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="10"/>
-<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
-<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>
-<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="org.eclipse.rap.addons.autosuggest@default:default,org.eclipse.rap.addons.dropdown.demo@default:default,org.eclipse.rap.addons.dropdown@default:default,org.eclipse.rap.clientscripting@default:default"/>
-</launchConfiguration>
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF b/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
index a3062b6..b126ef4 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
@@ -2,12 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: DropDown Demo
Bundle-SymbolicName: org.eclipse.rap.addons.dropdown.demo
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0",
- org.eclipse.rap.clientscripting;bundle-version="0.1.100"
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.2.0"
Service-Component: OSGI-INF/*.xml
Bundle-Vendor: Eclipse.org - RAP Incubator
-Import-Package: org.eclipse.rap.addons.autosuggest;version="0.1.0",
- org.eclipse.rap.addons.dropdown;version="0.1.0"
-Export-Package: org.eclipse.rap.addons.dropdown.demo;version="0.1.0"
+Import-Package: org.eclipse.rap.addons.autosuggest;version="0.2.0",
+ org.eclipse.rap.addons.dropdown;version="0.2.0"
+Export-Package: org.eclipse.rap.addons.dropdown.demo;version="0.2.0"
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/OSGI-INF/config.xml b/examples/org.eclipse.rap.addons.dropdown.demo/OSGI-INF/config.xml
deleted file mode 100644
index 2e6c998..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/OSGI-INF/config.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.rap.addons.dropdown.demo.demo">
- <implementation class="org.eclipse.rap.addons.dropdown.demo.DropDownApplicationConfiguration"/>
- <service>
- <provide interface="org.eclipse.rap.rwt.application.ApplicationConfiguration"/>
- </service>
-</scr:component>
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/build.properties b/examples/org.eclipse.rap.addons.dropdown.demo/build.properties
index f447e51..450268e 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/build.properties
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/build.properties
@@ -1,7 +1,5 @@
output.. = bin/
bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- theme/
+ .
source.. = src/
javacDefaultEncoding.. = UTF-8
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
index 0e49ce6..4a35553 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
@@ -13,7 +13,6 @@
import java.util.Arrays;
import org.eclipse.rap.addons.autosuggest.AutoSuggest;
-import org.eclipse.rap.addons.autosuggest.AutoSuggestClientListener;
import org.eclipse.rap.addons.autosuggest.DataProvider;
import org.eclipse.rap.addons.autosuggest.DataSource;
import org.eclipse.rap.addons.autosuggest.SuggestionSelectedListener;
@@ -21,8 +20,8 @@
import org.eclipse.rap.addons.dropdown.demo.scripts.CustomAutoSuggestClientListener;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.application.AbstractEntryPoint;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteListImpl;
+import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -37,23 +36,8 @@
import org.eclipse.swt.widgets.Text;
-@SuppressWarnings("restriction")
public class AutoSuggestDemo extends AbstractEntryPoint {
-
- private class CustomAutoSuggest extends AutoSuggest {
-
- public CustomAutoSuggest( Text text ) {
- super( text );
- }
-
- @Override
- protected AutoSuggestClientListener getAutoSuggestListener() {
- return CustomAutoSuggestClientListener.getInstance();
- }
-
- }
-
private Text text;
private AutoSuggest autoSuggest;
private DataSource de;
@@ -212,9 +196,20 @@
}
private static void setupWidgetDataWhiteList() {
- WidgetDataWhiteListImpl list
- = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
- list.setKeys( new String[]{ "dropdown", "text", "data" } );
+ WidgetUtil.registerDataKeys( "dropdown", "text", "data" );
+ }
+
+ private class CustomAutoSuggest extends AutoSuggest {
+
+ public CustomAutoSuggest( Text text ) {
+ super( text );
+ }
+
+ @Override
+ protected ClientListener getAutoSuggestListener() {
+ return CustomAutoSuggestClientListener.getInstance();
+ }
+
}
}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/scripts/CustomAutoSuggestClientListener.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/scripts/CustomAutoSuggestClientListener.java
index 1d24309..1c6a50b 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/scripts/CustomAutoSuggestClientListener.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/scripts/CustomAutoSuggestClientListener.java
@@ -10,11 +10,11 @@
******************************************************************************/
package org.eclipse.rap.addons.dropdown.demo.scripts;
-import org.eclipse.rap.addons.autosuggest.AutoSuggestClientListener;
import org.eclipse.rap.rwt.SingletonUtil;
+import org.eclipse.rap.rwt.scripting.ClientListener;
-public class CustomAutoSuggestClientListener extends AutoSuggestClientListener {
+public class CustomAutoSuggestClientListener extends ClientListener {
public static CustomAutoSuggestClientListener getInstance() {
return SingletonUtil.getSessionInstance( CustomAutoSuggestClientListener.class );
diff --git a/features/org.eclipse.rap.dropdown.feature/feature.xml b/features/org.eclipse.rap.dropdown.feature/feature.xml
index 3120966..2064180 100644
--- a/features/org.eclipse.rap.dropdown.feature/feature.xml
+++ b/features/org.eclipse.rap.dropdown.feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.rap.dropdown.feature"
label="RAP Dropdown (Incubation)"
- version="0.1.0.qualifier"
+ version="0.2.0.qualifier"
provider-name="Eclipse.org - RAP Incubator">
<description url="http://www.example.com/description">
diff --git a/features/org.eclipse.rap.dropdown.feature/pom.xml b/features/org.eclipse.rap.dropdown.feature/pom.xml
index a35492d..5f63537 100644
--- a/features/org.eclipse.rap.dropdown.feature/pom.xml
+++ b/features/org.eclipse.rap.dropdown.feature/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.dropdown.feature</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/releng/org.eclipse.rap.dropdown.build/pom.xml b/releng/org.eclipse.rap.dropdown.build/pom.xml
index 342aa92..cc2e185 100644
--- a/releng/org.eclipse.rap.dropdown.build/pom.xml
+++ b/releng/org.eclipse.rap.dropdown.build/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.dropdown.build</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
diff --git a/releng/org.eclipse.rap.dropdown.build/repository/category.xml b/releng/org.eclipse.rap.dropdown.build/repository/category.xml
index 1b1b09f..f9dc174 100644
--- a/releng/org.eclipse.rap.dropdown.build/repository/category.xml
+++ b/releng/org.eclipse.rap.dropdown.build/repository/category.xml
@@ -17,7 +17,7 @@
<feature url="http://eclipse.org/rap"
id="org.eclipse.rap.dropdown.feature"
- version="0.1.0.qualifier">
+ version="0.2.0.qualifier">
<category name="org.eclipse.rap.incubator.category"/>
</feature>
diff --git a/releng/org.eclipse.rap.dropdown.build/repository/pom.xml b/releng/org.eclipse.rap.dropdown.build/repository/pom.xml
index a19f05b..2922735 100644
--- a/releng/org.eclipse.rap.dropdown.build/repository/pom.xml
+++ b/releng/org.eclipse.rap.dropdown.build/repository/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.dropdown-repository</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-repository</packaging>
<build>
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/META-INF/MANIFEST.MF b/tests/org.eclipse.rap.addons.autosuggest.test/META-INF/MANIFEST.MF
index 1c62b5e..7752e2e 100644
--- a/tests/org.eclipse.rap.addons.autosuggest.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.rap.addons.autosuggest.test/META-INF/MANIFEST.MF
@@ -2,12 +2,11 @@
Bundle-ManifestVersion: 2
Bundle-Name: Auto Suggest Tests
Bundle-SymbolicName: org.eclipse.rap.addons.autosuggest.test
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-Vendor: Eclipse.org - RAP Incubator
-Fragment-Host: org.eclipse.rap.addons.autosuggest;bundle-version="0.1.0"
+Fragment-Host: org.eclipse.rap.addons.autosuggest;bundle-version="0.2.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.junit;bundle-version="4.11.0",
org.mockito.mockito-all;bundle-version="1.9.5",
- org.eclipse.rap.jstestrunner;bundle-version="0.1.0"
-Import-Package: org.eclipse.rap.clientscripting;version="0.2.0",
- org.eclipse.rap.rwt.testfixture;version="2.1.0"
+ org.eclipse.rap.jstestrunner;bundle-version="0.2.0"
+Import-Package: org.eclipse.rap.rwt.testfixture;version="2.2.0"
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/AutoSuggestJs_Test.java b/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/AutoSuggestJs_Test.java
index da366de..0c4d22d 100644
--- a/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/AutoSuggestJs_Test.java
+++ b/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/AutoSuggestJs_Test.java
@@ -10,8 +10,8 @@
******************************************************************************/
package jasmine;
-import org.eclipse.rap.clientscripting.ClientListener;
import org.eclipse.rap.jstestrunner.jasmine.JasmineTestRunner;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.junit.Before;
import org.junit.Test;
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/pom.xml b/tests/org.eclipse.rap.addons.autosuggest.test/pom.xml
index 924c9fc..6ec5b25 100644
--- a/tests/org.eclipse.rap.addons.autosuggest.test/pom.xml
+++ b/tests/org.eclipse.rap.addons.autosuggest.test/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.addons.autosuggest.test</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
</project>
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java b/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java
index 166282e..7f5602f 100644
--- a/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java
+++ b/tests/org.eclipse.rap.addons.autosuggest.test/src/org/eclipse/rap/addons/autosuggest/AutoSuggest_Test.java
@@ -28,19 +28,16 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import java.util.Arrays;
-import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.rap.addons.dropdown.DropDown;
-import org.eclipse.rap.clientscripting.ClientListener;
import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteListImpl;
+import org.eclipse.rap.rwt.internal.lifecycle.WidgetDataUtil;
import org.eclipse.rap.rwt.lifecycle.PhaseId;
import org.eclipse.rap.rwt.remote.Connection;
import org.eclipse.rap.rwt.remote.OperationHandler;
import org.eclipse.rap.rwt.remote.RemoteObject;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.eclipse.rap.rwt.testfixture.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
@@ -156,38 +153,9 @@
@Test
public void testConstructor_addKeysToWidgetDataWhiteList() {
- WidgetDataWhiteListImpl service
- = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
- service.setKeys( new String[ 0 ] );
-
new AutoSuggest( text );
- List<String> list = Arrays.asList( service.getKeys() );
- assertTrue( list.contains( MODEL_ID_KEY ) );
- }
-
- @Test
- public void testConstructor_addKeysToWidgetDataWhiteListAndKeepExistingKeys() {
- WidgetDataWhiteListImpl service
- = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
- service.setKeys( new String[] { "foo" } );
-
- new AutoSuggest( text );
-
- List<String> list = Arrays.asList( service.getKeys() );
- assertTrue( list.contains( "foo" ) );
- }
-
- @Test
- public void testConstructor_addKeysToWidgetDataWhiteListOnlyOnce() {
- WidgetDataWhiteListImpl service
- = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
- service.setKeys( new String[] { MODEL_ID_KEY } );
-
- new AutoSuggest( text );
-
- List<String> list = Arrays.asList( service.getKeys() );
- assertEquals( list.lastIndexOf( MODEL_ID_KEY ), list.indexOf( MODEL_ID_KEY ) );
+ assertTrue( WidgetDataUtil.getDataKeys().contains( MODEL_ID_KEY ) );
}
@Test
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/META-INF/MANIFEST.MF b/tests/org.eclipse.rap.addons.dropdown.test/META-INF/MANIFEST.MF
index 95c1320..e92be76 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.rap.addons.dropdown.test/META-INF/MANIFEST.MF
@@ -2,15 +2,13 @@
Bundle-ManifestVersion: 2
Bundle-Name: Tests for DropDown
Bundle-SymbolicName: org.eclipse.rap.addons.dropdown.test
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0",
- org.eclipse.rap.rwt.jstest;bundle-version="2.1.0";resolution:=optional,
- org.eclipse.rap.rwt.testfixture;bundle-version="2.1.0";resolution:=optional,
- org.eclipse.rap.addons.dropdown;bundle-version="0.1.0",
+Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.2.0",
+ org.eclipse.rap.rwt.jstest;bundle-version="2.2.0";resolution:=optional,
+ org.eclipse.rap.rwt.testfixture;bundle-version="2.2.0";resolution:=optional,
+ org.eclipse.rap.addons.dropdown;bundle-version="0.2.0",
org.junit;bundle-version="4.8.0",
org.mockito.mockito-all;bundle-version="1.9.5"
-Import-Package: org.eclipse.rap.clientscripting;version="0.1.100",
- org.eclipse.rap.clientscripting.internal;version="0.2.0"
Service-Component: OSGI-INF/*.xml
Bundle-Vendor: Eclipse.org - RAP Incubator
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/pom.xml b/tests/org.eclipse.rap.addons.dropdown.test/pom.xml
index b657ded..16efe77 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/pom.xml
+++ b/tests/org.eclipse.rap.addons.dropdown.test/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.addons.dropdown.test</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
</project>
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/src/org/eclipse/rap/addons/dropdown/DropDown_Test.java b/tests/org.eclipse.rap.addons.dropdown.test/src/org/eclipse/rap/addons/dropdown/DropDown_Test.java
index 9aa36c7..b7764e7 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/src/org/eclipse/rap/addons/dropdown/DropDown_Test.java
+++ b/tests/org.eclipse.rap.addons.dropdown.test/src/org/eclipse/rap/addons/dropdown/DropDown_Test.java
@@ -29,19 +29,18 @@
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.rap.clientscripting.ClientListener;
import org.eclipse.rap.json.JsonArray;
import org.eclipse.rap.json.JsonObject;
import org.eclipse.rap.json.JsonValue;
import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.client.Client;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
import org.eclipse.rap.rwt.internal.protocol.JsonUtil;
+import org.eclipse.rap.rwt.internal.scripting.ClientListenerUtil;
import org.eclipse.rap.rwt.lifecycle.PhaseId;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.rap.rwt.remote.Connection;
import org.eclipse.rap.rwt.remote.OperationHandler;
import org.eclipse.rap.rwt.remote.RemoteObject;
+import org.eclipse.rap.rwt.scripting.ClientListener;
import org.eclipse.rap.rwt.testfixture.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTException;
@@ -53,7 +52,6 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.mockito.ArgumentCaptor;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -358,13 +356,10 @@
public void testSetData_RendersDataInWhiteList() {
Fixture.fakePhase( PhaseId.PROCESS_ACTION );
- fakeWidgetDataWhiteList( new String[]{ "foo", "bar" } );
+ WidgetUtil.registerDataKeys( "foo", "bar" );
dropdown.setData( "foo", "bar" );
- ArgumentCaptor<JsonObject> argument = ArgumentCaptor.forClass( JsonObject.class );
- verify( remoteObject ).call( eq( "setData" ), argument.capture() );
-
- assertEquals( "bar", argument.getValue().get( "foo" ).asString() );
+ verify( remoteObject ).call( eq( "setData" ), eq( new JsonObject().add( "foo", "bar" ) ) );
}
@Test
@@ -398,7 +393,7 @@
public void testSetData_DoesNotRenderDataNotInWhiteList() {
Fixture.fakePhase( PhaseId.PROCESS_ACTION );
- fakeWidgetDataWhiteList( new String[]{ "foo", "bar" } );
+ WidgetUtil.registerDataKeys( "foo", "bar" );
dropdown.setData( "fool", "bar" );
verify( remoteObject, never() ).set( eq( "data" ), any( JsonObject.class ) );
@@ -407,6 +402,7 @@
@Test
public void testAddListener_SelectionRenderListenTrue() {
Listener listener = mock( Listener.class );
+
dropdown.addListener( SWT.Selection, listener );
verify( remoteObject ).listen( eq( "Selection" ), eq( true ) );
@@ -415,12 +411,40 @@
@Test
public void testAddListener_DefaultSelectionRenderListenTrue() {
Listener listener = mock( Listener.class );
+
dropdown.addListener( SWT.DefaultSelection, listener );
verify( remoteObject ).listen( eq( "DefaultSelection" ), eq( true ) );
}
@Test
+ public void testAddListener_Selection_doesNotSendListenTwice() {
+ dropdown.addListener( SWT.Selection, mock( Listener.class ) );
+ dropdown.addListener( SWT.Selection, mock( Listener.class ) );
+
+ verify( remoteObject, times( 1 ) ).listen( eq( "Selection" ), eq( true ) );
+ }
+
+ @Test
+ public void testAddListener_Selection_doesNotSendListenForClientListener() {
+ dropdown.addListener( SWT.Selection, new ClientListener( "foo" ) );
+
+ verify( remoteObject, times( 0 ) ).listen( eq( "Selection" ), eq( true ) );
+ }
+
+ @Test
+ public void testAddListener_rendersClientListeners() {
+ ClientListener listener = new ClientListener( "" );
+ String listenerId = ClientListenerUtil.getRemoteId( listener );
+
+ dropdown.addListener( SWT.Show, listener );
+
+ JsonObject expectedParameters
+ = new JsonObject().add( "eventType", "Show" ).add( "listenerId", listenerId );
+ verify( remoteObject ).call( eq( "addListener" ), eq( expectedParameters ) );
+ }
+
+ @Test
public void testRemoveListener_SelectionRenderListenFalse() {
Listener listener = mock( Listener.class );
dropdown.addListener( SWT.Selection, listener );
@@ -440,18 +464,15 @@
}
@Test
- public void testAddListener_Selection_doesNotSendListenTwice() {
- dropdown.addListener( SWT.Selection, mock( Listener.class ) );
- dropdown.addListener( SWT.Selection, mock( Listener.class ) );
+ public void testRemoveListener_rendersClientListeners() {
+ ClientListener listener = new ClientListener( "" );
+ String listenerId = ClientListenerUtil.getRemoteId( listener );
- verify( remoteObject, times( 1 ) ).listen( eq( "Selection" ), eq( true ) );
- }
+ dropdown.removeListener( SWT.Show, listener );
- @Test
- public void testAddListener_Selection_doesNotSendListenForClientListener() {
- dropdown.addListener( SWT.Selection, new ClientListener( "foo" ) );
-
- verify( remoteObject, times( 0 ) ).listen( eq( "Selection" ), eq( true ) );
+ JsonObject expectedParameters
+ = new JsonObject().add( "eventType", "Show" ).add( "listenerId", listenerId );
+ verify( remoteObject ).call( eq( "removeListener" ), eq( expectedParameters ) );
}
@Test
@@ -524,15 +545,4 @@
assertEquals( "foo", log.get( 0 ).text );
}
- ///////////
- // Helper
-
- public static void fakeWidgetDataWhiteList( String[] keys ) {
- WidgetDataWhiteList service = mock( WidgetDataWhiteList.class );
- when( service.getKeys() ).thenReturn( keys );
- Client client = mock( Client.class );
- when( client.getService( WidgetDataWhiteList.class ) ).thenReturn( service );
- Fixture.fakeClient( client );
- }
-
}
diff --git a/tests/org.eclipse.rap.jstestrunner/META-INF/MANIFEST.MF b/tests/org.eclipse.rap.jstestrunner/META-INF/MANIFEST.MF
index f01812e..65a411a 100644
--- a/tests/org.eclipse.rap.jstestrunner/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.rap.jstestrunner/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
Bundle-ManifestVersion: 2
Bundle-Name: RAP JavaScript Testrunner
Bundle-SymbolicName: org.eclipse.rap.jstestrunner
-Bundle-Version: 0.1.0.qualifier
+Bundle-Version: 0.2.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.junit;bundle-version="4.8.2",
org.mozilla.javascript;bundle-version="1.7.4"
-Export-Package: org.eclipse.rap.jstestrunner.jasmine;version="0.1.0"
+Export-Package: org.eclipse.rap.jstestrunner.jasmine;version="0.2.0"
Bundle-Vendor: Eclipse.org - RAP
diff --git a/tests/org.eclipse.rap.jstestrunner/pom.xml b/tests/org.eclipse.rap.jstestrunner/pom.xml
index e7c96e6..88fef81 100644
--- a/tests/org.eclipse.rap.jstestrunner/pom.xml
+++ b/tests/org.eclipse.rap.jstestrunner/pom.xml
@@ -22,7 +22,7 @@
</parent>
<artifactId>org.eclipse.rap.jstestrunner</artifactId>
- <version>0.1.0-SNAPSHOT</version>
+ <version>0.2.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>