Remove ClientScriptingUtil.js
diff --git a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/ClientScriptingUtil.js b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/ClientScriptingUtil.js
deleted file mode 100644
index ed570b4..0000000
--- a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/ClientScriptingUtil.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 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
- ******************************************************************************/
-
-(function() {
-
-rwt.qx.Class.createNamespace( "rwt.scripting", {} );
-
-var ObjectRegistry = rwt.remote.ObjectRegistry;
-
-rwt.scripting.ClientScriptingUtil = {
-
-  _wrapperHelper : function(){},
-
-  _eventTypeMapping : {
-    "*" : {
-      "KeyDown" : "keypress",
-      "KeyUp" : "keyup",
-      "MouseDown" : "mousedown",
-      "MouseUp" : "mouseup",
-      "MouseMove" : "mousemove",
-      "MouseEnter" : "mouseover",
-      "MouseExit" : "mouseout",
-      "MouseDoubleClick" : "dblclick",
-      "Paint" : "paint",
-      "FocusIn" : "focus",
-      "FocusOut" : "blur",
-      "Show" : "appear",
-      "Hide" : "disappear"
-    },
-    "rwt.widgets.List" : {
-      "Selection" : "changeSelection",
-      "DefaultSelection" : "dblclick"
-    },
-    "rwt.widgets.Text" : {
-      "Verify" : "input", // TODO [tb] : does currently not react on programatic changes
-      "Modify" : "changeValue"
-    }
-  },
-
-  isPublicObject : function( obj ) {
-    return ObjectRegistry.getEntry( ObjectRegistry.getId( obj ) ).handler.isPublic === true;
-  },
-
-  getNativeEventSource : function( source, eventType ) {
-    var SWT = rwt.scripting.SWT;
-    var result;
-    if( source.classname === "rwt.widgets.List" && eventType === "Selection" ) {
-      result = source.getManager();
-    } else {
-      result = source;
-    }
-    return result;
-  },
-
-  getNativeEventType : function( source, eventType ) {
-    var map = this._eventTypeMapping;
-    var result;
-    if( map[ source.classname ] && map[ source.classname ][ eventType ] ) {
-      result = map[ source.classname ][ eventType ];
-    } else {
-      result = map[ "*" ][ eventType ];
-    }
-    return result;
-  },
-
-  wrapAsProto : function( object ) {
-    this._wrapperHelper.prototype = object;
-    var result = new this._wrapperHelper();
-    this._wrapperHelper.prototype = null;
-    return result;
-  },
-
-  postProcessEvent : function( event, wrappedEvent, originalEvent ) {
-    var SWT = rwt.scripting.SWT;
-    switch( event.type ) {
-      case SWT.Verify:
-        this._postProcessVerifyEvent( event, wrappedEvent, originalEvent );
-      break;
-      case SWT.KeyDown:
-      case SWT.KeyUp:
-        this._postProcessKeyEvent( event, wrappedEvent, originalEvent );
-      break;
-    }
-  },
-
-  getGCFor : function( widget ) {
-    var gc = widget.getUserData( rwt.scripting.WidgetProxyFactory._GC_KEY );
-    if( gc == null ) {
-      gc = this._findExistingGC( widget );
-      if( gc == null ) {
-        gc = new rwt.widgets.GC( widget );
-      }
-      widget.setUserData( rwt.scripting.WidgetProxyFactory._GC_KEY, gc );
-    }
-    return gc;
-  },
-
-  _findExistingGC : function( widget ) {
-    var children = widget._getTargetNode().childNodes;
-    var result = null;
-    for( var i = 0; i < children.length && result == null; i++ ) {
-      if( children[ i ].rwtObject instanceof rwt.widgets.GC ) {
-        result = children[ i ].rwtObject;
-      }
-    }
-    return result;
-  },
-
-  _postProcessVerifyEvent : function( event, wrappedEvent, originalEvent ) {
-    var widget = originalEvent.getTarget();
-    if( wrappedEvent.doit !== false ) {
-      if( event.text !== wrappedEvent.text && event.text !== "" ) {
-        // insert replacement text
-        originalEvent.preventDefault();
-        var currentText = widget.getValue();
-        var textLeft = currentText.slice( 0, event.start );
-        var textRight = currentText.slice( event.end, currentText.length );
-        var carret = textLeft.length + wrappedEvent.text.length;
-        widget.setValue( textLeft + wrappedEvent.text + textRight );
-        widget.setSelection( [ carret, carret ] );
-      }
-    } else {
-      // undo any change
-      originalEvent.preventDefault();
-      widget._renderValue();
-      widget._renderSelection();
-    }
-  },
-
-  _postProcessKeyEvent : function( event, wrappedEvent, originalEvent ) {
-    if( wrappedEvent.doit === false ) {
-      originalEvent.preventDefault();
-    }
-  }
-
-};
-
-}());
diff --git a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventBinding.js b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventBinding.js
index 3d1399c..95683e6 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventBinding.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventBinding.js
@@ -13,7 +13,6 @@
 
 rwt.qx.Class.createNamespace( "rwt.scripting", {} );
 
