Do not send model change event source object as json to server
diff --git a/bundles/org.eclipse.rap.addons.dropdown.viewer/js/rwt/remote/Model.js b/bundles/org.eclipse.rap.addons.dropdown.viewer/js/rwt/remote/Model.js
index bd0631f..8953aa2 100644
--- a/bundles/org.eclipse.rap.addons.dropdown.viewer/js/rwt/remote/Model.js
+++ b/bundles/org.eclipse.rap.addons.dropdown.viewer/js/rwt/remote/Model.js
@@ -69,7 +69,7 @@
var properties = useMap ? arguments[ 0 ].properties : arguments[ 1 ];
var nosync = useMap ? arguments[ 0 ].nosync : false;
if( !nosync ) {
- rap.getRemoteObject( this ).notify( event, properties );
+ notifyRemote( this, event, properties );
}
notifyInternal( this, event, properties );
},
@@ -114,4 +114,16 @@
}
};
+ var notifyRemote = function( model, type, properties ) {
+ var propCopy = {};
+ for( var key in properties ) {
+ if( properties[ key ] && properties[ key ]._rwtId ) {
+ propCopy[ key ] = properties[ key ]._rwtId;
+ } else {
+ propCopy[ key ] = properties[ key ];
+ }
+ }
+ rap.getRemoteObject( model ).notify( type, propCopy );
+ };
+
}());
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/remote/Model_Test.js b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/remote/Model_Test.js
index 38bd30d..f2a22b2 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/remote/Model_Test.js
+++ b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/remote/Model_Test.js
@@ -57,6 +57,15 @@
assertEquals( "bar", message.findNotifyProperty( "r11", "Selection", "foo" ) );
},
+ testNotify_ReplacesProtocolObjectsWithId : function() {
+ TestUtil.protocolListen( "r11", { "Selection" : true } );
+
+ model.notify( "Selection", { "foo" : model } );
+
+ var message = TestUtil.getMessageObject();
+ assertEquals( "r11", message.findNotifyProperty( "r11", "Selection", "foo" ) );
+ },
+
testNotify_CallWithParameterMap : function() {
TestUtil.protocolListen( "r11", { "Selection" : true } );