Merge branch 'Text' into features/protocol-event-renaming
diff --git a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/KeyEventSupport.js b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/KeyEventSupport.js
index 00a194a..f9462f5 100644
--- a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/KeyEventSupport.js
+++ b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/KeyEventSupport.js
@@ -76,20 +76,28 @@
_shouldSend : function( eventType, keyCode, charCode, domEvent, control ) {
var result = false;
if( this._isRelevant( keyCode, eventType, domEvent ) ) {
- if( this._hasTraverseListener( control ) && this._isTraverseKey( keyCode ) ) {
+ result = this._shouldSendTraverse( keyCode, charCode, domEvent, control )
+ || this._shouldSendKeyDown( keyCode, charCode, domEvent, control );
+ }
+ return result;
+ },
+
+ _shouldSendTraverse : function( keyCode, charCode, domEvent, control ) {
+ return this._hasTraverseListener( control ) && this._isTraverseKey( keyCode );
+ },
+
+ _shouldSendKeyDown : function( keyCode, charCode, domEvent, control ) {
+ var result = false;
+ if( this._hasKeyListener( control ) ) {
+ var activeKeys = control.getUserData( "activeKeys" );
+ if( activeKeys ) {
+ result = this._isActive( activeKeys, domEvent, keyCode, charCode );
+ } else {
result = true;
}
- if( !result && this._hasKeyListener( control ) ) {
- var activeKeys = control.getUserData( "activeKeys" );
- if( activeKeys ) {
- result = this._isActive( activeKeys, domEvent, keyCode, charCode );
- } else {
- result = true;
- }
- }
- if( !result ) {
- result = this._isActive( this._keyBindings, domEvent, keyCode, charCode );
- }
+ }
+ if( !result ) {
+ result = this._isActive( this._keyBindings, domEvent, keyCode, charCode );
}
return result;
},
@@ -164,7 +172,12 @@
"charCode" : finalCharCode
};
org.eclipse.swt.EventUtil.addModifierToProperties( properties );
- serverObject.notify( "KeyDown", properties, true );
+ if( this._shouldSendTraverse( keyCode, charCode, domEvent, widget ) ) {
+ serverObject.notify( "Traverse", properties, true );
+ }
+ if( this._shouldSendKeyDown( keyCode, charCode, domEvent, widget ) ) {
+ serverObject.notify( "KeyDown", properties, true );
+ }
},
///////////////
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/internal/protocol/ClientMessageConst.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/internal/protocol/ClientMessageConst.java
index 7cf45ce..dedaf04 100644
--- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/internal/protocol/ClientMessageConst.java
+++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/internal/protocol/ClientMessageConst.java
@@ -35,6 +35,7 @@
public static final String EVENT_MOUSE_UP = "MouseUp";
public static final String EVENT_MOUSE_DOUBLE_CLICK = "MouseDoubleClick";
public static final String EVENT_KEY_DOWN = "KeyDown";
+ public static final String EVENT_TRAVERSE = "Traverse";
public static final String EVENT_HELP = "Help";
public static final String EVENT_MENU_DETECT = "MenuDetect";
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil.java
index b5fa65c..fe2086c 100644
--- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil.java
+++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil.java
@@ -155,6 +155,21 @@
}
public static void processKeyEvents( Control control ) {
+ if( WidgetLCAUtil.wasEventSent( control, ClientMessageConst.EVENT_TRAVERSE ) ) {
+ int keyCode = readEventIntProperty( control,
+ ClientMessageConst.EVENT_TRAVERSE,
+ ClientMessageConst.EVENT_PARAM_KEY_CODE );
+ int charCode = readEventIntProperty( control,
+ ClientMessageConst.EVENT_TRAVERSE,
+ ClientMessageConst.EVENT_PARAM_CHAR_CODE );
+ int stateMask = EventLCAUtil.readStateMask( control, ClientMessageConst.EVENT_TRAVERSE );
+ int traverseKey = getTraverseKey( keyCode, stateMask );
+ if( traverseKey != SWT.TRAVERSE_NONE ) {
+ Event event = createKeyEvent( keyCode, charCode, stateMask );
+ event.detail = traverseKey;
+ control.notifyListeners( SWT.Traverse, event );
+ }
+ }
if( WidgetLCAUtil.wasEventSent( control, ClientMessageConst.EVENT_KEY_DOWN ) ) {
int keyCode = readEventIntProperty( control,
ClientMessageConst.EVENT_KEY_DOWN,
@@ -163,14 +178,7 @@
ClientMessageConst.EVENT_KEY_DOWN,
ClientMessageConst.EVENT_PARAM_CHAR_CODE );
int stateMask = EventLCAUtil.readStateMask( control, ClientMessageConst.EVENT_KEY_DOWN );
- int traverseKey = getTraverseKey( keyCode, stateMask );
- Event event;
- if( traverseKey != SWT.TRAVERSE_NONE ) {
- event = createKeyEvent( keyCode, charCode, stateMask );
- event.detail = traverseKey;
- control.notifyListeners( SWT.Traverse, event );
- }
- event = createKeyEvent( keyCode, charCode, stateMask );
+ Event event = createKeyEvent( keyCode, charCode, stateMask );
control.notifyListeners( SWT.KeyDown, event );
event = createKeyEvent( keyCode, charCode, stateMask );
control.notifyListeners( SWT.KeyUp, event );
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/events/SelectionEvent.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/events/SelectionEvent.java
index 80c76c7..53372d3 100644
--- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/events/SelectionEvent.java
+++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/events/SelectionEvent.java
@@ -138,19 +138,6 @@
* @deprecated not part of the API, do not use in application code
*/
@Deprecated
- public static boolean hasListener( Widget adaptable ) {
- boolean result = false;
- for( int i = 0; !result && i < EVENT_TYPES.length; i++ ) {
- result = adaptable.isListening( EVENT_TYPES[ i ] );
- }
- return result;
- }
-
- /**
- * @since 2.0
- * @deprecated not part of the API, do not use in application code
- */
- @Deprecated
public static void addListener( Widget adaptable, SelectionListener listener ) {
if( listener == null ) {
SWT.error( SWT.ERROR_NULL_ARGUMENT );
diff --git a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/events/EventLCAUtil.java b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/events/EventLCAUtil.java
index f3d32b7..b7fd37d 100644
--- a/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/events/EventLCAUtil.java
+++ b/bundles/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/events/EventLCAUtil.java
@@ -70,6 +70,19 @@
return result;
}
+ public static boolean hasScrollBarsSelectionListener( Scrollable scrollable ) {
+ boolean result = false;
+ ScrollBar horizontalBar = scrollable.getHorizontalBar();
+ if( horizontalBar != null ) {
+ result = result || horizontalBar.isListening( SWT.Selection );
+ }
+ ScrollBar verticalBar = scrollable.getVerticalBar();
+ if( verticalBar != null ) {
+ result = result || verticalBar.isListening( SWT.Selection );
+ }
+ return result;
+ }
+
public static void processScrollBarSelection( Scrollable scrollable ) {
String eventName = EventLCAUtil.EVENT_SCROLLBAR_SELECTED;
if( WidgetLCAUtil.wasEventSent( scrollable, eventName ) ) {
diff --git a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java
index 5f92c99..4831617 100644
--- a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java
+++ b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java
@@ -26,7 +26,6 @@
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.internal.events.EventLCAUtil;
import org.eclipse.swt.widgets.ScrollBar;
@@ -64,7 +63,7 @@
preserveProperty( composite, PROP_SCROLLBARS_VISIBLE, getScrollBarsVisible( composite ) );
preserveListener( composite,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( composite ) );
+ EventLCAUtil.hasScrollBarsSelectionListener( composite ) );
}
public void readData( Widget widget ) {
@@ -114,7 +113,7 @@
DEFAULT_SCROLLBARS_VISIBLE );
renderListener( composite,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( composite ),
+ EventLCAUtil.hasScrollBarsSelectionListener( composite ),
false );
}
@@ -153,16 +152,4 @@
return verticalBar != null && verticalBar.getVisible();
}
- private static boolean hasScrollBarsSelectionListener( ScrolledComposite composite ) {
- boolean result = false;
- ScrollBar horizontalBar = composite.getHorizontalBar();
- if( horizontalBar != null ) {
- result = result || SelectionEvent.hasListener( horizontalBar );
- }
- ScrollBar verticalBar = composite.getVerticalBar();
- if( verticalBar != null ) {
- result = result || SelectionEvent.hasListener( verticalBar );
- }
- return result;
- }
}
diff --git a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/buttonkit/ButtonLCAUtil.java b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/buttonkit/ButtonLCAUtil.java
index 670769e..eeef06d 100644
--- a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/buttonkit/ButtonLCAUtil.java
+++ b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/buttonkit/ButtonLCAUtil.java
@@ -22,7 +22,6 @@
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
@@ -55,7 +54,7 @@
preserveProperty( button, PROP_SELECTION, Boolean.valueOf( button.getSelection() ) );
preserveProperty( button, PROP_GRAYED, Boolean.valueOf( button.getGrayed() ) );
preserveProperty( button, PROP_ALIGNMENT, getAlignment( button ) );
- preserveListener( button, PROP_SELECTION_LISTENERS, SelectionEvent.hasListener( button ) );
+ preserveListener( button, PROP_SELECTION_LISTENERS, button.isListening( SWT.Selection ) );
}
static void renderInitialization( Button button ) {
@@ -73,7 +72,7 @@
renderProperty( button, PROP_ALIGNMENT, getAlignment( button ), DEFAULT_ALIGNMENT );
renderProperty( button, PROP_SELECTION, button.getSelection(), false );
renderProperty( button, PROP_GRAYED, button.getGrayed(), false );
- renderListener( button, PROP_SELECTION_LISTENERS, SelectionEvent.hasListener( button ), false );
+ renderListener( button, PROP_SELECTION_LISTENERS, button.isListening( SWT.Selection ), false );
}
static boolean readSelection( Button button ) {
diff --git a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/datetimekit/DateTimeLCAUtil.java b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/datetimekit/DateTimeLCAUtil.java
index 6a862c9..0e47b37 100644
--- a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/datetimekit/DateTimeLCAUtil.java
+++ b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/datetimekit/DateTimeLCAUtil.java
@@ -21,7 +21,7 @@
import org.eclipse.rap.rwt.lifecycle.ControlLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
-import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.internal.widgets.IDateTimeAdapter;
@@ -50,7 +50,7 @@
static void preserveValues( DateTime dateTime ) {
ControlLCAUtil.preserveValues( dateTime );
WidgetLCAUtil.preserveCustomVariant( dateTime );
- preserveListener( dateTime, PROP_SELECTION_LISTENER, SelectionEvent.hasListener( dateTime ) );
+ preserveListener( dateTime, PROP_SELECTION_LISTENER, dateTime.isListening( SWT.Selection ) );
}
static void renderInitialization( DateTime dateTime ) {
@@ -65,7 +65,7 @@
WidgetLCAUtil.renderCustomVariant( dateTime );
renderListener( dateTime,
PROP_SELECTION_LISTENER,
- SelectionEvent.hasListener( dateTime ),
+ dateTime.isListening( SWT.Selection ),
false );
}
@@ -151,6 +151,7 @@
this.height = bounds.height;
}
+ @Override
public boolean equals( Object obj ) {
boolean result;
if( obj == this ) {
@@ -168,6 +169,7 @@
return result;
}
+ @Override
public int hashCode() {
String msg = "SubWidgetBounds#hashCode() not implemented";
throw new UnsupportedOperationException( msg );
diff --git a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java
index 85425f9..5ade2e4 100644
--- a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java
+++ b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java
@@ -32,7 +32,6 @@
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.internal.events.EventLCAUtil;
import org.eclipse.swt.internal.widgets.CellToolTipUtil;
@@ -113,7 +112,7 @@
preserveProperty( table, PROP_SCROLLBARS_VISIBLE, getScrollBarsVisible( table ) );
preserveListener( table,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( table ) );
+ EventLCAUtil.hasScrollBarsSelectionListener( table ) );
preserveListener( table, PROP_SELECTION_LISTENER, table.isListening( SWT.Selection ) );
preserveListener( table,
PROP_DEFAULT_SELECTION_LISTENER,
@@ -184,7 +183,7 @@
DEFAULT_SCROLLBARS_VISIBLE );
renderListener( table,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( table ),
+ EventLCAUtil.hasScrollBarsSelectionListener( table ),
false );
renderListener( table, PROP_SELECTION_LISTENER, table.isListening( SWT.Selection ), false );
renderListener( table,
@@ -369,19 +368,6 @@
return table.getAdapter( ITableAdapter.class ).hasVScrollBar();
}
- private static boolean hasScrollBarsSelectionListener( Table table ) {
- boolean result = false;
- ScrollBar horizontalBar = table.getHorizontalBar();
- if( horizontalBar != null ) {
- result = result || SelectionEvent.hasListener( horizontalBar );
- }
- ScrollBar verticalBar = table.getVerticalBar();
- if( verticalBar != null ) {
- result = result || SelectionEvent.hasListener( verticalBar );
- }
- return result;
- }
-
private static void processScrollBarSelection( ScrollBar scrollBar, int selection ) {
if( scrollBar != null ) {
scrollBar.setSelection( selection );
diff --git a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java
index a6b0c91..5e25ad3 100644
--- a/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java
+++ b/bundles/org.eclipse.rap.rwt/widgetkits/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java
@@ -32,7 +32,6 @@
import org.eclipse.rap.rwt.lifecycle.WidgetLCAUtil;
import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.internal.events.EventLCAUtil;
import org.eclipse.swt.internal.widgets.CellToolTipUtil;
@@ -112,7 +111,7 @@
preserveProperty( tree, PROP_SCROLLBARS_VISIBLE, getScrollBarsVisible( tree ) );
preserveListener( tree,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( tree ) );
+ EventLCAUtil.hasScrollBarsSelectionListener( tree ) );
preserveListener( tree, PROP_SELECTION_LISTENER, tree.isListening( SWT.Selection ) );
preserveListener( tree,
PROP_DEFAULT_SELECTION_LISTENER,
@@ -188,7 +187,7 @@
DEFAULT_SCROLLBARS_VISIBLE );
renderListener( tree,
PROP_SCROLLBARS_SELECTION_LISTENER,
- hasScrollBarsSelectionListener( tree ),
+ EventLCAUtil.hasScrollBarsSelectionListener( tree ),
false );
renderListener( tree, PROP_SELECTION_LISTENER, tree.isListening( SWT.Selection ), false );
renderListener( tree,
@@ -368,19 +367,6 @@
return getTreeAdapter( tree ).hasVScrollBar();
}
- private static boolean hasScrollBarsSelectionListener( Tree tree ) {
- boolean result = false;
- ScrollBar horizontalBar = tree.getHorizontalBar();
- if( horizontalBar != null ) {
- result = result || SelectionEvent.hasListener( horizontalBar );
- }
- ScrollBar verticalBar = tree.getVerticalBar();
- if( verticalBar != null ) {
- result = result || SelectionEvent.hasListener( verticalBar );
- }
- return result;
- }
-
private static void processScrollBarSelection( ScrollBar scrollBar, int selection ) {
if( scrollBar != null ) {
scrollBar.setSelection( selection );
diff --git a/bundles/org.eclipse.rap.ui.forms/.settings/com.eclipsesource.jshint.ui.prefs b/bundles/org.eclipse.rap.ui.forms/.settings/com.eclipsesource.jshint.ui.prefs
index 325d172..cd31a3b 100644
--- a/bundles/org.eclipse.rap.ui.forms/.settings/com.eclipsesource.jshint.ui.prefs
+++ b/bundles/org.eclipse.rap.ui.forms/.settings/com.eclipsesource.jshint.ui.prefs
@@ -1,5 +1,5 @@
-eclipse.preferences.version=1
-globals=org\: true, qx\: true, qxsettings\: true, qxvariants\: true, namespace\: false
-included=js//*.js
-options=bitwise\: true, curly\: true, eqnull\: true, shadow\: true, funcscope\: true, undef\: true, browser\: true, laxbreak\: true
-projectSpecificOptions=true
+eclipse.preferences.version=1
+globals=org\:false,qx\:false,rwt\: false, namespace\: false
+included=js//*.js
+options=bitwise\: true, curly\: true, eqnull\: true, shadow\: true, funcscope\: true, undef\: true, browser\: true, laxbreak\: true
+projectSpecificOptions=true
diff --git a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/Hyperlink.js b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/Hyperlink.js
index a2e9ecb..e36a5c5 100644
--- a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/Hyperlink.js
+++ b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/Hyperlink.js
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2012 Innoopract Informationssysteme GmbH.
+ * Copyright (c) 2007, 2012 Innoopract Informationssysteme GmbH 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
@@ -48,7 +48,7 @@
UNDERLINE_HOVER : 2,
UNDERLINE_ALWAYS : 3
},
-
+
members : {
setText : function( value ) {
@@ -73,12 +73,12 @@
setActiveTextColor : function( value ) {
this._activeTextColor = value;
},
-
+
setUnderlineMode : function( value ) {
this._underlineMode = value;
},
- setHasSelectionListener : function( value ) {
+ setHasDefaultSelectionListener : function( value ) {
if( value ) {
this.addEventListener( "click", org.eclipse.swt.EventUtil.widgetDefaultSelected, this );
} else {
diff --git a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/HyperlinkAdapter.js b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/HyperlinkAdapter.js
index 67474e5..528fa85 100644
--- a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/HyperlinkAdapter.js
+++ b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/HyperlinkAdapter.js
@@ -61,7 +61,7 @@
} ),
listeners : rwt.protocol.AdapterUtil.extendControlListeners( [
- "selection"
+ "DefaultSelection"
] ),
listenerHandler : rwt.protocol.AdapterUtil.extendControlListenerHandler( {} ),
diff --git a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlink.js b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlink.js
index a57bb29..3ef92e5 100644
--- a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlink.js
+++ b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlink.js
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2011 Innoopract Informationssysteme GmbH.
+ * Copyright (c) 2007, 2012 Innoopract Informationssysteme GmbH 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
@@ -12,7 +12,7 @@
qx.Class.define( "org.eclipse.ui.forms.widgets.ToggleHyperlink", {
extend : rwt.widgets.base.Image,
-
+
construct : function() {
this.base( arguments );
this.setCursor( qx.constant.Style.CURSOR_HAND );
@@ -25,12 +25,12 @@
this.addEventListener( "mousemove", this._onMouseMove, this );
this.addEventListener( "mouseout", this._onMouseOut, this );
},
-
+
destruct : function() {
this.removeEventListener( "mousemove", this._onMouseMove, this );
this.removeEventListener( "mouseout", this._onMouseOut, this );
},
-
+
members : {
setImages : function( collapseNormal, collapseHover, expandNormal, expandHover ) {
@@ -46,7 +46,7 @@
this._updateImage();
},
- setHasSelectionListener : function( value ) {
+ setHasDefaultSelectionListener : function( value ) {
if( value ) {
this.addEventListener( "click", org.eclipse.swt.EventUtil.widgetDefaultSelected, this );
} else {
@@ -58,7 +58,7 @@
this._hover = true;
this._updateImage();
},
-
+
_onMouseOut : function( evt ) {
this._hover = false;
this._updateImage();
@@ -75,6 +75,6 @@
}
}
-
+
} );
diff --git a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlinkAdapter.js b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlinkAdapter.js
index 0cb6c0f..4aeff56 100644
--- a/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlinkAdapter.js
+++ b/bundles/org.eclipse.rap.ui.forms/js/org/eclipse/ui/forms/widgets/ToggleHyperlinkAdapter.js
@@ -36,7 +36,7 @@
} ),
listeners : rwt.protocol.AdapterUtil.extendControlListeners( [
- "selection"
+ "DefaultSelection"
] ),
listenerHandler : rwt.protocol.AdapterUtil.extendControlListenerHandler( {} ),
diff --git a/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA.java b/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA.java
index fa00f98..ce338ec 100644
--- a/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA.java
+++ b/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA.java
@@ -16,13 +16,14 @@
import org.eclipse.rap.rwt.internal.protocol.ClientObjectFactory;
import org.eclipse.rap.rwt.internal.protocol.IClientObject;
import org.eclipse.rap.rwt.lifecycle.*;
-import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.forms.internal.widgets.IHyperlinkAdapter;
import org.eclipse.ui.forms.widgets.Hyperlink;
+@SuppressWarnings("restriction")
public class HyperlinkLCA extends AbstractWidgetLCA {
private static final String TYPE = "forms.widgets.Hyperlink"; //$NON-NLS-1$
@@ -33,7 +34,7 @@
private static final String PROP_UNDERLINE_MODE = "underlineMode"; //$NON-NLS-1$
private static final String PROP_ACTIVE_FOREGROUND = "activeForeground"; //$NON-NLS-1$
private static final String PROP_ACTIVE_BACKGROUND = "activeBackground"; //$NON-NLS-1$
- private static final String PROP_SELECTION_LISTENER = "selection"; //$NON-NLS-1$
+ private static final String PROP_DEFAULT_SELECTION_LISTENER = "DefaultSelection"; //$NON-NLS-1$
private static final int DEFAULT_UNDERLINE_MODE = 0;
@@ -43,6 +44,7 @@
WidgetLCAUtil.processHelp( widget );
}
+ @Override
public void preserveValues( Widget widget ) {
Hyperlink hyperlink = ( Hyperlink )widget;
ControlLCAUtil.preserveValues( hyperlink );
@@ -56,10 +58,11 @@
WidgetLCAUtil.preserveProperty( hyperlink,
PROP_ACTIVE_BACKGROUND,
getActiveBackground( hyperlink ) );
- boolean hasListener = SelectionEvent.hasListener( hyperlink );
- WidgetLCAUtil.preserveListener( hyperlink, PROP_SELECTION_LISTENER, hasListener );
+ boolean hasListener = hyperlink.isListening( SWT.DefaultSelection );
+ WidgetLCAUtil.preserveListener( hyperlink, PROP_DEFAULT_SELECTION_LISTENER, hasListener );
}
+ @Override
public void renderInitialization( Widget widget ) throws IOException {
Hyperlink hyperlink = ( Hyperlink )widget;
IClientObject clientObject = ClientObjectFactory.getClientObject( hyperlink );
@@ -68,6 +71,7 @@
clientObject.set( "style", WidgetLCAUtil.getStyles( hyperlink, ALLOWED_STYLES ) ); //$NON-NLS-1$
}
+ @Override
public void renderChanges( Widget widget ) throws IOException {
Hyperlink hyperlink = ( Hyperlink )widget;
ControlLCAUtil.renderChanges( hyperlink );
@@ -86,10 +90,11 @@
PROP_ACTIVE_BACKGROUND,
getActiveBackground( hyperlink ),
null );
- boolean hasListener = SelectionEvent.hasListener( hyperlink );
- WidgetLCAUtil.renderListener( hyperlink, PROP_SELECTION_LISTENER, hasListener, false );
+ boolean hasListener = hyperlink.isListening( SWT.DefaultSelection );
+ WidgetLCAUtil.renderListener( hyperlink, PROP_DEFAULT_SELECTION_LISTENER, hasListener, false );
}
+ @Override
public void renderDispose( Widget widget ) throws IOException {
ClientObjectFactory.getClientObject( widget ).destroy();
}
diff --git a/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA.java b/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA.java
index cba0994..2af6e68 100644
--- a/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA.java
+++ b/bundles/org.eclipse.rap.ui.forms/rap/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA.java
@@ -17,7 +17,7 @@
import org.eclipse.rap.rwt.internal.protocol.ClientObjectFactory;
import org.eclipse.rap.rwt.internal.protocol.IClientObject;
import org.eclipse.rap.rwt.lifecycle.*;
-import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.forms.widgets.*;
@@ -27,13 +27,14 @@
* This class serves as the LCA for org.eclipse.ui.forms.widgets.TreeNode and
* org.eclipse.ui.forms.widgets.Twistie.
*/
+@SuppressWarnings("restriction")
public final class ToggleHyperlinkLCA extends AbstractWidgetLCA {
private static final String TYPE = "forms.widgets.ToggleHyperlink"; //$NON-NLS-1$
private static final String PROP_IMAGES = "images"; //$NON-NLS-1$
private static final String PROP_EXPANDED = "expanded"; //$NON-NLS-1$
- private static final String PROP_SELECTION_LISTENER = "selection"; //$NON-NLS-1$
+ private static final String PROP_DEFAULT_SELECTION_LISTENER = "DefaultSelection"; //$NON-NLS-1$
private static final String PREFIX = "resource/widget/rap/hyperlink/"; //$NON-NLS-1$
private static final String MINUS_GIF = PREFIX + "minus.gif"; //$NON-NLS-1$
@@ -48,13 +49,14 @@
private static final Image[] DEFAULT_IMAGES = new Image[] { null, null, null, null };
+ @Override
public void preserveValues( Widget widget ) {
ToggleHyperlink hyperlink = ( ToggleHyperlink )widget;
ControlLCAUtil.preserveValues( hyperlink );
WidgetLCAUtil.preserveCustomVariant( hyperlink );
WidgetLCAUtil.preserveProperty( hyperlink, PROP_EXPANDED, hyperlink.isExpanded() );
- boolean hasListener = SelectionEvent.hasListener( hyperlink );
- WidgetLCAUtil.preserveListener( hyperlink, PROP_SELECTION_LISTENER, hasListener );
+ boolean hasListener = hyperlink.isListening( SWT.DefaultSelection );
+ WidgetLCAUtil.preserveListener( hyperlink, PROP_DEFAULT_SELECTION_LISTENER, hasListener );
}
public void readData( Widget widget ) {
@@ -64,6 +66,7 @@
ControlLCAUtil.processDefaultSelection( widget, null );
}
+ @Override
public void renderInitialization( Widget widget ) throws IOException {
ToggleHyperlink hyperlink = ( ToggleHyperlink )widget;
IClientObject clientObject = ClientObjectFactory.getClientObject( hyperlink );
@@ -72,15 +75,17 @@
WidgetLCAUtil.renderProperty( hyperlink, PROP_IMAGES, getImages( hyperlink ), DEFAULT_IMAGES );
}
+ @Override
public void renderChanges( Widget widget ) throws IOException {
ToggleHyperlink hyperlink = ( ToggleHyperlink )widget;
ControlLCAUtil.renderChanges( hyperlink );
WidgetLCAUtil.renderCustomVariant( hyperlink );
WidgetLCAUtil.renderProperty( hyperlink, PROP_EXPANDED, hyperlink.isExpanded(), false );
- boolean hasListener = SelectionEvent.hasListener( hyperlink );
- WidgetLCAUtil.renderListener( hyperlink, PROP_SELECTION_LISTENER, hasListener, false );
+ boolean hasListener = hyperlink.isListening( SWT.DefaultSelection );
+ WidgetLCAUtil.renderListener( hyperlink, PROP_DEFAULT_SELECTION_LISTENER, hasListener, false );
}
+ @Override
public void renderDispose( Widget widget ) throws IOException {
ClientObjectFactory.getClientObject( widget ).destroy();
}
diff --git a/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/KeyEventSupportTest.js b/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/KeyEventSupportTest.js
index e88ea49..a14ea8c 100644
--- a/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/KeyEventSupportTest.js
+++ b/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/KeyEventSupportTest.js
@@ -441,6 +441,18 @@
this._disposeTextWidget( text );
},
+ testNotifyTraverse : function() {
+ var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
+ var text = this._createTextWidget();
+
+ TestUtil.press( text, 9, false );
+
+ var msg = TestUtil.getMessageObject();
+ assertEquals( 9, msg.findNotifyProperty( "w3", "Traverse", "keyCode" ) );
+ assertEquals( 0, msg.findNotifyProperty( "w3", "Traverse", "charCode" ) );
+ this._disposeTextWidget( text );
+ },
+
testKeyCodeLowerCase : function() {
var TestUtil = org.eclipse.rwt.test.fixture.TestUtil;
var text = this._createTextWidget();
@@ -688,7 +700,8 @@
"target" : "w3",
"action" : "listen",
"properties" : {
- "KeyDown" : true
+ "KeyDown" : true,
+ "Traverse" : true
}
} );
var text = rwt.protocol.ObjectRegistry.getObject( "w3" );
diff --git a/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil_Test.java b/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil_Test.java
index 5865090..9779fd1 100644
--- a/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil_Test.java
+++ b/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/lifecycle/ControlLCAUtil_Test.java
@@ -293,7 +293,7 @@
shell.addListener( SWT.KeyDown, listener );
shell.addListener( SWT.KeyUp, listener );
- fakeKeyDown( getId( shell ), 27, 0, "" );
+ fakeTraverse( getId( shell ), 27, 0, "" );
Fixture.readDataAndProcessAction( display );
assertEquals( 3, eventLog.size() );
@@ -1047,7 +1047,6 @@
assertEquals( Boolean.FALSE, message.findListenProperty( control, "MenuDetect" ) );
}
-
private void fakeKeyDown( String target, int keyCode, int charCode, String modifier ) {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put( ClientMessageConst.EVENT_PARAM_KEY_CODE, Integer.valueOf( keyCode ) );
@@ -1056,6 +1055,15 @@
Fixture.fakeNotifyOperation( target, ClientMessageConst.EVENT_KEY_DOWN, properties );
}
+ private void fakeTraverse( String target, int keyCode, int charCode, String modifier ) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put( ClientMessageConst.EVENT_PARAM_KEY_CODE, Integer.valueOf( keyCode ) );
+ properties.put( ClientMessageConst.EVENT_PARAM_CHAR_CODE, Integer.valueOf( charCode ) );
+ properties.put( ClientMessageConst.EVENT_PARAM_MODIFIER, modifier );
+ Fixture.fakeNotifyOperation( target, ClientMessageConst.EVENT_KEY_DOWN, properties );
+ Fixture.fakeNotifyOperation( target, ClientMessageConst.EVENT_TRAVERSE, properties );
+ }
+
private static void fakeSelectionEvent( Control control, String key, String value ) {
String id = getId( control );
Map<String, Object> parameters = new HashMap<String,Object>();
diff --git a/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/widgets/FileUpload_Test.java b/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/widgets/FileUpload_Test.java
index 797ddbc..2bf73ad 100644
--- a/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/widgets/FileUpload_Test.java
+++ b/tests/org.eclipse.rap.rwt.test/src/org/eclipse/rap/rwt/widgets/FileUpload_Test.java
@@ -21,7 +21,6 @@
import org.eclipse.rap.rwt.testfixture.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
@@ -167,29 +166,29 @@
public void testAddRemoveSelectionListener() {
FileUpload upload = new FileUpload( shell, SWT.NONE );
SelectionListener listener = new SelectionAdapter() {};
- assertFalse( SelectionEvent.hasListener( upload ) );
+ assertFalse( upload.isListening( SWT.Selection ) );
upload.addSelectionListener( listener );
- assertTrue( SelectionEvent.hasListener( upload ) );
+ assertTrue( upload.isListening( SWT.Selection ) );
upload.removeSelectionListener( listener );
- assertFalse( SelectionEvent.hasListener( upload ) );
+ assertFalse( upload.isListening( SWT.Selection ) );
}
public void testAddSelectionListenerRegistersUntypedListeners() {
FileUpload upload = new FileUpload( shell, SWT.NONE );
upload.addSelectionListener( mock( SelectionListener.class ) );
-
+
assertTrue( upload.isListening( SWT.Selection ) );
assertTrue( upload.isListening( SWT.DefaultSelection ) );
}
-
+
public void testRemoveSelectionListenerUnregistersUntypedListeners() {
FileUpload upload = new FileUpload( shell, SWT.NONE );
SelectionListener listener = mock( SelectionListener.class );
upload.addSelectionListener( listener );
upload.removeSelectionListener( listener );
-
+
assertFalse( upload.isListening( SWT.Selection ) );
assertFalse( upload.isListening( SWT.DefaultSelection ) );
}
@@ -253,6 +252,7 @@
Fixture.tearDown();
}
+ @SuppressWarnings( "resource" )
private Image createImage( String name ) {
ClassLoader loader = Fixture.class.getClassLoader();
InputStream stream = loader.getResourceAsStream( name );
diff --git a/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA_Test.java b/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA_Test.java
index 4a4a3f5..ed4b90e 100644
--- a/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA_Test.java
+++ b/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/hyperlinkkit/HyperlinkLCA_Test.java
@@ -246,7 +246,7 @@
lca.renderChanges( hyperlink );
Message message = Fixture.getProtocolMessage();
- assertEquals( Boolean.TRUE, message.findListenProperty( hyperlink, "selection" ) );
+ assertEquals( Boolean.TRUE, message.findListenProperty( hyperlink, "DefaultSelection" ) );
}
@SuppressWarnings("serial")
@@ -263,7 +263,7 @@
lca.renderChanges( hyperlink );
Message message = Fixture.getProtocolMessage();
- assertNull( message.findListenOperation( hyperlink, "selection" ) );
+ assertNull( message.findListenOperation( hyperlink, "DefaultSelection" ) );
}
private IHyperlinkAdapter getAdapter( Hyperlink hyperlink ) {
diff --git a/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA_Test.java b/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA_Test.java
index c77b32c..ba065b8 100644
--- a/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA_Test.java
+++ b/tests/org.eclipse.rap.ui.forms.test/src/org/eclipse/ui/forms/internal/widgets/togglehyperlinkkit/ToggleHyperlinkLCA_Test.java
@@ -106,7 +106,7 @@
lca.renderChanges( twistie );
Message message = Fixture.getProtocolMessage();
- assertEquals( Boolean.TRUE, message.findListenProperty( twistie, "selection" ) );
+ assertEquals( Boolean.TRUE, message.findListenProperty( twistie, "DefaultSelection" ) );
}
@SuppressWarnings("serial")
@@ -124,7 +124,7 @@
lca.renderChanges( twistie );
Message message = Fixture.getProtocolMessage();
- assertNull( message.findListenOperation( twistie, "selection" ) );
+ assertNull( message.findListenOperation( twistie, "DefaultSelection" ) );
}
public void testRenderInitialExpanded() throws IOException {