-var ClientScriptingUtil = rwt.scripting.ClientScriptingUtil;
 var SWT = rwt.scripting.SWT;
 
 var wrapperRegistry = {};
@@ -24,8 +23,8 @@
   addListener : function( widget, eventType, targetFunction ) {
     var wrapperKey = this._getWrapperKey( widget, eventType, targetFunction );
     if( wrapperRegistry[ wrapperKey ] == null ) {
-      var nativeType = ClientScriptingUtil.getNativeEventType( widget, eventType );
-      var nativeSource = ClientScriptingUtil.getNativeEventSource( widget, eventType );
+      var nativeType = this._getNativeEventType( widget, eventType );
+      var nativeSource = this._getNativeEventSource( widget, eventType );
       var wrappedListener = this._wrapListener( widget, eventType, targetFunction );
       nativeSource.addEventListener( nativeType, wrappedListener, window );
       wrapperRegistry[ wrapperKey ] = wrappedListener;
@@ -35,8 +34,8 @@
   removeListener : function( widget, eventType, targetFunction ) {
     var wrapperKey = this._getWrapperKey( widget, eventType, targetFunction );
     if( wrapperRegistry[ wrapperKey ] != null ) {
-      var nativeType = ClientScriptingUtil.getNativeEventType( widget, eventType );
-      var nativeSource = ClientScriptingUtil.getNativeEventSource( widget, eventType );
+      var nativeType = this._getNativeEventType( widget, eventType );
+      var nativeSource = this._getNativeEventSource( widget, eventType );
       var wrappedListener = wrapperRegistry[ wrapperKey ];
       nativeSource.removeEventListener( nativeType, wrappedListener, window );
       wrapperRegistry[ wrapperKey ] = null;
@@ -47,9 +46,9 @@
     return function( nativeEvent ) {
       try {
         var eventProxy = new rwt.scripting.EventProxy( SWT[ eventType ], widget, nativeEvent );
-        var wrappedEventProxy = ClientScriptingUtil.wrapAsProto( eventProxy );
+        var wrappedEventProxy = rwt.scripting.EventProxy.wrapAsProto( eventProxy );
         targetFunction( wrappedEventProxy );
-        ClientScriptingUtil.postProcessEvent( eventProxy, wrappedEventProxy, nativeEvent );
+        rwt.scripting.EventProxy.postProcessEvent( eventProxy, wrappedEventProxy, nativeEvent );
         rwt.scripting.EventProxy.disposeEventProxy( eventProxy );
       } catch( ex ) {
         var msg = "Error in scripting event type ";
@@ -65,6 +64,54 @@
       rwt.qx.Object.toHashCode( targetFunction )
     ];
     return result.join( ":" );
+  },
+
+  _getNativeEventSource : function( source, eventType ) {
+    var SWT = rwt.scripting.SWT;
+    var result;
+    if( source.classname === "rwt.widgets.List" && eventType === "Selection" ) {
+      result = source.getManager();
+    } else {
+      result = source;
+    }
+    return result;
+  },
+
+  _getNativeEventType : function( source, eventType ) {
+    var map = this._eventTypeMapping;
+    var result;
+    if( map[ source.classname ] && map[ source.classname ][ eventType ] ) {
+      result = map[ source.classname ][ eventType ];
+    } else {
+      result = map[ "*" ][ eventType ];
+    }
+    return result;
+  },
+
+  _eventTypeMapping : {
+    "*" : {
+      "KeyDown" : "keypress",
+      "KeyUp" : "keyup",
+      "MouseDown" : "mousedown",
+      "MouseUp" : "mouseup",
+      "MouseMove" : "mousemove",
+      "MouseEnter" : "mouseover",
+      "MouseExit" : "mouseout",
+      "MouseDoubleClick" : "dblclick",
+      "Paint" : "paint",
+      "FocusIn" : "focus",
+      "FocusOut" : "blur",
+      "Show" : "appear",
+      "Hide" : "disappear"
+    },
+    "rwt.widgets.List" : {
+      "Selection" : "changeSelection",
+      "DefaultSelection" : "dblclick"
+    },
+    "rwt.widgets.Text" : {
+      "Verify" : "input", // TODO [tb] : does currently not react on programatic changes
+      "Modify" : "changeValue"
+    }
   }
 
 };
diff --git a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventProxy.js b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventProxy.js
index a28a84b..0f9a215 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventProxy.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/EventProxy.js
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012 EclipseSource and others.
+ * Copyright (c) 2012, 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
@@ -46,7 +46,6 @@
    * An object representing the widget that issued the event.
    * It has setter and getter named after the properties used in the RAP protocol.
    * Only a subset of getter is currently supported.
-   * (See rwt.scripting.ClientScriptingUtil#attachGetter.)
    * Setting properties might result in server and client getting out-of-sync in RAP 1.5,
    * unless it is a property that can be changed by user-input (e.g. selection).
    */
@@ -158,6 +157,26 @@
   eventProxy.widget = null;
 };
 
+rwt.scripting.EventProxy.wrapAsProto = function( object ) {
+    WrapperHelper.prototype = object;
+    var result = new WrapperHelper();
+    WrapperHelper.prototype = null;
+    return result;
+  };
+
+rwt.scripting.EventProxy.postProcessEvent = function( event, wrappedEvent, originalEvent ) {
+  var SWT = rwt.scripting.SWT;
+  switch( event.type ) {
+    case SWT.Verify:
+      postProcessVerifyEvent( event, wrappedEvent, originalEvent );
+    break;
+    case SWT.KeyDown:
+    case SWT.KeyUp:
+      postProcessKeyEvent( event, wrappedEvent, originalEvent );
+    break;
+  }
+};
+
 var initKeyEvent = function( event, originalEvent ) {
   var charCode = originalEvent.getCharCode();
   var SWT = rwt.scripting.SWT;
@@ -204,7 +223,7 @@
 };
 
 var initPaintEvent = function( event, target ) {
-  var gc = rwt.scripting.ClientScriptingUtil.getGCFor( target );
+  var gc = rwt.scripting.WidgetProxyFactory._getGCFor( target );
   event.gc = gc.getNativeContext();
 };
 
@@ -266,4 +285,33 @@
   event.stateMask |= originalEvent.isMetaPressed() ? SWT.COMMAND : 0;
 };
 
+var postProcessVerifyEvent = function( event, wrappedEvent, originalEvent ) {
+  var widget = originalEvent.getTarget();
+  if( wrappedEvent.doit !== false ) {
+    if( event.text !== wrappedEvent.text && event.text !== "" ) {
+      // insert replacement text
+      originalEvent.preventDefault();
+      var currentText = widget.getValue();
+      var textLeft = currentText.slice( 0, event.start );
+      var textRight = currentText.slice( event.end, currentText.length );
+      var carret = textLeft.length + wrappedEvent.text.length;
+      widget.setValue( textLeft + wrappedEvent.text + textRight );
+      widget.setSelection( [ carret, carret ] );
+    }
+  } else {
+    // undo any change
+    originalEvent.preventDefault();
+    widget._renderValue();
+    widget._renderSelection();
+  }
+};
+
+var postProcessKeyEvent = function( event, wrappedEvent, originalEvent ) {
+  if( wrappedEvent.doit === false ) {
+    originalEvent.preventDefault();
+  }
+};
+
+var WrapperHelper = function(){};
+
 }());
