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 =" ) );