Revise AutoSuggest.js model field names
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 40ec001..cdde05d 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
@@ -75,7 +75,7 @@
     if( dataSource == null ) {
       throw new NullPointerException( "Data must not be null" );
     }
-    model.set( "dataSource", dataSource.getId() );
+    model.set( "dataSourceId", dataSource.getId() );
   }
 
   public void setVisibleItemCount( int itemCount ) {
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggest.js b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggest.js
index dbb090b..cf8be3b 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggest.js
+++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/AutoSuggest.js
@@ -19,22 +19,22 @@
     onAcceptSuggestion.apply( event.source, [ event ] );
   } else {
     switch( event.property ) {
-      case "dataSource":
-        onChangeDataSource.apply( event.source, [ event ] );
+      case "dataSourceId":
+        onChangeDataSourceId.apply( event.source, [ event ] );
       break;
-      case "elements":
-        onChangeElements.apply( event.source, [ event ] );
+      case "suggestions":
+        onChangeSuggestions.apply( event.source, [ event ] );
       break;
       case "userText":
         onChangeUserText.apply( event.source, [ event ] );
       break;
-      case "results":
+      case "currentSuggestions":
         onChangeResults.apply( event.source, [ event ] );
       break;
-      case "resultSelection":
+      case "selectedSuggestionIndex":
         onChangeResultSelection.apply( event.source, [ event ] );
       break;
-      case "suggestion":
+      case "replacementText":
         onChangeSuggestion.apply( event.source, [ event ] );
       break;
     }
@@ -44,31 +44,31 @@
 //////////////////
 // Event Handling
 
-function onChangeDataSource( event ) {
-  this.set( "elements", null );
+function onChangeDataSourceId( event ) {
+  this.set( "suggestions", null );
 }
 
-function onChangeElements( event ) {
+function onChangeSuggestions( event ) {
   this.set( "elementSelection", -1, { "nosync" : true } );
   // NOTE: Nothing else to do if not visible, but would need to update when it becomes visible.
   //       Currently only onChangeUserText can set resultsVisible to true, which updates implicitly.
-  if( this.get( "resultsVisible" ) ) {
+  if( this.get( "suggestionsVisible" ) ) {
     filter.apply( this, [ { "action" : "refresh" } ] );
   }
 }
 
 function onChangeUserText( event ) {
-  this.set( "resultsVisible", event.value != null && event.value.length > 0  );
+  this.set( "suggestionsVisible", event.value != null && event.value.length > 0  );
   filter.apply( this, [ event.options ] );
 }
 
 function onChangeResults( event ) {
   var action = event.options.action;
   if( this.get( "autoComplete" ) && ( action === "typing" || action === "refresh" ) ) {
-    var items = this.get( "results" ).items;
+    var items = this.get( "currentSuggestions" ).items;
     var common = commonText( items );
     if( common && common.length > this.get( "userText" ).length ) {
-      this.set( "suggestion", common );
+      this.set( "replacementText", common );
     }
   }
 }
@@ -76,9 +76,9 @@
 function onChangeResultSelection( event ) {
   var suggestion = null;
   if( event.value !== -1 ) {
-    suggestion = this.get( "results" ).items[ event.value ] || "";
+    suggestion = this.get( "currentSuggestions" ).items[ event.value ] || "";
   }
-  this.set( "suggestion", suggestion, { "action" : "selection" } );
+  this.set( "replacementText", suggestion, { "action" : "selection" } );
 }
 
 function onChangeSuggestion( event ) {
@@ -99,15 +99,15 @@
 }
 
 function onAcceptSuggestion( event ) {
-  var results = this.get( "results" );
+  var results = this.get( "currentSuggestions" );
   if( results ) {
-    var index = this.get( "resultSelection" );
+    var index = this.get( "selectedSuggestionIndex" );
     if( typeof index === "number" && index > -1 ) {
       this.set( "elementSelection", results.indicies[ index ] );
-      this.set( "resultsVisible", false );
+      this.set( "suggestionsVisible", false );
     } else if( this.get( "autoComplete" ) && results.indicies.length === 1 ) {
       this.set( "elementSelection", results.indicies[ 0 ] );
-      this.set( "resultsVisible", false );
+      this.set( "suggestionsVisible", false );
     }
   }
   var text = this.get( "text" ) || "";
@@ -115,20 +115,20 @@
 }
 
 function filter( options ) {
-  if( this.get( "elements" ) == null ) {
+  if( this.get( "suggestions" ) == null ) {
     processDataSource.apply( this );
   }
   var userText = this.get( "userText" ) || "";
-  this.set( "suggestion", null, { "action" : "sync" } );
+  this.set( "replacementText", null, { "action" : "sync" } );
   var query = createQuery( userText.toLowerCase() );
-  var results = searchItems( this.get( "elements" ), query );
-  this.set( "results", results, { "action" : options.action } );
+  var results = searchItems( this.get( "suggestions" ), query );
+  this.set( "currentSuggestions", results, { "action" : options.action } );
 }
 
 function processDataSource() {
-  if( this.get( "dataSource" ) != null ) {
-    var dataSource = rap.getObject( this.get( "dataSource" ) );
-    this.set( "elements", dataSource.get( "data" ) );
+  if( this.get( "dataSourceId" ) != null ) {
+    var dataSource = rap.getObject( this.get( "dataSourceId" ) );
+    this.set( "suggestions", dataSource.get( "data" ) );
   }
 }
 
diff --git a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/DataBinding.js b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/DataBinding.js
index dbd761d..6feabca 100644
--- a/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/DataBinding.js
+++ b/bundles/org.eclipse.rap.addons.autosuggest/src/org/eclipse/rap/addons/autosuggest/internal/resources/DataBinding.js
@@ -65,11 +65,11 @@
     case "textSelection":
       onModelChangeTextSelection( textWidget, model, event );
     break;
-    case "results":
-      onModelChangeResults( dropDown, model, event );
+    case "currentSuggestions":
+      onModelChangeCurrentSuggestions( dropDown, model, event );
     break;
-    case "resultsVisible":
-      onModelChangeResultsVisible( dropDown, model, event );
+    case "suggestionsVisible":
+      onModelChangeSuggestionsVisible( dropDown, model, event );
     break;
   }
 }
@@ -100,23 +100,23 @@
 }
 
 function onDropDownChangeVisible( model, event ) {
-  model.set( "resultsVisible", event.widget.getVisible(), { "action" : "sync" }  );
+  model.set( "suggestionsVisible", event.widget.getVisible(), { "action" : "sync" }  );
 }
 
 function onDropDownSelection( model, event ) {
-  model.set( "resultSelection", event.index, { "action" : "sync" }  );
+  model.set( "selectedSuggestionIndex", event.index, { "action" : "sync" }  );
 }
 
 function onDropDownDefaultSelection( model, event ) {
   model.notify( "accept", { type : "accept", "source" : model }  );
 }
 
-function onModelChangeResults( dropDown, model, event ) {
-  var results = model.get( "results" );
+function onModelChangeCurrentSuggestions( dropDown, model, event ) {
+  var results = model.get( "currentSuggestions" );
   dropDown.setItems( results.items );
 }
 
-function onModelChangeResultsVisible( dropDown, model, event ) {
+function onModelChangeSuggestionsVisible( dropDown, model, event ) {
   if( event.options.action !== "sync" ) {
     dropDown.setVisible( event.value );
   }
diff --git a/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/specs/AutoSuggestSpec.js b/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/specs/AutoSuggestSpec.js
index 559c942..c388590 100644
--- a/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/specs/AutoSuggestSpec.js
+++ b/tests/org.eclipse.rap.addons.autosuggest.test/jasmine/jasmine/specs/AutoSuggestSpec.js
@@ -191,7 +191,7 @@
     beforeEach( function() {
       rap = new RapMock();
       model = rap.typeHandler[ "rwt.remote.Model" ].factory(); // make model "public"
-      model.set( "elements", [ "foo", "bar", "foobar", "banana", "apple", "cherry" ] );
+      model.set( "suggestions", [ "foo", "bar", "foobar", "banana", "apple", "cherry" ] );
       log = [];
       logger = function() {
         log.push( arguments );
@@ -202,72 +202,71 @@
       model.destroy();
     } );
 
-    describe( "change:dataSource", function() {
+    describe( "change:dataSourceId", function() {
 
-      it( "sets elements to null", function() {
-        model.addListener( "change:dataSource", createClientListener( "AutoSuggest" ) );
-        model.set( "elements", [] );
+      it( "sets suggestions to null", function() {
+        model.addListener( "change:dataSourceId", createClientListener( "AutoSuggest" ) );
+        model.set( "suggestions", [] );
 
-        model.set( "dataSource", "fooId" );
+        model.set( "dataSourceId", "fooId" );
 
-        expect( model.get( "elements" ) ).toBeNull();
+        expect( model.get( "suggestions" ) ).toBeNull();
       } );
 
     } );
 
     describe( "change:userText", function() {
 
-      it( "clears suggestion", function() {
+      it( "clears replacementText", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
-        model.set( "suggestion", "banana" );
-        model.addListener( "change:suggestion", logger );
+        model.set( "replacementText", "banana" );
 
         model.set( "userText", "ba" );
 
-        expect( model.get( "suggestion" ) ).toBeNull();
+        expect( model.get( "replacementText" ) ).toBeNull();
       } );
 
-      it( "shows results", function() {
+      it( "shows suggestions", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
 
         model.set( "userText", "ba" );
 
-        expect( model.get( "resultsVisible" ) ).toBe( true );
+        expect( model.get( "suggestionsVisible" ) ).toBe( true );
       } );
 
       it( "hides results if text length is zero", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
-        model.set( "resultsVisible", true );
+        model.set( "suggestionsVisible", true );
 
         model.set( "userText", "" );
 
-        expect( model.get( "resultsVisible" ) ).toBe( false );
+        expect( model.get( "suggestionsVisible" ) ).toBe( false );
       } );
 
-      it( "updates results", function() {
+      it( "updates currentSuggestions", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
 
         model.set( "userText", "ba" );
 
-        expect( model.get( "results" ).items ).toEqual( [ "bar", "banana" ] );
+        expect( model.get( "currentSuggestions" ).items ).toEqual( [ "bar", "banana" ] );
       } );
 
-      it( "updates results from data provider if no elements are set", function() {
+      it( "updates results from data provider if suggestions is not set", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
-        model.set( "elements", null );
+        model.set( "suggestions", null );
         var dataSource = rap.typeHandler[ "rwt.remote.Model" ].factory();
         dataSource.set( "data", [ "foo", "bar", "foobar", "banana", "apple", "cherry" ] );
         spyOn( rap, "getObject" ).andReturn( dataSource );
-        model.set( "dataSource", "fooId" );
+        model.set( "dataSourceId", "fooId" );
 
         model.set( "userText", "ba" );
 
-        expect( model.get( "results" ).items ).toEqual( [ "bar", "banana" ] );
+        expect( model.get( "currentSuggestions" ).items ).toEqual( [ "bar", "banana" ] );
       } );
 
       it( "forwards action option", function() {
         model.addListener( "change:userText", createClientListener( "AutoSuggest" ) );
-        model.addListener( "change:results", logger );
+        model.addListener( "change:currentSuggestions", logger );
 
         model.set( "userText", "ba", { "action" : "foo" } );
 
@@ -276,273 +275,273 @@
 
     } );
 
-    describe( "change:elements", function() {
+    describe( "change:suggestions", function() {
 
       it( "clears suggestion", function() {
-        model.addListener( "change:elements", createClientListener( "AutoSuggest" ) );
-        model.set( "suggestion", "banana" );
-        model.set( "resultsVisible", true );
-        model.addListener( "change:suggestion", logger );
+        model.addListener( "change:suggestions", createClientListener( "AutoSuggest" ) );
+        model.set( "replacementText", "banana" );
+        model.set( "suggestionsVisible", true );
+        model.addListener( "change:replacementText", logger );
 
-        model.set( "elements", [] );
+        model.set( "suggestions", [] );
 
-        expect( model.get( "suggestion" ) ).toBeNull();
+        expect( model.get( "replacementText" ) ).toBeNull();
       } );
 
       it( "clears elementSelection with nosync", function() {
-        model.addListener( "change:elements", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:suggestions", createClientListener( "AutoSuggest" ) );
         model.set( "elementSelection", 1 );
         model.addListener( "change:elementSelection", logger );
 
-        model.set( "elements", [ "foo" ] );
+        model.set( "suggestions", [ "foo" ] );
 
         expect( model.get( "elementSelection" ) ).toBe( -1 );
         expect( log[ 0 ][ 0 ].options.nosync ).toBe( true );
       } );
 
-      it( "updates results", function() {
-        model.addListener( "change:elements", createClientListener( "AutoSuggest" ) );
+      it( "updates suggestions", function() {
+        model.addListener( "change:suggestions", createClientListener( "AutoSuggest" ) );
         model.set( "userText", "ba" );
-        model.set( "resultsVisible", true );
+        model.set( "suggestionsVisible", true );
 
-        model.set( "elements", [ "foo", "bar" ] );
+        model.set( "suggestions", [ "foo", "bar" ] );
 
-        expect( model.get( "results" ).items ).toEqual( [ "bar" ] );
+        expect( model.get( "currentSuggestions" ).items ).toEqual( [ "bar" ] );
       } );
 
-      it( "does not update results if not visible", function() {
-        model.addListener( "change:elements", createClientListener( "AutoSuggest" ) );
-        model.set( "resultsVisible", false );
-        model.addListener( "change:results", logger );
+      it( "does not update suggestions if not visible", function() {
+        model.addListener( "change:suggestions", createClientListener( "AutoSuggest" ) );
+        model.set( "suggestionsVisible", false );
+        model.addListener( "change:currentSuggestions", logger );
 
-        model.set( "elements", [ "foo", "bar" ] );
+        model.set( "suggestions", [ "foo", "bar" ] );
 
         expect( log.length ).toBe( 0 );
       } );
 
-      it( "sets results with refresh option", function() {
-        model.addListener( "change:elements", createClientListener( "AutoSuggest" ) );
-        model.addListener( "change:results", logger );
-        model.set( "resultsVisible", true );
+      it( "sets suggestions with refresh option", function() {
+        model.addListener( "change:suggestions", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:currentSuggestions", logger );
+        model.set( "suggestionsVisible", true );
         model.set( "userText", "ba" );
 
-        model.set( "elements", [ "foo", "bar" ] );
+        model.set( "suggestions", [ "foo", "bar" ] );
 
         expect( log[ 0 ][ 0 ].options.action ).toBe( "refresh" );
       } );
 
     } );
 
-    describe( "change:resultSelection", function() {
+    describe( "change:selectedSuggestionIndex", function() {
 
-      it( "sets suggestion to selected result", function() {
-        model.addListener( "change:resultSelection", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "bar", "banana" ] } );
+      it( "sets replacementText to selected suggestion", function() {
+        model.addListener( "change:selectedSuggestionIndex", createClientListener( "AutoSuggest" ) );
+        model.set( "currentSuggestions", { "items" : [ "bar", "banana" ] } );
 
-        model.set( "resultSelection", 1 );
+        model.set( "selectedSuggestionIndex", 1 );
 
-        expect( model.get( "suggestion" ) ).toEqual( "banana" );
+        expect( model.get( "replacementText" ) ).toEqual( "banana" );
       } );
 
       it( "resets suggestion when selection index is -1", function() {
-        model.addListener( "change:resultSelection", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "bar", "banana" ] } );
-        model.set( "suggestion", "banana" );
+        model.addListener( "change:selectedSuggestionIndex", createClientListener( "AutoSuggest" ) );
+        model.set( "currentSuggestions", { "items" : [ "bar", "banana" ] } );
+        model.set( "replacementText", "banana" );
 
-        model.set( "resultSelection", -1 );
+        model.set( "selectedSuggestionIndex", -1 );
 
-        expect( model.get( "suggestion" ) ).toBeNull();
+        expect( model.get( "replacementText" ) ).toBeNull();
       } );
 
       it( "sets action option", function() {
-        model.addListener( "change:resultSelection", createClientListener( "AutoSuggest" ) );
-        model.addListener( "change:suggestion", logger );
-        model.set( "results", { "items" : [ "bar", "banana" ] } );
+        model.addListener( "change:selectedSuggestionIndex", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", logger );
+        model.set( "currentSuggestions", { "items" : [ "bar", "banana" ] } );
 
-        model.set( "resultSelection", 1 );
+        model.set( "selectedSuggestionIndex", 1 );
 
         expect( log[ 0 ][ 0 ].options.action ).toBe( "selection" );
       } );
 
     } );
 
-    describe( "change:suggestion", function() {
+    describe( "change:replacementText", function() {
 
       it( "ignores events from change:userText", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
         model.set( "text", "bar" );
         model.set( "textSelection", [ 0, 0 ] );
 
-        model.set( "suggestion", "foo", { "action" : "sync" } );
+        model.set( "replacementText", "foo", { "action" : "sync" } );
 
         expect( model.get( "text" ) ).toEqual( "bar" );
         expect( model.get( "textSelection" ) ).toEqual( [ 0, 0 ] );
       } );
 
       it( "sets text to suggestion", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
 
-        model.set( "suggestion", "foo" );
+        model.set( "replacementText", "foo" );
 
         expect( model.get( "text" ) ).toEqual( "foo" );
       } );
 
-      it( "sets textSelection for result selection", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+      it( "sets textSelection for replacementText", function() {
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
 
-        model.set( "suggestion", "foo", { "action" : "selection" } );
+        model.set( "replacementText", "foo", { "action" : "selection" } );
 
         expect( model.get( "textSelection" ) ).toEqual( [ 0, 3 ] );
       } );
 
       it( "sets textSelection for auto complete", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
         model.set( "userText", "foo" );
 
-        model.set( "suggestion", "foobar" );
+        model.set( "replacementText", "foobar" );
 
         expect( model.get( "textSelection" ) ).toEqual( [ 3, 6 ] );
       } );
 
       it( "resets text to userText", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
         model.set( "userText", "bar" );
 
-        model.set( "suggestion", null, { "action" : "selection" } );
+        model.set( "replacementText", null, { "action" : "selection" } );
 
         expect( model.get( "text" ) ).toEqual( "bar" );
       } );
 
       it( "resets selection to userText end", function() {
-        model.addListener( "change:suggestion", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:replacementText", createClientListener( "AutoSuggest" ) );
         model.set( "userText", "bar" );
 
-        model.set( "suggestion", null, { "action" : "selection" } );
+        model.set( "replacementText", null, { "action" : "selection" } );
 
         expect( model.get( "textSelection" ) ).toEqual( [ 3, 3 ] );
       } );
 
     } );
 
-    describe( "change:results", function() {
+    describe( "change:currentSuggestions", function() {
 
       it( "does nothing without autocomplete", function() {
-        model.set( "suggestion", "ban" );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.set( "replacementText", "ban" );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
 
-        model.set( "results", { "items" : [ "banana" ] } );
+        model.set( "currentSuggestions", { "items" : [ "banana" ] } );
 
-        expect( model.get( "suggestion" ) ).toEqual( "ban" );
+        expect( model.get( "replacementText" ) ).toEqual( "ban" );
       } );
 
       it( "does nothing if not typing", function() {
-        model.set( "suggestion", "ban" );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.set( "replacementText", "ban" );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
         model.set( "autoComplete", true );
 
-        model.set( "results", { "items" : [ "banana" ] } );
+        model.set( "currentSuggestions", { "items" : [ "banana" ] } );
 
-        expect( model.get( "suggestion" ) ).toEqual( "ban" );
+        expect( model.get( "replacementText" ) ).toEqual( "ban" );
       } );
 
-      it( "autocompletes suggestion while typing on single result", function() {
-        model.set( "suggestion", "ban" );
+      it( "autocompletes text while typing on single currentSuggestion", function() {
+        model.set( "replacementText", "ban" );
         model.set( "userText", "b" );
         model.set( "autoComplete", true );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
 
-        model.set( "results", { "items" : [ "banana" ] }, { "action" : "typing" } );
+        model.set( "currentSuggestions", { "items" : [ "banana" ] }, { "action" : "typing" } );
 
-        expect( model.get( "suggestion" ) ).toEqual( "banana" );
+        expect( model.get( "replacementText" ) ).toEqual( "banana" );
       } );
 
-      it( "autocompletes suggestion while refreshing on single result", function() {
-        model.set( "suggestion", "ban" );
+      it( "autocompletes suggestion while refreshing on single currentSuggestion", function() {
+        model.set( "replacementText", "ban" );
         model.set( "userText", "b" );
         model.set( "autoComplete", true );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
 
-        model.set( "results", { "items" : [ "banana" ] }, { "action" : "refresh" } );
+        model.set( "currentSuggestions", { "items" : [ "banana" ] }, { "action" : "refresh" } );
 
-        expect( model.get( "suggestion" ) ).toEqual( "banana" );
+        expect( model.get( "replacementText" ) ).toEqual( "banana" );
       } );
 
       it( "partially autocompletes suggestion for common text", function() {
         model.set( "autoComplete", true );
         model.set( "userText", "b" );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
 
         var items = [ "banana foo", "banana bar" ];
-        model.set( "results", { "items" : items }, { "action" : "typing" } );
+        model.set( "currentSuggestions", { "items" : items }, { "action" : "typing" } );
 
-        expect( model.get( "suggestion" ) ).toEqual( "banana " );
+        expect( model.get( "replacementText" ) ).toEqual( "banana " );
       } );
 
       it( "does not autocomplete if common text is shorter than userText", function() {
-        model.set( "suggestion", null );
+        model.set( "replacementText", null );
         model.set( "autoComplete", true );
         model.set( "userText", "banana xxx" );
-        model.addListener( "change:results", createClientListener( "AutoSuggest" ) );
+        model.addListener( "change:currentSuggestions", createClientListener( "AutoSuggest" ) );
 
         var items = [ "banana foo", "banana bar" ];
-        model.set( "results", { "items" : items }, { "action" : "typing" } );
+        model.set( "currentSuggestions", { "items" : items }, { "action" : "typing" } );
 
-        expect( model.get( "suggestion" ) ).toBe( null );
+        expect( model.get( "replacementText" ) ).toBe( null );
       } );
 
     } );
 
     describe( "accept", function() {
 
-      it( "sets elementSelection for resultSelection", function() {
+      it( "sets elementSelection for selectedSuggestionIndex", function() {
         model.addListener( "accept", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "bar", "banana" ], "indicies" : [ 1, 3 ] } );
-        model.set( "resultSelection", 1 );
+        model.set( "currentSuggestions", { "items" : [ "bar", "banana" ], "indicies" : [ 1, 3 ] } );
+        model.set( "selectedSuggestionIndex", 1 );
 
         model.notify( "accept", { source : model, type : "accept" } );
 
         expect( model.get( "elementSelection" ) ).toBe( 3 );
-        expect( model.get( "resultsVisible" ) ).toBe( false );
+        expect( model.get( "suggestionsVisible" ) ).toBe( false );
       } );
 
-      it( "sets elementSelection for single result and autoComplete", function() {
+      it( "sets elementSelection for single currentSuggestion and autoComplete", function() {
         model.addListener( "accept", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "banana" ], "indicies" : [ 3 ] } );
-        model.set( "resultSelection", -1 );
+        model.set( "currentSuggestions", { "items" : [ "banana" ], "indicies" : [ 3 ] } );
+        model.set( "selectedSuggestionIndex", -1 );
         model.set( "autoComplete", true );
 
         model.notify( "accept", { source : model, type : "accept" } );
 
         expect( model.get( "elementSelection" ) ).toBe( 3 );
-        expect( model.get( "resultsVisible" ) ).toBe( false );
+        expect( model.get( "suggestionsVisible" ) ).toBe( false );
       } );
 
-      it( "does nothing for single result without autoComplete", function() {
+      it( "does nothing for single currentSuggestion without autoComplete", function() {
         model.addListener( "accept", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "banana" ], "indicies" : [ 3 ] } );
-        model.set( "resultSelection", -1 );
+        model.set( "currentSuggestions", { "items" : [ "banana" ], "indicies" : [ 3 ] } );
+        model.set( "selectedSuggestionIndex", -1 );
         model.set( "elementSelection", 0 );
-        model.set( "resultsVisible", true );
+        model.set( "suggestionsVisible", true );
 
 
         model.notify( "accept", { source : model, type : "accept" } );
 
         expect( model.get( "elementSelection" ) ).toBe( 0 );
-        expect( model.get( "resultsVisible" ) ).toBe( true );
+        expect( model.get( "suggestionsVisible" ) ).toBe( true );
       } );
 
-      it( "does nothing for multiple result without resultSelection", function() {
+      it( "does nothing for multiple result without selectedSuggestionIndex", function() {
         model.addListener( "accept", createClientListener( "AutoSuggest" ) );
-        model.set( "results", { "items" : [ "banana", "banu" ], "indicies" : [ 3 ] } );
-        model.set( "resultSelection", -1 );
+        model.set( "currentSuggestions", { "items" : [ "banana", "banu" ], "indicies" : [ 3 ] } );
+        model.set( "selectedSuggestionIndex", -1 );
         model.set( "elementSelection", 0 );
-        model.set( "resultsVisible", true );
+        model.set( "suggestionsVisible", true );
 
 
         model.notify( "accept", { source : model, type : "accept" } );
 
         expect( model.get( "elementSelection" ) ).toBe( 0 );
-        expect( model.get( "resultsVisible" ) ).toBe( true );
+        expect( model.get( "suggestionsVisible" ) ).toBe( true );
       } );
 
       it( "clears text selection", function() {
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 0b3f39a..961ce26 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
@@ -55,8 +55,7 @@
 public class AutoSuggest_Test {
 
   private static final String REMOTE_TYPE = "rwt.remote.Model";
-  private static final String MODEL_ID_KEY =
-      "org.eclipse.rap.addons.dropdown.viewer.DropDownViewer#viewer";
+  private static final String MODEL_ID_KEY = "org.eclipse.rap.addons.autosuggest#Model";
 
   private Text text;
   private RemoteObject remoteObject;
@@ -309,7 +308,7 @@
 
     autoSuggest.setDataSource( dataSource );
 
-    verify( remoteObject ).set( eq( "dataSource" ), eq( "providerId" ) );
+    verify( remoteObject ).set( eq( "dataSourceId" ), eq( "providerId" ) );
   }
 
   @Test