diff --git a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/WidgetProxyFactory.js b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/WidgetProxyFactory.js
index d26ab6b..1f87436 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/WidgetProxyFactory.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/WidgetProxyFactory.js
@@ -196,7 +196,7 @@
   },
 
   _initGC : function( widget ) {
-    var gc = rwt.scripting.ClientScriptingUtil.getGCFor( widget );
+    var gc = this._getGCFor( widget );
     var width = widget.getInnerWidth();
     var height = widget.getInnerHeight();
     var fillStyle = widget.getBackgroundColor();
@@ -216,7 +216,32 @@
       rwt.util.Colors.stringToRgb( strokeStyle ? strokeStyle : "#000000" )
     );
 
-  }
+  },
+
+  _getGCFor : function( widget ) {
+    var gc = widget.getUserData( rwt.scripting.WidgetProxyFactory._GC_KEY );
+    if( gc == null ) {
+      gc = this._findExistingGC( widget );
+      if( gc == null ) {
+        gc = new rwt.widgets.GC( widget );
+      }
+      widget.setUserData( rwt.scripting.WidgetProxyFactory._GC_KEY, gc );
+    }
+    return gc;
+  },
+
+  _findExistingGC : function( widget ) {
+    var children = widget._getTargetNode().childNodes;
+    var result = null;
+    for( var i = 0; i < children.length && result == null; i++ ) {
+      if( children[ i ].rwtObject instanceof rwt.widgets.GC ) {
+        result = children[ i ].rwtObject;
+      }
+    }
+    return result;
+  },
+
+
 
 };
 
