Merge branch 'ShowHide'
diff --git a/bundles/org.eclipse.rap.clientscripting.demo/ClientScripting Demo.launch b/bundles/org.eclipse.rap.clientscripting.demo/ClientScripting Demo.launch
index 1f347f0..439435b 100644
--- a/bundles/org.eclipse.rap.clientscripting.demo/ClientScripting Demo.launch
+++ b/bundles/org.eclipse.rap.clientscripting.demo/ClientScripting Demo.launch
@@ -18,7 +18,7 @@
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
-<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.ui.launch/ClientScriptingDemo"/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/ClientScriptingDemo"/>
<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
<stringAttribute key="org.eclipse.rap.launch.entryPoint" value=""/>
<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="DEBUG"/>
@@ -35,7 +35,7 @@
<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
<stringAttribute key="pde.version" value="3.3"/>
<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet*2.5.0.v200910301333@default:default,javax.servlet*3.0.0.v201103241727@default:default,javax.servlet*3.0.0.v201112011016@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
+<stringAttribute key="target_bundles" value="com.ibm.icu.base@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
diff --git a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/CustomBehaviors.java b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/CustomBehaviors.java
index 8a64440..3f81c9c 100644
--- a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/CustomBehaviors.java
+++ b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/CustomBehaviors.java
@@ -72,6 +72,8 @@
listener.addTo( widget, ClientListener.MouseDoubleClick );
listener.addTo( widget, ClientListener.Selection );
listener.addTo( widget, ClientListener.DefaultSelection );
+ listener.addTo( widget, ClientListener.Show );
+ listener.addTo( widget, ClientListener.Hide );
}
public static void addPaintingBehavior( final Canvas canvas ) {
diff --git a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Demo.java b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Demo.java
index 03e3636..47201ce 100644
--- a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Demo.java
+++ b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Demo.java
@@ -23,6 +23,8 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
@@ -99,6 +101,11 @@
list.setLayoutData( new GridData( SWT.FILL, SWT.TOP, false, false) );
list.setItems( new String[]{ "Look", "in", "your", "javascript", "console" } );
CustomBehaviors.addLoggerBehavior( list );
+ Menu popup = new Menu( list );
+ new MenuItem( popup, SWT.PUSH ).setText( "Item 1" );
+ new MenuItem( popup, SWT.PUSH ).setText( "Item 2" );
+ list.setMenu( popup );
+ CustomBehaviors.addLoggerBehavior( popup );
}
private static void addHeaderLabel( Composite parent, String text ) {
diff --git a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Logger.js b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Logger.js
index 5763833..95c1bbd 100644
--- a/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Logger.js
+++ b/bundles/org.eclipse.rap.clientscripting.demo/src/org/eclipse/rap/clientscripting/demo/Logger.js
@@ -1,8 +1,19 @@
var handleEvent = function( event ) {
if( window.console && console.log ) {
- console.log( event );
+ var info = [ getTypeString( event ) ];
if( event.widget.getSelection && event.type == SWT.Selection ) {
- console.log( event.widget.getSelection() );
+ info.push( '"' + event.widget.getSelection() + '"' );
+ }
+ console.log( info.join( " " ) );
+ }
+};
+
+var getTypeString = function( event ) {
+ var result;
+ for( var type in SWT ) {
+ if( type.charCodeAt( 1 ) >= 97 && SWT[ type ] === event.type ) {
+ result = type;
}
}
+ return result;
};
diff --git a/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/ClientScriptingUtil.js b/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/ClientScriptingUtil.js
index e08aed0..5b562f9 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/ClientScriptingUtil.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/ClientScriptingUtil.js
@@ -51,7 +51,9 @@
"MouseDoubleClick" : "dblclick",
"Paint" : "paint",
"FocusIn" : "focus",
- "FocusOut" : "blur"
+ "FocusOut" : "blur",
+ "Show" : "appear",
+ "Hide" : "disappear"
},
"rwt.widgets.List" : {
"Selection" : "changeSelection",
diff --git a/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/SWT.js b/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/SWT.js
index 8c70ec7..b0ba007 100644
--- a/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/SWT.js
+++ b/bundles/org.eclipse.rap.clientscripting/js/org/eclipse/rap/clientscripting/SWT.js
@@ -82,6 +82,15 @@
*/
FocusOut : 16,
+ /**
+ * The show event type
+ */
+ Show : 22,
+
+ /**
+ * The hide event type
+ */
+ Hide : 23,
/**
* The modify event type
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
index 9175d75..8aa98b6 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/ClientListener.java
@@ -50,6 +50,8 @@
public static final int DefaultSelection = SWT.DefaultSelection;
public static final int FocusIn = SWT.FocusIn;
public static final int FocusOut = SWT.FocusOut;
+ public static final int Show = SWT.Show;
+ public static final int Hide = SWT.Hide;
public static final int Modify = SWT.Modify;
public static final int Verify = SWT.Verify;
diff --git a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerUtil.java b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerUtil.java
index f0ab028..7780008 100644
--- a/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerUtil.java
+++ b/bundles/org.eclipse.rap.clientscripting/src/org/eclipse/rap/clientscripting/internal/ClientListenerUtil.java
@@ -51,6 +51,12 @@
case ClientListener.Modify:
result = "Modify";
break;
+ case ClientListener.Show:
+ result = "Show";
+ break;
+ case ClientListener.Hide:
+ result = "Hide";
+ break;
case ClientListener.Verify:
result = "Verify";
break;
diff --git a/tests/org.eclipse.rap.clientscripting.jstest/js/org/eclipse/rap/clientscripting/EventBinding_Test.js b/tests/org.eclipse.rap.clientscripting.jstest/js/org/eclipse/rap/clientscripting/EventBinding_Test.js
index d2ec84d..01bd90a 100644
--- a/tests/org.eclipse.rap.clientscripting.jstest/js/org/eclipse/rap/clientscripting/EventBinding_Test.js
+++ b/tests/org.eclipse.rap.clientscripting.jstest/js/org/eclipse/rap/clientscripting/EventBinding_Test.js
@@ -207,6 +207,26 @@
assertEquals( 1, logger.log.length );
},
+ testBindShow : function() {
+ var logger = this._createLogger();
+ text.setVisibility( false );
+
+ new EventBinding( text, "Show", logger );
+ text.setVisibility( true );
+
+ assertEquals( 1, logger.log.length );
+ },
+
+ testBindHide : function() {
+ var logger = this._createLogger();
+ text.setVisibility( true );
+
+ new EventBinding( text, "Hide", logger );
+ text.setVisibility( false );
+
+ assertEquals( 1, logger.log.length );
+ },
+
testBindVerifyEvent : function() {
TestUtil.flush();
var logger = this._createLogger();