diff --git a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/handler/EventBindingHandler.js b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/handler/EventBindingHandler.js
index c6a214d..b2905d9 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/handler/EventBindingHandler.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/rwt/scripting/handler/EventBindingHandler.js
@@ -18,7 +18,7 @@
 
   factory : function( properties ) {
     var source = ObjectRegistry.getObject( properties.targetObject );
-    var isPublic = rwt.scripting.ClientScriptingUtil.isPublicObject( source );
+    var isPublic = isPublicObject( source );
     var eventType = properties.eventType;
     var targetFunction = ObjectRegistry.getObject( properties.listener );
     if( isPublic ) {
@@ -44,4 +44,8 @@
 
 } );
 
+var isPublicObject = function( obj ) {
+  return ObjectRegistry.getEntry( ObjectRegistry.getId( obj ) ).handler.isPublic === true;
+};
+
 }());
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/Script.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/Script.java
index 0de7710..4234ee6 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/Script.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/Script.java
@@ -20,6 +20,9 @@
   private static final String REMOTE_TYPE = "rwt.scripting.Script";
   private final RemoteObject remoteObject;
 
+  /**
+   * Provisional/Experimental
+   */
   public Script( String scriptCode ) {
     if( scriptCode == null ) {
       throw new NullPointerException( "Parameter is null: scriptCode" );
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources.java
index c76b0e0..d488090 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources.java
@@ -27,7 +27,6 @@
   private static final String PREFIX = "rwt/scripting/";
   private static final String[] ALL_RESOURCES = {
     "SWT.js",
-    "ClientScriptingUtil.js",
     "EventBinding.js",
     "handler/EventBindingHandler.js",
     "EventProxy.js",
diff --git a/tests/org.eclipse.rap.clientscripting.jstest/js/ReferenceGen.js b/tests/org.eclipse.rap.clientscripting.jstest/js/ReferenceGen.js
deleted file mode 100644
index 896cb8f..0000000
--- a/tests/org.eclipse.rap.clientscripting.jstest/js/ReferenceGen.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 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
- ******************************************************************************/
-
-/*global console:false */
-
-(function() {
-
-  var nl = "</br>";
-  var lv1 = "*  ";
-  var text = "## Available Setter:" + nl;
-  var common = org.eclipse.rwt.remote.HandlerUtil._controlProperties;
-  var registry = org.eclipse.rwt.remote.HandlerRegistry._registry;
-
-  var ignore = [ "children", "activeKeys", "cancelKeys", "customVariant", "parent" ];
-
-  var toSetter = function( properties ) {
-    var result = [];
-    for( var i = 0; i < properties.length; i++ ) {
-      result[ i ] = "set" + qx.lang.String.toFirstUp( properties[ i ] );
-    }
-    return result.join( ", ");
-  };
-
-  var filterCommon = function( list ) {
-    return list.slice( 0, common.length );
-  };
-
-  var filterIgnore = function( list ) {
-    var result = list;
-    for( var i = 0; i < ignore.length; i++ ) {
-      var indexOf = result.indexOf( ignore[ i ] );
-      if( indexOf != -1 ) {
-        result.splice( indexOf, indexOf + 1 );
-      }
-    }
-    return result;
-  };
-
-  var filter = function( list ) {
-    return filterIgnore( filterCommon( list ) );
-  };
-
-  text += lv1 + "<b>org.eclipse.swt.widgets.Control</b>: " + toSetter( filterIgnore( common ) ) + nl;
-
-  for( var key in registry ) {
-    if( key.indexOf( "rwt.widgets" ) === 0 ) {
-      try {
-        var adapter = registry[ key ];
-        var type = "org.eclipse.swt.widget" + key.slice( 10 );
-        text += lv1 + "<b>" + type + "</b>: ";
-        if( adapter.properties.length > 0 ) {
-          text += toSetter( filter( adapter.properties ) );
-        }
-        text += nl;
-      } catch( ex ) {
-        console.log( ex );
-      }
-    }
-  }
-
-  text += nl;
-  text += "## Available Getter:" + nl;
-
-  var widgets = rwt.scripting.ClientScriptingUtil._getterMapping;
-
-  for( var key in widgets ) {
-    var type = "org.eclipse.swt.widget" + key.slice( key.lastIndexOf( "." ) );
-    text += lv1 + "<b>" + type + "</b>: ";
-    var getters = widgets[ key ];
-    var gettersArr = [];
-    for( var getter in getters ) {
-      gettersArr.push( getter );
-    }
-    text += gettersArr.join() + nl;
-  }
-
-  console.log( text );
-
-}());
diff --git a/tests/org.eclipse.rap.clientscripting.jstest/src/org/eclipse/rap/clientscripting/internal/ClientScriptingResourcesContribution.java b/tests/org.eclipse.rap.clientscripting.jstest/src/org/eclipse/rap/clientscripting/internal/ClientScriptingResourcesContribution.java
index 506d1dd..2165c24 100644
--- a/tests/org.eclipse.rap.clientscripting.jstest/src/org/eclipse/rap/clientscripting/internal/ClientScriptingResourcesContribution.java
+++ b/tests/org.eclipse.rap.clientscripting.jstest/src/org/eclipse/rap/clientscripting/internal/ClientScriptingResourcesContribution.java
@@ -22,7 +22,6 @@
   private static final String PATH_PREFIX = "/rwt/scripting/";
 
   private static final String[] RESOURCES = new String[] {
-    "ClientScriptingUtil.js",
     "SWT.js",
     "FunctionFactory.js",
     "handler/FunctionHandler.js",
diff --git a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources_Test.java b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources_Test.java
index 292514f..7bbc38b 100644
--- a/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources_Test.java
+++ b/tests/org.eclipse.rap.clientscripting.test/src/org/eclipse/rap/clientscripting/internal/resources/ClientScriptingResources_Test.java
@@ -77,7 +77,6 @@
     ClientScriptingResources.ensure();
 
     String registeredCode = registeredStringCaptor.get();
-    assertTrue( registeredCode.contains( "scripting.ClientScriptingUtil =" ) );
     assertTrue( registeredCode.contains( "scripting.EventBinding =" ) );
     assertTrue( registeredCode.contains( "scripting.SWT =" ) );
     assertTrue( registeredCode.contains( "scripting.EventProxy =" ) );