Block key events while wait hint overlay is visible
diff --git a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/ErrorHandler.js b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/ErrorHandler.js
index 11641e1..144647d 100644
--- a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/ErrorHandler.js
+++ b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/ErrorHandler.js
@@ -111,6 +111,7 @@
         this._overlay.parentNode.removeChild( this._overlay );
         this._overlay = null;
       }
+      org.eclipse.rwt.EventHandler.setBlockKeyEvents( false );
     },
 
     _gatherErrorInfo : function( error, script, currentRequest ) {
@@ -143,6 +144,7 @@
     },
 
     _createOverlay : function() {
+      org.eclipse.rwt.EventHandler.setBlockKeyEvents( true );
       var element = document.createElement( "div" );
       var themeStore = org.eclipse.swt.theme.ThemeStore.getInstance();
       var color = themeStore.getColor( "SystemMessage-DisplayOverlay", {}, "background-color" );
diff --git a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandler.js b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandler.js
index 8a901b1..ad292c9 100644
--- a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandler.js
+++ b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandler.js
@@ -27,6 +27,7 @@
     _lastMouseDown : false,
     _lastMouseEventDate : 0,
     _mouseIsDown : false,
+    _blockKeyEvents : false,
 
     ///////////////////
     // Public functions
@@ -44,11 +45,11 @@
     },
 
     cleanUp : function() {
-      delete this.__onmouseevent; 
-      delete this.__ondragevent; 
+      delete this.__onmouseevent;
+      delete this.__ondragevent;
       delete this.__onselectevent;
-      delete this.__onwindowblur; 
-      delete this.__onwindowfocus; 
+      delete this.__onwindowblur;
+      delete this.__onwindowfocus;
       delete this.__onwindowresize;
       delete this.__onKeyEvent;
       delete this._lastMouseEventType;
@@ -96,7 +97,7 @@
         }
       }
     },
-    
+
     getCaptureWidget : function() {
       return this._captureWidget;
     },
@@ -112,29 +113,37 @@
         }
       }
     },
-    
+
+    setBlockKeyEvents : function( value ) {
+      this._blockKeyEvents = value;
+    },
+
+    getBlockKeyEvents : function( value ) {
+      return this._blockKeyEvents;
+    },
+
     getFocusRoot : function() {
       return this._focusRoot;
     },
 
     /**
-     * Sets a callback-function to decide if the native context- 
-     * menu is displayed. It will be called on DOM-events of the type 
+     * Sets a callback-function to decide if the native context-
+     * menu is displayed. It will be called on DOM-events of the type
      * "contextmenu". The target-Widget of the event will be given as
-     * the first argument, the dom-target as the second. 
+     * the first argument, the dom-target as the second.
      * It must return a boolean. Null is not allowed.
      *
-     */    
+     */
     setAllowContextMenu : function( func ) {
       this._allowContextMenu = func;
     },
-    
+
     setMenuManager : function( manager ) {
       this._menuManager = manager;
     },
-    
+
     getMenuManager : function( manager ) {
-      return this._menuManager; 
+      return this._menuManager;
     },
 
     setMouseEventFilter : function( filter, context ) {
@@ -142,8 +151,8 @@
     },
 
     setKeyEventFilter : function( filter, context ) {
-      // TODO [tb] : Unify behavior and API for EventFilter, only use event 
-      // wrapper objects instead of dom-events, create API for order of filter  
+      // TODO [tb] : Unify behavior and API for EventFilter, only use event
+      // wrapper objects instead of dom-events, create API for order of filter
       this._filter[ "keyevent" ] = [ filter, context ];
     },
 
@@ -153,13 +162,19 @@
 
     //////////////
     // KEY EVENTS:
-    
+
     _onKeyEvent : function() {
       try {
         var EventHandlerUtil = org.eclipse.rwt.EventHandlerUtil;
         var event = EventHandlerUtil.getDomEvent( arguments );
         var keyCode = EventHandlerUtil.getKeyCode( event );
         var charCode = EventHandlerUtil.getCharCode( event );
+        if( this._blockKeyEvents ) {
+          if( EventHandlerUtil.shouldBlock( event.type, keyCode, charCode, event ) ) {
+            EventHandlerUtil.stopDomEvent( event );
+          }
+          return;
+        }
         if( typeof this._filter[ "domKeyevent" ] !== "undefined" ) {
           var context = this._filter[ "domKeyevent" ][ 1 ];
           var func = this._filter[ "domKeyevent" ][ 0 ];
@@ -178,7 +193,7 @@
       }
     },
 
-    
+
     _onkeyevent_post : function( vDomEvent, vType, vKeyCode, vCharCode ) {
       var process = true;
       if( typeof this._filter[ "keyevent" ] !== "undefined" ) {
@@ -190,7 +205,7 @@
         this._processKeyEvent( vDomEvent, vType, vKeyCode, vCharCode );
       }
     },
-    
+
     _processKeyEvent : function( vDomEvent, vType, vKeyCode, vCharCode ) {
       var EventHandlerUtil = org.eclipse.rwt.EventHandlerUtil;
       var keyIdentifier;
@@ -201,13 +216,13 @@
       }
       var vDomTarget = EventHandlerUtil.getDomTarget( vDomEvent );
       var vTarget = this._getKeyEventTarget();
-      var vKeyEventObject = new qx.event.type.KeyEvent( vType, 
-                                                        vDomEvent, 
-                                                        vDomTarget, 
-                                                        vTarget, 
-                                                        null, 
-                                                        vKeyCode, 
-                                                        vCharCode, 
+      var vKeyEventObject = new qx.event.type.KeyEvent( vType,
+                                                        vDomEvent,
+                                                        vDomTarget,
+                                                        vTarget,
+                                                        null,
+                                                        vKeyCode,
+                                                        vCharCode,
                                                         keyIdentifier );
       if( vTarget != null && vTarget.getEnabled() ) {
         switch( keyIdentifier ) {
@@ -237,19 +252,19 @@
       }
       vKeyEventObject.dispose();
     },
-    
+
     ///////////////
     // MOUSE EVENTS
- 
+
     _onmouseevent : function( event ) {
-      try{ 
+      try{
         var process = true;
         if( typeof this._filter[ "mouseevent" ] !== "undefined" ) {
           var context = this._filter[ "mouseevent" ][ 1 ];
           process = this._filter[ "mouseevent" ][ 0 ].call( context, event );
         }
         if( process ) {
-          this._processMouseEvent( event ); 
+          this._processMouseEvent( event );
         }
       } catch( ex ) {
         org.eclipse.rwt.ErrorHandler.processJavaScriptError( ex );
@@ -274,18 +289,18 @@
           } else if( vType == "mouseup" ) {
             this._mouseIsDown = false;
           }
-          if(    vType == "mouseup" 
-              && !this._lastMouseDown 
+          if(    vType == "mouseup"
+              && !this._lastMouseDown
               && ( ( new Date() ).valueOf() - this._lastMouseEventDate ) < 250
           ) {
-            // Fix MSHTML Mouseup, should be after a normal click 
+            // Fix MSHTML Mouseup, should be after a normal click
             // or contextmenu event, like Mozilla does this
             this._onmouseevent_post( vDomEvent, "mousedown", vDomTarget );
-          } else if (    vType == "dblclick" 
-                      && this._lastMouseEventType == "mouseup" 
+          } else if (    vType == "dblclick"
+                      && this._lastMouseEventType == "mouseup"
                       && ( ( new Date() ).valueOf() - this._lastMouseEventDate ) < 250
           ) {
-            // Fix MSHTML Doubleclick, should be after a normal click event, 
+            // Fix MSHTML Doubleclick, should be after a normal click event,
              // like Mozilla does this
             this._onmouseevent_post(vDomEvent, "click", vDomTarget);
           }
@@ -339,7 +354,7 @@
           eventConsumed = true;
         } else {
           EventHandlerUtil.stopDomEvent( vDomEvent );
-        } 
+        }
       }
       if(    vDispatchTarget.getEnabled()
           && !( vDispatchTarget instanceof qx.ui.core.ClientDocument )
@@ -365,9 +380,9 @@
         var elementEventType = vType == "mouseover" ? "elementOver" : "elementOut";
         this._fireElementHoverEvents( elementEventType,
                                       vDomEvent,
-                                      vDomTarget, 
+                                      vDomTarget,
                                       vTarget,
-                                      vOriginalTarget, 
+                                      vOriginalTarget,
                                       vRelatedTarget,
                                       vDispatchTarget );
         // Ignore events where the related target and
@@ -376,21 +391,21 @@
           return;
         }
       }
-      var vEventObject = new qx.event.type.MouseEvent( vType, 
-                                                       vDomEvent, 
-                                                       vDomTarget, 
-                                                       vTarget, 
-                                                       vOriginalTarget, 
+      var vEventObject = new qx.event.type.MouseEvent( vType,
+                                                       vDomEvent,
+                                                       vDomTarget,
+                                                       vTarget,
+                                                       vOriginalTarget,
                                                        vRelatedTarget );
       // Store last Event in MouseEvent Constructor. Needed for Tooltips, ...
       qx.event.type.MouseEvent.storeEventState( vEventObject );
       if( vDispatchTarget.getEnabled() && !eventConsumed ) {
         vDispatchTarget.dispatchEvent( vEventObject );
-        this._onmouseevent_special_post( vType, 
-                                         vTarget, 
-                                         vOriginalTarget, 
-                                         vDispatchTarget, 
-                                         vEventObject, 
+        this._onmouseevent_special_post( vType,
+                                         vTarget,
+                                         vOriginalTarget,
+                                         vDispatchTarget,
+                                         vEventObject,
                                          vDomEvent );
       } else if( vType == "mouseover" ) {
         var toolTipManager = qx.ui.popup.ToolTipManager.getInstance();
@@ -405,31 +420,31 @@
         this._lastMouseDownDispatchTarget = null;
       }
     },
-    
+
     _fireElementHoverEvents : function( type,
                                         domEvent,
-                                        domTarget, 
+                                        domTarget,
                                         target,
-                                        originalTarget, 
+                                        originalTarget,
                                         relatedTarget,
                                         dispatchTarget )
     {
       if( dispatchTarget.getEnabled() ) {
-        var eventObject = new qx.event.type.MouseEvent( type, 
-                                                        domEvent, 
-                                                        domTarget, 
-                                                        target, 
-                                                        originalTarget, 
+        var eventObject = new qx.event.type.MouseEvent( type,
+                                                        domEvent,
+                                                        domTarget,
+                                                        target,
+                                                        originalTarget,
                                                         relatedTarget );
         dispatchTarget.dispatchEvent( eventObject );
       }
     },
 
-    _onmouseevent_special_post : function( vType, 
-                                           vTarget, 
-                                           vOriginalTarget, 
-                                           vDispatchTarget, 
-                                           vEventObject, 
+    _onmouseevent_special_post : function( vType,
+                                           vTarget,
+                                           vOriginalTarget,
+                                           vDispatchTarget,
+                                           vEventObject,
                                            vDomEvent )
     {
       switch( vType ) {
@@ -546,48 +561,48 @@
     // Helper-maps:
 
     _mouseEventTypes : [
-      "mouseover", 
-      "mousemove", 
-      "mouseout", 
-      "mousedown", 
-      "mouseup", 
+      "mouseover",
+      "mousemove",
+      "mouseout",
+      "mousedown",
+      "mouseup",
       "click",
-      "dblclick", 
+      "dblclick",
       "contextmenu",
       org.eclipse.rwt.Client.isGecko() ? "DOMMouseScroll" : "mousewheel"
     ],
 
-    _keyEventTypes : [ 
-      "keydown", 
-      "keypress", 
-      "keyup" 
+    _keyEventTypes : [
+      "keydown",
+      "keypress",
+      "keyup"
     ],
 
     _dragEventTypes : qx.core.Variant.select("qx.client", {
-      "gecko" : [ 
-        "dragdrop", 
-        "dragover", 
-        "dragenter", 
-        "dragexit", 
-        "draggesture" 
+      "gecko" : [
+        "dragdrop",
+        "dragover",
+        "dragenter",
+        "dragexit",
+        "draggesture"
        ],
-      "mshtml" : [ 
-        "dragend", 
-        "dragover", 
-        "dragstart", 
-        "drag", 
-        "dragenter", 
-        "dragleave" 
+      "mshtml" : [
+        "dragend",
+        "dragover",
+        "dragstart",
+        "drag",
+        "dragenter",
+        "dragleave"
       ],
-      "default" : [ 
-        "dragstart", 
-        "dragdrop", 
-        "dragover", 
-        "drag", 
-        "dragleave", 
-        "dragenter", 
-        "dragexit", 
-        "draggesture" 
+      "default" : [
+        "dragstart",
+        "dragdrop",
+        "dragover",
+        "drag",
+        "dragleave",
+        "dragenter",
+        "dragexit",
+        "draggesture"
       ]
     } ),
 
@@ -601,9 +616,9 @@
 
     attachEventTypes : function( vEventTypes, vFunctionPointer ) {
       try {
-        // Gecko is a bit buggy to handle key events on document if 
-        // not previously focused. Internet Explorer has problems to use 
-        // 'window', so there we use the 'body' element 
+        // Gecko is a bit buggy to handle key events on document if
+        // not previously focused. Internet Explorer has problems to use
+        // 'window', so there we use the 'body' element
         var el = org.eclipse.rwt.Client.isGecko() ? window : document.body;
         for( var i=0, l=vEventTypes.length; i<l; i++ ) {
           qx.html.EventRegistration.addEventListener( el, vEventTypes[i], vFunctionPointer );
@@ -625,11 +640,11 @@
       }
     },
 
-    /** 
+    /**
      * Fixes browser quirks with 'click' detection
      *
-     * Firefox: The DOM-targets are different. The click event only fires, 
-     * if the target of the mousedown is the same than with the mouseup. 
+     * Firefox: The DOM-targets are different. The click event only fires,
+     * if the target of the mousedown is the same than with the mouseup.
      * If the content moved away, the click isn't fired.
      */
     _onmouseevent_click_fix : qx.core.Variant.select("qx.client", {
@@ -641,7 +656,7 @@
             this._lastMouseDownDispatchTarget = vDispatchTarget;
           break;
           case "mouseup":
-            if(    this._lastMouseDownDispatchTarget === vDispatchTarget 
+            if(    this._lastMouseDownDispatchTarget === vDispatchTarget
                 && vDomTarget !== this._lastMouseDownDomTarget) {
               vReturn = true;
             } else {
diff --git a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandlerUtil.js b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandlerUtil.js
index f28b2dd..36cadbe 100644
--- a/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandlerUtil.js
+++ b/bundles/org.eclipse.rap.rwt/js/org/eclipse/rwt/EventHandlerUtil.js
@@ -24,7 +24,7 @@
       delete this._lastUpDownType;
       delete this._lastKeyCode;
     },
-    
+
     applyBrowserFixes  : qx.core.Variant.select( "qx.client", {
       "gecko" : function() {
         // Fix for bug 295475:
@@ -38,7 +38,7 @@
           try{
             tagName = event.originalTarget.tagName;
           } catch( e ) {
-            // Firefox bug: On the very first mousedown, access to the events target 
+            // Firefox bug: On the very first mousedown, access to the events target
             // is forbidden and causes an error.
           }
           // NOTE: See also Bug 321372
@@ -46,8 +46,8 @@
             event.preventDefault();
           }
         };
-        qx.html.EventRegistration.addEventListener( docElement, 
-                                                    "mousedown", 
+        qx.html.EventRegistration.addEventListener( docElement,
+                                                    "mousedown",
                                                     this._ffMouseFixListener );
       },
       "default" : function() { }
@@ -101,35 +101,35 @@
       return domEvent._prevented ? true : false;
     },
 
-    
+
     blockUserDomEvents : function( element, value ) {
       var eventUtil = qx.html.EventRegistration;
       if( value ) {
         for( var i = 0; i < this._userEventTypes.length; i++ ) {
-          eventUtil.addEventListener( element, this._userEventTypes[ i ], this._domEventBlocker );     
+          eventUtil.addEventListener( element, this._userEventTypes[ i ], this._domEventBlocker );
         }
       } else {
         for( var i = 0; i < this._userEventTypes.length; i++ ) {
-          eventUtil.removeEventListener( element, this._userEventTypes[ i ], this._domEventBlocker );     
+          eventUtil.removeEventListener( element, this._userEventTypes[ i ], this._domEventBlocker );
         }
       }
     },
 
     _userEventTypes : [
-      "mouseover", 
-      "mousemove", 
-      "mouseout", 
-      "mousedown", 
-      "mouseup", 
+      "mouseover",
+      "mousemove",
+      "mouseout",
+      "mousedown",
+      "mouseup",
       "click",
-      "dblclick", 
+      "dblclick",
       "contextmenu",
       ( org.eclipse.rwt.Client.isGecko() ? "DOMMouseScroll" : "mousewheel" ),
-      "keydown", 
-      "keypress", 
-      "keyup" 
+      "keydown",
+      "keypress",
+      "keyup"
     ],
-    
+
     _domEventBlocker : function( event ) {
       org.eclipse.rwt.EventHandlerUtil.stopDomEvent( event );
       event.cancelBubble = true; // MSIE
@@ -137,7 +137,7 @@
         event.stopPropagation();
       }
     },
-    
+
     // BUG: http://xscroll.mozdev.org/
     // If your Mozilla was built with an option `--enable-default-toolkit=gtk2',
     // it can not return the correct event target for DOMMouseScroll.
@@ -362,7 +362,7 @@
     isSpecialKeyCode : function( keyCode ) {
       return this._specialCharCodeMap[ keyCode ] ? true : false;
     },
-    
+
     isModifier : function( keyCode ) {
       return keyCode >= 16 && keyCode <= 20 && keyCode !== 19;
     },
@@ -377,9 +377,59 @@
       return result;
     },
 
+    /**
+     * Determines if this key event should be blocked if key events are disabled
+     */
+    shouldBlock : function( type, keyCode, charCode, event ) {
+      var result = true;
+      var keyIdentifier;
+      if( !isNaN( keyCode ) && keyCode !== 0 ) {
+        keyIdentifier = this.keyCodeToIdentifier( keyCode );
+      } else {
+        keyIdentifier = this.charCodeToIdentifier( charCode );
+      }
+      if( this._nonBlockableKeysMap[ keyIdentifier ] || event.altKey ) {
+        result = false;
+      } else if( event.ctrlKey ) {
+        // block only those combos that are used for text editing:
+        result = this._blockableCtrlKeysMap[ keyIdentifier ] === true;
+      }
+      return result;
+    },
+
     ///////////////
     // Helper-maps:
 
+    _nonBlockableKeysMap : {
+      "Control" : true,
+      "Alt" : true,
+      "Shift" : true,
+      "Meta" : true,
+      "Win" : true,
+      "F1" : true,
+      "F2" : true,
+      "F3" : true,
+      "F4" : true,
+      "F5" : true,
+      "F6" : true,
+      "F7" : true,
+      "F8" : true,
+      "F9" : true,
+      "F10" : true,
+      "F11" : true,
+      "F12" : true
+    },
+
+    _blockableCtrlKeysMap : {
+      "F" : true,
+      "A" : true,
+      "C" : true,
+      "V" : true,
+      "X" : true,
+      "Z" : true,
+      "Y" : true
+    },
+
     _specialCharCodeMap : {
       13  : "Enter",
       27  : "Escape",
diff --git a/bundles/org.eclipse.rap.rwt/resources/client.js b/bundles/org.eclipse.rap.rwt/resources/client.js
index 628c242..a07e3dc 100644
--- a/bundles/org.eclipse.rap.rwt/resources/client.js
+++ b/bundles/org.eclipse.rap.rwt/resources/client.js
@@ -23,7 +23,7 @@
 qx.Class.define("qx.dom.String",{statics:{escapeEntities:qx.core.Variant.select($[0],{mshtml:function(h,d){var c,a=[];for(var e=0,b=h.length;e<b;e++){var f=h.charAt(e);var g=f.charCodeAt(0);if(d[g]){c="&"+d[g]+";"}else{if(g>127){c="&#"+g+";"}else{c=f}}a[a.length]=c}return a.join("")},"default":function(h,d){var c,a="";for(var e=0,b=h.length;e<b;e++){var f=h.charAt(e);var g=f.charCodeAt(0);if(d[g]){c="&"+d[g]+";"}else{if(g>127){c="&#"+g+";"}else{c=f}}a+=c}return a}}),unescapeEntities:function(b,a){return b.replace(/&[#\w]+;/gi,function(c){var d=c;var c=c.substring(1,c.length-1);var e=a[c];if(e){d=String.fromCharCode(e)}else{if(c.charAt(0)=="#"){if(c.charAt(1).toUpperCase()=="X"){e=c.substring(2);if(e.match(/^[0-9A-Fa-f]+$/gi)){d=String.fromCharCode(parseInt("0x"+e))}}else{e=c.substring(1);if(e.match(/^\d+$/gi)){d=String.fromCharCode(parseInt(e))}}}}return d})},stripTags:function(a){return a.replace(/<\/?[^>]+>/gi,"")}}});
 qx.Class.define("qx.html.Entity",{statics:{TO_CHARCODE:{quot:34,amp:38,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,fnof:402,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,bull:8226,hellip:8230,prime:8242,Prime:8243,oline:8254,frasl:8260,weierp:8472,image:8465,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,"int":8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,circ:710,tilde:732,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,permil:8240,lsaquo:8249,rsaquo:8250,euro:8364}},defer:function(c,a,b){c.FROM_CHARCODE=qx.lang.Object.invert(c.TO_CHARCODE)}});
 qx.Class.define("qx.html.EventRegistration",{statics:{addEventListener:qx.core.Variant.select($[0],{mshtml:function(a,b,c){a.attachEvent("on"+b,c)},"default":function(a,b,c){a.addEventListener(b,c,false)}}),removeEventListener:qx.core.Variant.select($[0],{mshtml:function(a,b,c){a.detachEvent("on"+b,c)},"default":function(a,b,c){a.removeEventListener(b,c,false)}})}});
-qx.Class.define("org.eclipse.rwt.EventHandlerUtil",{type:$[121],statics:{_lastUpDownType:{},_lastKeyCode:null,cleanUp:function(){delete this.__onKeyEvent;delete this._lastUpDownType;delete this._lastKeyCode},applyBrowserFixes:qx.core.Variant.select($[0],{gecko:function(){var b=qx.ui.core.ClientDocument.getInstance();b.getElement().setAttribute("ondrop","event.preventDefault();");var a=document.documentElement;this._ffMouseFixListener=function(d){var c=null;try{c=d.originalTarget.tagName}catch(f){}if(d.button===0&&c!=null&&c!="INPUT"){d.preventDefault()}};qx.html.EventRegistration.addEventListener(a,$[1],this._ffMouseFixListener)},"default":function(){}}),getDomEvent:qx.core.Variant.select($[0],{mshtml:function(a){return a.length>0?a[0]:window.event},"default":function(a){return a[0]}}),getDomTarget:qx.core.Variant.select($[0],{mshtml:function(a){return a.target||a.srcElement},webkit:function(a){var b=a.target||a.srcElement;if(b&&(b.nodeType==qx.dom.Node.TEXT)){b=b.parentNode}return b},"default":function(a){return a.target}}),stopDomEvent:function(a){a._prevented=true;if(a.preventDefault){a.preventDefault()}try{a.keyCode=0}catch(b){}a.returnValue=false},wasStopped:function(a){return a._prevented?true:false},blockUserDomEvents:function(c,d){var a=qx.html.EventRegistration;if(d){for(var b=0;b<this._userEventTypes.length;b++){a.addEventListener(c,this._userEventTypes[b],this._domEventBlocker)}}else{for(var b=0;b<this._userEventTypes.length;b++){a.removeEventListener(c,this._userEventTypes[b],this._domEventBlocker)}}},_userEventTypes:[$[6],$[34],$[8],$[1],$[5],$[16],$[51],$[49],(org.eclipse.rwt.Client.isGecko()?$[291]:$[47]),$[10],$[4],$[40]],_domEventBlocker:function(a){org.eclipse.rwt.EventHandlerUtil.stopDomEvent(a);a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}},getOriginalTargetObject:function(b){if(b==document.documentElement){b=document.body}try{while(b!=null&&b.qx_Widget==null){b=b.parentNode}}catch(a){b=null}return b?b.qx_Widget:null},getOriginalTargetObjectFromEvent:function(a,c){var b=this.getDomTarget(a);if(c){var d=c.document;if(b==c||b==d||b==d.documentElement||b==d.body){return d.body.qx_Widget}}return this.getOriginalTargetObject(b)},getRelatedTargetObjectFromEvent:function(b){var a=org.eclipse.rwt.EventHandlerUtil;var c=b.relatedTarget;if(!c){if(b.type==$[6]){c=b.fromElement}else{c=b.toElement}}return a.getTargetObject(c)},getTargetObject:function(b,a,c){if(!a){var a=this.getOriginalTargetObject(b);if(!a){return null}}while(a){if(!c&&!a.getEnabled()){return null}if(!a.getAnonymous()){break}a=a.getParent()}return a},getKeyCode:qx.core.Variant.select($[0],{gecko:function(a){return a.keyCode},opera:function(b){var a;if(b.type===$[4]){if(this._lastKeyCode===b.keyCode){a=b.keyCode}else{a=0}}else{a=b.keyCode}return a},"default":function(b){var a=b.type!==$[4]||b.keyCode===13||b.keyCode===27;return a?b.keyCode:0}}),getCharCode:qx.core.Variant.select($[0],{"default":function(a){var b=a.type===$[4]&&a.keyCode!==13&&a.keyCode!==27;return b?a.charCode:0},"mshtml|newmshtml":function(a){var b=a.type===$[4]&&a.keyCode!==13&&a.keyCode!==27;return b?a.keyCode:0},opera:function(b){var a;if(b.type===$[4]){if(this._lastKeyCode!==b.keyCode){a=b.keyCode}else{a=0}}else{a=0}return a}}),_isFirstKeyDown:function(a){return this._lastUpDownType[a]!==$[10]},getEventPseudoTypes:qx.core.Variant.select($[0],{"default":function(c,d,b){var a;if(c.type===$[10]){var e=!this.isNonPrintableKeyCode(d);if(this._isFirstKeyDown(d)){a=e?[$[10]]:[$[10],$[4]]}else{a=e?[]:[$[4]]}}else{a=[c.type]}return a},gecko:function(c,d,b){var a;if(c.type===$[10]&&this.isModifier(d)){if(this._isFirstKeyDown(d)){a=[$[10],$[4]]}else{a=[$[4]]}}else{if(c.type===$[10]&&!this._isFirstKeyDown(d)){a=[]}else{a=[c.type]}}return a},opera:function(b,c,a){return[b.type]}}),mustRestoreKeypress:qx.core.Variant.select($[0],{"default":function(b,c){var a=false;if(this.wasStopped(b)){a=(c.length===1&&c[0]===$[10])||c.length===0}return a},gecko:function(a,b){return false}}),saveData:function(b,c,a){if(b.type!==$[4]){this._lastUpDownType[c]=b.type;this._lastKeyCode=c}},keyCodeToIdentifier:function(b){var a="Unidentified";if(this._numpadToCharCode[b]!==undefined){a=String.fromCharCode(this._numpadToCharCode[b])}else{if(this._keyCodeToIdentifierMap[b]!==undefined){a=this._keyCodeToIdentifierMap[b]}else{if(this._specialCharCodeMap[b]!==undefined){a=this._specialCharCodeMap[b]}else{if(this._isAlphaNumericKeyCode(b)){a=String.fromCharCode(b)}}}}return a},charCodeToIdentifier:function(b){var a;if(this._specialCharCodeMap[b]!==undefined){a=this._specialCharCodeMap[b]}else{a=String.fromCharCode(b).toUpperCase()}return a},isNonPrintableKeyCode:qx.core.Variant.select($[0],{"default":function(a){return this._keyCodeToIdentifierMap[a]?true:false},webkit:function(a){return(this._keyCodeToIdentifierMap[a]||a===27)?true:false}}),isSpecialKeyCode:function(a){return this._specialCharCodeMap[a]?true:false},isModifier:function(a){return a>=16&&a<=20&&a!==19},_isAlphaNumericKeyCode:function(b){var a=false;if((b>=this._charCodeA&&b<=this._charCodeZ)||(b>=this._charCode0&&b<=this._charCode9)){a=true}return a},_specialCharCodeMap:{13:$[54],27:$[103],32:$[83]},_keyCodeToIdentifierMap:{8:$[311],9:"Tab",16:"Shift",17:$[239],18:"Alt",20:"CapsLock",224:"Meta",37:"Left",38:"Up",39:$[39],40:"Down",33:$[42],34:$[43],35:"End",36:"Home",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",44:"PrintScreen",145:"Scroll",19:"Pause",91:"Win",93:"Apps"},_numpadToCharCode:{96:"0".charCodeAt(0),97:"1".charCodeAt(0),98:"2".charCodeAt(0),99:"3".charCodeAt(0),100:"4".charCodeAt(0),101:"5".charCodeAt(0),102:"6".charCodeAt(0),103:"7".charCodeAt(0),104:"8".charCodeAt(0),105:"9".charCodeAt(0),106:"*".charCodeAt(0),107:"+".charCodeAt(0),109:"-".charCodeAt(0),110:",".charCodeAt(0),111:"/".charCodeAt(0)},_charCodeA:"A".charCodeAt(0),_charCodeZ:"Z".charCodeAt(0),_charCode0:"0".charCodeAt(0),_charCode9:"9".charCodeAt(0)}});
+qx.Class.define("org.eclipse.rwt.EventHandlerUtil",{type:$[121],statics:{_lastUpDownType:{},_lastKeyCode:null,cleanUp:function(){delete this.__onKeyEvent;delete this._lastUpDownType;delete this._lastKeyCode},applyBrowserFixes:qx.core.Variant.select($[0],{gecko:function(){var b=qx.ui.core.ClientDocument.getInstance();b.getElement().setAttribute("ondrop","event.preventDefault();");var a=document.documentElement;this._ffMouseFixListener=function(d){var c=null;try{c=d.originalTarget.tagName}catch(f){}if(d.button===0&&c!=null&&c!="INPUT"){d.preventDefault()}};qx.html.EventRegistration.addEventListener(a,$[1],this._ffMouseFixListener)},"default":function(){}}),getDomEvent:qx.core.Variant.select($[0],{mshtml:function(a){return a.length>0?a[0]:window.event},"default":function(a){return a[0]}}),getDomTarget:qx.core.Variant.select($[0],{mshtml:function(a){return a.target||a.srcElement},webkit:function(a){var b=a.target||a.srcElement;if(b&&(b.nodeType==qx.dom.Node.TEXT)){b=b.parentNode}return b},"default":function(a){return a.target}}),stopDomEvent:function(a){a._prevented=true;if(a.preventDefault){a.preventDefault()}try{a.keyCode=0}catch(b){}a.returnValue=false},wasStopped:function(a){return a._prevented?true:false},blockUserDomEvents:function(c,d){var a=qx.html.EventRegistration;if(d){for(var b=0;b<this._userEventTypes.length;b++){a.addEventListener(c,this._userEventTypes[b],this._domEventBlocker)}}else{for(var b=0;b<this._userEventTypes.length;b++){a.removeEventListener(c,this._userEventTypes[b],this._domEventBlocker)}}},_userEventTypes:[$[6],$[34],$[8],$[1],$[5],$[16],$[51],$[49],(org.eclipse.rwt.Client.isGecko()?$[291]:$[47]),$[10],$[4],$[40]],_domEventBlocker:function(a){org.eclipse.rwt.EventHandlerUtil.stopDomEvent(a);a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}},getOriginalTargetObject:function(b){if(b==document.documentElement){b=document.body}try{while(b!=null&&b.qx_Widget==null){b=b.parentNode}}catch(a){b=null}return b?b.qx_Widget:null},getOriginalTargetObjectFromEvent:function(a,c){var b=this.getDomTarget(a);if(c){var d=c.document;if(b==c||b==d||b==d.documentElement||b==d.body){return d.body.qx_Widget}}return this.getOriginalTargetObject(b)},getRelatedTargetObjectFromEvent:function(b){var a=org.eclipse.rwt.EventHandlerUtil;var c=b.relatedTarget;if(!c){if(b.type==$[6]){c=b.fromElement}else{c=b.toElement}}return a.getTargetObject(c)},getTargetObject:function(b,a,c){if(!a){var a=this.getOriginalTargetObject(b);if(!a){return null}}while(a){if(!c&&!a.getEnabled()){return null}if(!a.getAnonymous()){break}a=a.getParent()}return a},getKeyCode:qx.core.Variant.select($[0],{gecko:function(a){return a.keyCode},opera:function(b){var a;if(b.type===$[4]){if(this._lastKeyCode===b.keyCode){a=b.keyCode}else{a=0}}else{a=b.keyCode}return a},"default":function(b){var a=b.type!==$[4]||b.keyCode===13||b.keyCode===27;return a?b.keyCode:0}}),getCharCode:qx.core.Variant.select($[0],{"default":function(a){var b=a.type===$[4]&&a.keyCode!==13&&a.keyCode!==27;return b?a.charCode:0},"mshtml|newmshtml":function(a){var b=a.type===$[4]&&a.keyCode!==13&&a.keyCode!==27;return b?a.keyCode:0},opera:function(b){var a;if(b.type===$[4]){if(this._lastKeyCode!==b.keyCode){a=b.keyCode}else{a=0}}else{a=0}return a}}),_isFirstKeyDown:function(a){return this._lastUpDownType[a]!==$[10]},getEventPseudoTypes:qx.core.Variant.select($[0],{"default":function(c,d,b){var a;if(c.type===$[10]){var e=!this.isNonPrintableKeyCode(d);if(this._isFirstKeyDown(d)){a=e?[$[10]]:[$[10],$[4]]}else{a=e?[]:[$[4]]}}else{a=[c.type]}return a},gecko:function(c,d,b){var a;if(c.type===$[10]&&this.isModifier(d)){if(this._isFirstKeyDown(d)){a=[$[10],$[4]]}else{a=[$[4]]}}else{if(c.type===$[10]&&!this._isFirstKeyDown(d)){a=[]}else{a=[c.type]}}return a},opera:function(b,c,a){return[b.type]}}),mustRestoreKeypress:qx.core.Variant.select($[0],{"default":function(b,c){var a=false;if(this.wasStopped(b)){a=(c.length===1&&c[0]===$[10])||c.length===0}return a},gecko:function(a,b){return false}}),saveData:function(b,c,a){if(b.type!==$[4]){this._lastUpDownType[c]=b.type;this._lastKeyCode=c}},keyCodeToIdentifier:function(b){var a="Unidentified";if(this._numpadToCharCode[b]!==undefined){a=String.fromCharCode(this._numpadToCharCode[b])}else{if(this._keyCodeToIdentifierMap[b]!==undefined){a=this._keyCodeToIdentifierMap[b]}else{if(this._specialCharCodeMap[b]!==undefined){a=this._specialCharCodeMap[b]}else{if(this._isAlphaNumericKeyCode(b)){a=String.fromCharCode(b)}}}}return a},charCodeToIdentifier:function(b){var a;if(this._specialCharCodeMap[b]!==undefined){a=this._specialCharCodeMap[b]}else{a=String.fromCharCode(b).toUpperCase()}return a},isNonPrintableKeyCode:qx.core.Variant.select($[0],{"default":function(a){return this._keyCodeToIdentifierMap[a]?true:false},webkit:function(a){return(this._keyCodeToIdentifierMap[a]||a===27)?true:false}}),isSpecialKeyCode:function(a){return this._specialCharCodeMap[a]?true:false},isModifier:function(a){return a>=16&&a<=20&&a!==19},_isAlphaNumericKeyCode:function(b){var a=false;if((b>=this._charCodeA&&b<=this._charCodeZ)||(b>=this._charCode0&&b<=this._charCode9)){a=true}return a},shouldBlock:function(c,f,b,d){var a=true;var e;if(!isNaN(f)&&f!==0){e=this.keyCodeToIdentifier(f)}else{e=this.charCodeToIdentifier(b)}if(this._nonBlockableKeysMap[e]||d.altKey){a=false}else{if(d.ctrlKey){a=this._blockableCtrlKeysMap[e]===true}}return a},_nonBlockableKeysMap:{Control:true,Alt:true,Shift:true,Meta:true,Win:true,F1:true,F2:true,F3:true,F4:true,F5:true,F6:true,F7:true,F8:true,F9:true,F10:true,F11:true,F12:true},_blockableCtrlKeysMap:{F:true,A:true,C:true,V:true,X:true,Z:true,Y:true},_specialCharCodeMap:{13:$[54],27:$[103],32:$[83]},_keyCodeToIdentifierMap:{8:$[311],9:"Tab",16:"Shift",17:$[239],18:"Alt",20:"CapsLock",224:"Meta",37:"Left",38:"Up",39:$[39],40:"Down",33:$[42],34:$[43],35:"End",36:"Home",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",44:"PrintScreen",145:"Scroll",19:"Pause",91:"Win",93:"Apps"},_numpadToCharCode:{96:"0".charCodeAt(0),97:"1".charCodeAt(0),98:"2".charCodeAt(0),99:"3".charCodeAt(0),100:"4".charCodeAt(0),101:"5".charCodeAt(0),102:"6".charCodeAt(0),103:"7".charCodeAt(0),104:"8".charCodeAt(0),105:"9".charCodeAt(0),106:"*".charCodeAt(0),107:"+".charCodeAt(0),109:"-".charCodeAt(0),110:",".charCodeAt(0),111:"/".charCodeAt(0)},_charCodeA:"A".charCodeAt(0),_charCodeZ:"Z".charCodeAt(0),_charCode0:"0".charCodeAt(0),_charCode9:"9".charCodeAt(0)}});
 qx.Mixin.define("qx.util.manager.MConnectedObject",{members:{hasConnectionTo:function(a){if(!this._valueManager){this._valueManager={}}this._valueManager[a.toHashCode()]=a}},destruct:function(){for(var a in this._valueManager){var b=this._valueManager[a];b.disconnect(this)}this._disposeFields("_valueManager")}});
 qx.Class.define("org.eclipse.rwt.HtmlUtil",{statics:{BROWSER_PREFIX:qx.core.Variant.select($[0],{gecko:"-moz-",webkit:"-webkit-","default":""}),setBackgroundImage:(function(){var a;if(org.eclipse.rwt.Client.isMshtml()&&org.eclipse.rwt.Client.getVersion()<7){a=function(d,c,b){if(b!=null&&b<1){this.removeCssFilter(d);this._setCssBackgroundImage(d,c);this.setOpacity(d,b)}else{this._setCssBackgroundImage(d,null);this._setCssFilterImage(d,c)}}}else{a=function(d,c,b){this._setCssBackgroundImage(d,c);if(b!=null){this.setOpacity(d,b)}}}return a})(),setOpacity:qx.core.Variant.select($[0],{mshtml:function(c,b){if(b==null||b>=1||b<0){this.removeCssFilter(c)}else{var a=$[475]+Math.round(b*100)+")";this.setStyleProperty(c,$[138],a)}},gecko:function(c,b){if(b==null||b>=1){this.removeStyleProperty(c,$[281]);this.removeStyleProperty(c,$[76])}else{var a=qx.lang.Number.limit(b,0,1);this.setStyleProperty(c,$[281],a);this.setStyleProperty(c,$[76],a)}},"default":function(c,b){if(b==null||b>=1){this.removeStyleProperty(c,$[76])}else{var a=qx.lang.Number.limit(b,0,1);this.setStyleProperty(c,$[76],a)}}}),setBackgroundGradient:qx.core.Variant.select($[0],{webkit:function(g,f){if(f){var d=["linear","left top"];if(f.horizontal===true){d.push("right top")}else{d.push("left bottom")}for(var e=0;e<f.length;e++){var a=f[e][0];var b=f[e][1];d.push("color-stop("+a+","+b+")")}var c=this.BROWSER_PREFIX+"gradient( "+d.join()+")";this.setStyleProperty(g,$[146],c)}else{this.removeStyleProperty(g,$[146])}},"default":function(g,f){if(f){var d=[f.horizontal===true?"0deg":"-90deg"];for(var e=0;e<f.length;e++){var a=(f[e][0]*100)+"%";var b=f[e][1];d.push(b+" "+a)}var c=this.BROWSER_PREFIX+"linear-gradient( "+d.join()+")";this.setStyleProperty(g,$[146],c)}else{this.removeStyleProperty(g,$[146])}}}),setBoxShadow:function(e,c){var d;if(org.eclipse.rwt.Client.isWebkit()){d=this.BROWSER_PREFIX+"box-shadow"}else{d="boxShadow"}if(c){var a=c[0]?"inset ":"";a+=c.slice(1,4).join("px ")+"px";var b=qx.util.ColorUtil.stringToRgb(c[5]);b.push(c[6]);a+=" rgba("+b.join()+")";this.setStyleProperty(e,d,a)}else{this.removeStyleProperty(e,d)}},setTextShadow:qx.core.Variant.select($[0],{"default":function(e,c){var d="textShadow";if(c){var a=c.slice(1,4).join("px ")+"px";var b=qx.util.ColorUtil.stringToRgb(c[5]);b.push(c[6]);a+=" rgba("+b.join()+")";this.setStyleProperty(e,d,a)}else{this.removeStyleProperty(e,d)}},mshtml:function(){}}),setPointerEvents:function(e,d){var a=org.eclipse.rwt.Client.getVersion();var b=org.eclipse.rwt.Client.getEngine()===$[137]&&a>=1.9;var c=org.eclipse.rwt.Client.getBrowser()==="safari"&&a>=530;if(b||c){this.setStyleProperty(e,$[412],d);e.setAttribute($[412],d)}else{this._passEventsThrough(e,d)}},setStyleProperty:function(c,b,a){if(c instanceof qx.ui.core.Widget){c.setStyleProperty(b,a)}else{c.style[b]=a}},removeStyleProperty:function(b,a){if(b instanceof qx.ui.core.Widget){b.removeStyleProperty(a)}else{b.style[a]=""}},removeCssFilter:function(c){var a=null;if(c instanceof qx.ui.core.Widget){if(c.isCreated()){a=c.getElement()}else{c.removeStyleProperty($[138])}}else{a=c}if(a!==null){var b=a.style.cssText;b=b.replace(/FILTER:[^;]*(;|$)/,"");a.style.cssText=b}},_setCssBackgroundImage:function(c,b){var a=b?"URL("+b+")":"none";this.setStyleProperty(c,$[93],a);this.setStyleProperty(c,$[308],$[253]);this.setStyleProperty(c,$[335],$[30])},_setCssFilterImage:function(c,b){if(b){var a=$[391]+b+$[367];this.setStyleProperty(c,$[138],a)}else{this.removeCssFilter(c)}},_passEventsThrough:function(e,d){var f=qx.html.EventRegistration;var b=org.eclipse.rwt.EventHandler._mouseEventTypes;var c=this._passEventThroughHandler;if(d==="none"){this.setStyleProperty(e,$[170],$[66]);for(var a=0;a<b.length;a++){f.addEventListener(e,b[a],c)}}else{}},_passEventThroughHandler:function(){var a=org.eclipse.rwt.EventHandlerUtil;var c=a.getDomEvent(arguments);var d=a.getDomTarget(c);var b=c.type;d.style.display="none";var e=document.elementFromPoint(c.clientX,c.clientY);c.cancelBubble=true;a.stopDomEvent(c);if(e&&b!==$[34]&&b!==$[6]&&b!==$[8]){if(b===$[1]){org.eclipse.rwt.HtmlUtil._refireEvent(e,$[6],c)}org.eclipse.rwt.HtmlUtil._refireEvent(e,b,c);if(b===$[5]){org.eclipse.rwt.HtmlUtil._refireEvent(e,$[8],c)}}d.style.display=""},_refireEvent:qx.core.Variant.select($[0],{mshtml:function(d,b,a){var c=document.createEventObject(a);d.fireEvent("on"+b,c)},"default":function(d,b,a){var c=document.createEvent("MouseEvents");c.initMouseEvent(b,true,true,a.view,a.detail,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,a.button,a.relatedTarget);d.dispatchEvent(c)}})}});
 namespace($[187]);org.eclipse.rwt.protocol.AdapterRegistry={_registry:{},add:function(b,a){this._registry[b]=a},remove:function(a){delete this._registry[a]},getAdapter:function(b){var a=this._registry[b];if(a===undefined){throw new Error("No Adapter for type "+b)}return a}};
@@ -43,7 +43,7 @@
 qx.Class.define("qx.html.StyleSheet",{statics:{createElement:qx.lang.Object.select(document.createStyleSheet?"ie4+":$[139],{"ie4+":function(a){var b=document.createStyleSheet();if(a){b.cssText=a}return b},other:function(b){var a=document.createElement($[73]);a.type="text/css";a.appendChild(document.createTextNode(b||"body {}"));document.getElementsByTagName("head")[0].appendChild(a);if(a.sheet){return a.sheet}else{var d=document.styleSheets;for(var c=d.length-1;c>=0;c--){if(d[c].ownerNode==a){return d[c]}}}throw"Error: Could not get a reference to the sheet object"}}),addRule:qx.lang.Object.select(document.createStyleSheet?"ie4+":$[139],{"ie4+":function(a,c,b){a.addRule(c,b)},other:function(a,c,b){a.insertRule(c+"{"+b+"}",a.cssRules.length)}}),removeRule:qx.lang.Object.select(document.createStyleSheet?"ie4+":$[139],{"ie4+":function(b,e){var d=b.rules;var c=d.length;for(var a=c-1;a>=0;a--){if(d[a].selectorText==e){b.removeRule(a)}}},other:function(b,e){var d=b.cssRules;var c=d.length;for(var a=c-1;a>=0;a--){if(d[a].selectorText==e){b.deleteRule(a)}}}}),removeAllRules:qx.lang.Object.select(document.createStyleSheet?"ie4+":$[139],{"ie4+":function(b){var d=b.rules;var c=d.length;for(var a=c-1;a>=0;a--){b.removeRule(a)}},other:function(b){var d=b.cssRules;var c=d.length;for(var a=c-1;a>=0;a--){b.deleteRule(a)}}})}});
 qx.Class.define($[423],{extend:qx.ui.core.Widget,type:$[101],construct:function(){arguments.callee.base.call(this);this._children=[];this._layoutImpl=this._createLayoutImpl()},properties:{focusHandler:{check:$[435],apply:"_applyFocusHandler",nullable:true},activeChild:{check:$[124],event:$[351],nullable:true},focusedChild:{check:$[124],apply:"_applyFocusedChild",event:$[194],nullable:true},visibleChildren:{_cached:true,defaultValue:null}},members:{isFocusRoot:function(){return this.getFocusHandler()!=null},getFocusRoot:function(){if(this.isFocusRoot()){return this}if(this._hasParent){return this.getParent().getFocusRoot()}return null},activateFocusRoot:function(){if(this._focusHandler){return}this._focusHandler=new qx.event.handler.FocusHandler(this);this.setFocusHandler(this._focusHandler)},_onfocuskeyevent:function(a){this.getFocusHandler()._onkeyevent(this,a)},_applyFocusHandler:function(b,a){if(b){this.addEventListener($[4],this._onfocuskeyevent);if(this.getTabIndex()<1){this.setTabIndex(1)}this.setHideFocus(true);this.setActiveChild(this)}else{this.removeEventListener($[10],this._onfocuskeyevent);this.removeEventListener($[4],this._onfocuskeyevent);this.setTabIndex(null);this.setHideFocus(false)}},_applyFocusedChild:function(f,c){var d=f!=null;var a=c!=null;if(qx.Class.isDefined($[288])&&d){var b=qx.ui.popup.PopupManager.getInstance();if(b){b.update(f)}}if(a){if(c.hasEventListeners($[104])){var e=new qx.event.type.FocusEvent($[104],c);if(d){e.setRelatedTarget(f)}c.dispatchEvent(e);e.dispose()}}if(d){if(f.hasEventListeners($[126])){var e=new qx.event.type.FocusEvent($[126],f);if(a){e.setRelatedTarget(c)}f.dispatchEvent(e);e.dispose()}}if(a){if(this.getActiveChild()==c&&!d){this.setActiveChild(null)}c.setFocused(false);var e=new qx.event.type.FocusEvent("blur",c);if(d){e.setRelatedTarget(f)}c.dispatchEvent(e);var b=qx.ui.popup.ToolTipManager.getInstance();if(b){b.handleBlur(e)}e.dispose()}if(d){this.setActiveChild(f);f.setFocused(true);org.eclipse.rwt.EventHandler.setFocusRoot(this);var e=new qx.event.type.FocusEvent($[64],f);if(a){e.setRelatedTarget(c)}f.dispatchEvent(e);var b=qx.ui.popup.ToolTipManager.getInstance();if(b){b.handleFocus(e)}e.dispose()}},_layoutImpl:null,_createLayoutImpl:function(){return null},getLayoutImpl:function(){return this._layoutImpl},getChildren:function(){return this._children},getChildrenLength:function(){return this.getChildren().length},hasChildren:function(){return this.getChildrenLength()>0},isEmpty:function(){return this.getChildrenLength()==0},indexOf:function(a){return this.getChildren().indexOf(a)},contains:function(a){switch(a){case null:return false;case this:return true;default:return this.contains(a.getParent())}},_computeVisibleChildren:function(){var c=[];var a=this.getChildren();if(!a){return 0}var d=a.length;for(var b=0;b<d;b++){var e=a[b];if(e._isDisplayable){c.push(e)}}return c},getVisibleChildrenLength:function(){return this.getVisibleChildren().length},hasVisibleChildren:function(){return this.getVisibleChildrenLength()>0},isVisibleEmpty:function(){return this.getVisibleChildrenLength()==0},add:function(b){var d;for(var c=0,a=arguments.length;c<a;c++){d=arguments[c];d.setParent(this)}return this},addAt:function(d,b){if(b==null||b<0){throw new Error("Not a valid index for addAt(): "+b)}if(d.getParent()==this){var a=this.getChildren();var c=a.indexOf(d);if(c!=b){if(c!=-1){qx.lang.Array.removeAt(a,c)}qx.lang.Array.insertAt(a,d,b);if(this._initialLayoutDone){this._invalidateVisibleChildren();this.getLayoutImpl().updateChildrenOnMoveChild(d,b,c)}}}else{d._insertIndex=b;d.setParent(this)}},addAtBegin:function(a){return this.addAt(a,0)},addAtEnd:function(b){var a=this.getChildrenLength();return this.addAt(b,b.getParent()==this?a-1:a)},addBefore:function(e,d){var a=this.getChildren();var c=a.indexOf(d);if(c==-1){throw new Error("Child to add before: "+d+$[411])}var b=a.indexOf(e);if(b==-1||b>c){c++}return this.addAt(e,Math.max(0,c-1))},addAfter:function(e,d){var a=this.getChildren();var c=a.indexOf(d);if(c==-1){throw new Error("Child to add after: "+d+$[411])}var b=a.indexOf(e);if(b!=-1&&b<c){c--}return this.addAt(e,Math.min(a.length,c+1))},remove:function(b){var d;for(var c=0,a=arguments.length;c<a;c++){d=arguments[c];if(!(d instanceof qx.ui.core.Parent)&&!(d instanceof qx.ui.basic.Terminator)){throw new Error("Invalid Widget: "+d)}else{if(d.getParent()==this){d.setParent(null)}}}},removeAt:function(a){var b=this.getChildren()[a];if(b){delete b._insertIndex;b.setParent(null)}},removeAll:function(){var a=this.getChildren();var b=a[0];while(b){this.remove(b);b=a[0]}},getFirstChild:function(){return qx.lang.Array.getFirst(this.getChildren())||null},getFirstVisibleChild:function(){return qx.lang.Array.getFirst(this.getVisibleChildren())||null},getFirstActiveChild:function(a){return qx.ui.core.Widget.getActiveSiblingHelper(null,this,1,a,"first")||null},getLastChild:function(){return qx.lang.Array.getLast(this.getChildren())||null},getLastVisibleChild:function(){return qx.lang.Array.getLast(this.getVisibleChildren())||null},getLastActiveChild:function(a){return qx.ui.core.Widget.getActiveSiblingHelper(null,this,-1,a,"last")||null},forEachChild:function(c){var b=this.getChildren(),d,a=-1;if(!b){return}while(d=b[++a]){c.call(d,a)}},forEachVisibleChild:function(c){var b=this.getVisibleChildren(),d,a=-1;if(!b){return}while(d=b[++a]){c.call(d,a)}},_markInDispose:function(){this._isInGlobalDisposeQueue=true;if(this.forEachChild){this.forEachChild(arguments.callee)}},_beforeAppear:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.isAppearRelevant()){this._beforeAppear()}})},_afterAppear:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.isAppearRelevant()){this._afterAppear()}})},_ieFixLayoutOnAppear:qx.core.Variant.select($[0],{mshtml:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this._isCreated){this._ieFixLayoutOnAppear()}})},"default":qx.lang.Function.returnTrue}),_beforeDisappear:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.isAppearRelevant()){this._beforeDisappear()}})},_afterDisappear:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.isAppearRelevant()){this._afterDisappear()}})},_afterInsertDom:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.getElement().parentNode===this.getParent()._getTargetNode()){this._afterInsertDom()}})},_afterRemoveDom:function(){arguments.callee.base.call(this);this.forEachVisibleChild(function(){if(this.isInDom()){this._afterRemoveDom()}})},_handleDisplayableCustom:function(c,a,b){this.forEachChild(function(){this._handleDisplayable()})},_addChildrenToStateQueue:function(){this.forEachVisibleChild(function(){this.addToStateQueue()})},recursiveAddToStateQueue:function(){this.addToStateQueue();this.forEachVisibleChild(function(){this.recursiveAddToStateQueue()})},_recursiveAppearanceThemeUpdate:function(a,b){arguments.callee.base.call(this,a,b);this.forEachVisibleChild(function(){this._recursiveAppearanceThemeUpdate(a,b)})},_addChildToChildrenQueue:function(a){if(!a._isInParentChildrenQueue&&a._isDisplayable){qx.ui.core.Widget.addToGlobalLayoutQueue(this);if(!this._childrenQueue){this._childrenQueue={}}this._childrenQueue[a.toHashCode()]=a}},_removeChildFromChildrenQueue:function(a){if(this._childrenQueue&&a._isInParentChildrenQueue){delete this._childrenQueue[a.toHashCode()];if(qx.lang.Object.isEmpty(this._childrenQueue)){this._childrenQueue={};qx.ui.core.Widget.removeFromGlobalLayoutQueue(this)}}},_flushChildrenQueue:function(){if(!qx.lang.Object.isEmpty(this._childrenQueue)){this.getLayoutImpl().flushChildrenQueue(this._childrenQueue);delete this._childrenQueue}},_addChildrenToLayoutQueue:function(a){this.forEachChild(function(){this.addToLayoutChanges(a)})},_layoutChild:function(b){if(!b._isDisplayable){return}var a=b._layoutChanges;if(b.renderBorder&&a.border){b.renderBorder(a)}if(b.renderPadding){if(a.paddingLeft||a.paddingRight||a.paddingTop||a.paddingBottom){b.renderPadding(a)}}this.getLayoutImpl().layoutChild(b,a);b._layoutPost(a);if(a.initial){b._initialLayoutDone=true;qx.ui.core.Widget.addToGlobalDisplayQueue(b)}b._layoutChanges={};delete b._isInParentLayoutQueue;delete this._childrenQueue[b.toHashCode()]},_layoutPost:function(a){this.createDispatchDataEvent("flush",a)},_computePreferredInnerWidth:function(){return this.getLayoutImpl().computeChildrenNeededWidth()},_computePreferredInnerHeight:function(){return this.getLayoutImpl().computeChildrenNeededHeight()},_changeInnerWidth:function(c,a){var b=this.getLayoutImpl();if(b.invalidateChildrenFlexWidth){b.invalidateChildrenFlexWidth()}this.forEachVisibleChild(function(){if(b.updateChildOnInnerWidthChange(this)&&this._recomputeBoxWidth()){this._recomputeOuterWidth();this._recomputeInnerWidth()}})},_changeInnerHeight:function(c,a){var b=this.getLayoutImpl();if(b.invalidateChildrenFlexHeight){b.invalidateChildrenFlexHeight()}this.forEachVisibleChild(function(){if(b.updateChildOnInnerHeightChange(this)&&this._recomputeBoxHeight()){this._recomputeOuterHeight();this._recomputeInnerHeight()}})},getInnerWidthForChild:function(a){return this.getInnerWidth()},getInnerHeightForChild:function(a){return this.getInnerHeight()},_remappingChildTable:["add",$[221],"addAt","addAtBegin","addAtEnd","removeAt","addBefore","addAfter","removeAll"],_remapStart:"return this._remappingChildTarget.",_remapStop:".apply(this._remappingChildTarget, arguments)",remapChildrenHandlingTo:function(e){var c=this._remappingChildTable;this._remappingChildTarget=e;for(var b=0,a=c.length,d;b<a;b++){d=c[b];this[d]=new Function(qx.ui.core.Parent.prototype._remapStart+d+qx.ui.core.Parent.prototype._remapStop)}}},defer:function(c,a,b){if(org.eclipse.rwt.Client.isOpera()){a._layoutChildOrig=a._layoutChild;a._layoutChild=function(g){if(!g._initialLayoutDone||!g._layoutChanges.border){return this._layoutChildOrig(g)}var d=g.getElement().style;var f=d.display;d.display="none";var e=this._layoutChildOrig(g);d.display=f;return e}}},destruct:function(){this._disposeObjectDeep("_children",1);this._disposeObjects("_layoutImpl","_focusHandler");this._disposeFields($[485],$[485],"_remappingChildTable","_remappingChildTarget","_cachedVisibleChildren")}});
 qx.Class.define($[215],{extend:qx.event.type.Event,construct:function(a,b){arguments.callee.base.call(this,a);this.setTarget(b);switch(a){case $[126]:case $[104]:this.setBubbles(true);this.setPropagationStopped(false)}}});
-qx.Class.define("org.eclipse.rwt.EventHandler",{type:$[121],statics:{_filter:{},_allowContextMenu:qx.lang.Function.returnFalse,_captureWidget:null,_focusRoot:null,_menuManager:null,_focused:false,_lastMouseEventType:null,_lastMouseDown:false,_lastMouseEventDate:0,_mouseIsDown:false,init:function(){var a=qx.lang.Function;this.__onmouseevent=a.bind(this._onmouseevent,this);this.__ondragevent=a.bind(this._ondragevent,this);this.__onselectevent=a.bind(this._onselectevent,this);this.__onwindowblur=a.bind(this._onwindowblur,this);this.__onwindowfocus=a.bind(this._onwindowfocus,this);this.__onwindowresize=a.bind(this._onwindowresize,this);this.__onKeyEvent=qx.lang.Function.bind(this._onKeyEvent,this);org.eclipse.rwt.EventHandlerUtil.applyBrowserFixes()},cleanUp:function(){delete this.__onmouseevent;delete this.__ondragevent;delete this.__onselectevent;delete this.__onwindowblur;delete this.__onwindowfocus;delete this.__onwindowresize;delete this.__onKeyEvent;delete this._lastMouseEventType;delete this._lastMouseDown;delete this._lastMouseEventDate;delete this._lastMouseDownDomTarget;delete this._lastMouseDownDispatchTarget;org.eclipse.rwt.EventHandlerUtil.cleanUp()},attachEvents:function(){var a=qx.html.EventRegistration;this.attachEventTypes(this._mouseEventTypes,this.__onmouseevent);this.attachEventTypes(this._dragEventTypes,this.__ondragevent);this.attachEventTypes(this._keyEventTypes,this.__onKeyEvent);a.addEventListener(window,"blur",this.__onwindowblur);a.addEventListener(window,$[64],this.__onwindowfocus);a.addEventListener(window,"resize",this.__onwindowresize);document.body.onselect=this.__onselectevent;document.onselectstart=this.__onselectevent;document.onselectionchange=this.__onselectevent},detachEvents:function(){var a=qx.html.EventRegistration;this.detachEventTypes(this._mouseEventTypes,this.__onmouseevent);this.detachEventTypes(this._dragEventTypes,this.__ondragevent);this.detachEventTypes(this._keyEventTypes,this.__onKeyEvent);a.removeEventListener(window,"blur",this.__onwindowblur);a.removeEventListener(window,$[64],this.__onwindowfocus);a.removeEventListener(window,"resize",this.__onwindowresize);document.body.onselect=null;document.onselectstart=null;document.onselectionchange=null},setCaptureWidget:function(a){if(this._captureWidget!==a){if(this._captureWidget!==null){this._captureWidget.setCapture(false)}this._captureWidget=a;if(a!=null){a.setCapture(true)}}},getCaptureWidget:function(){return this._captureWidget},setFocusRoot:function(a){if(a!==this._focusRoot){if(this._focusRoot!==null){this._focusRoot.setFocusedChild(null)}this._focusRoot=a;if(a!==null&&a.getFocusedChild()===null){a.setFocusedChild(a)}}},getFocusRoot:function(){return this._focusRoot},setAllowContextMenu:function(a){this._allowContextMenu=a},setMenuManager:function(a){this._menuManager=a},getMenuManager:function(a){return this._menuManager},setMouseEventFilter:function(b,a){this._filter[$[233]]=[b,a]},setKeyEventFilter:function(b,a){this._filter[$[230]]=[b,a]},setKeyDomEventFilter:function(b,a){this._filter[$[249]]=[b,a]},_onKeyEvent:function(){try{var e=org.eclipse.rwt.EventHandlerUtil;var a=e.getDomEvent(arguments);var j=e.getKeyCode(a);var h=e.getCharCode(a);if(typeof this._filter[$[249]]!==$[7]){var b=this._filter[$[249]][1];var d=this._filter[$[249]][0];d.call(b,a.type,j,h,a)}var c=e.getEventPseudoTypes(a,j,h);for(var f=0;f<c.length;f++){this._onkeyevent_post(a,c[f],j,h)}if(e.mustRestoreKeypress(a,c)){this._onkeyevent_post(a,$[4],j,h)}e.saveData(a,j,h)}catch(g){org.eclipse.rwt.ErrorHandler.processJavaScriptError(g)}},_onkeyevent_post:function(a,e,d,g){var f=true;if(typeof this._filter[$[230]]!==$[7]){var b=this._filter[$[230]][1];var c=this._filter[$[230]][0];f=c.call(b,e,d,g,a)}if(f){this._processKeyEvent(a,e,d,g)}},_processKeyEvent:function(b,g,d,f){var a=org.eclipse.rwt.EventHandlerUtil;var c;if(!isNaN(d)&&d!==0){c=a.keyCodeToIdentifier(d)}else{c=a.charCodeToIdentifier(f)}var i=a.getDomTarget(b);var e=this._getKeyEventTarget();var h=new qx.event.type.KeyEvent(g,b,i,e,null,d,f,c);if(e!=null&&e.getEnabled()){switch(c){case $[103]:case"Tab":if(this._menuManager!=null){this._menuManager.update(e,g)}break}if(b.ctrlKey&&c=="A"){switch(i.tagName.toLowerCase()){case $[89]:case $[116]:case"iframe":break;default:a.stopDomEvent(b);break}}e.dispatchEvent(h);if(qx.Class.isDefined($[250])){qx.event.handler.DragAndDropHandler.getInstance().handleKeyEvent(h)}}h.dispose()},_onmouseevent:function(c){try{var d=true;if(typeof this._filter[$[233]]!==$[7]){var b=this._filter[$[233]][1];d=this._filter[$[233]][0].call(b,c)}if(d){this._processMouseEvent(c)}}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_processMouseEvent:qx.core.Variant.select($[0],{mshtml:function(){var a=org.eclipse.rwt.EventHandlerUtil;var b=a.getDomEvent(arguments);var c=a.getDomTarget(b);var d=b.type;if(d==$[34]){if(this._mouseIsDown&&b.button==0){this._onmouseevent_post(b,$[5],c);this._mouseIsDown=false}}else{if(d==$[1]){this._mouseIsDown=true}else{if(d==$[5]){this._mouseIsDown=false}}if(d==$[5]&&!this._lastMouseDown&&((new Date()).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(b,$[1],c)}else{if(d==$[51]&&this._lastMouseEventType==$[5]&&((new Date()).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(b,$[16],c)}}switch(d){case $[1]:case $[5]:case $[16]:case $[51]:case $[49]:this._lastMouseEventType=d;this._lastMouseEventDate=(new Date()).valueOf();this._lastMouseDown=d==$[1];break}}this._onmouseevent_post(b,d,c)},"default":function(b){var a=org.eclipse.rwt.EventHandlerUtil;var c=a.getDomTarget(b);var d=b.type;switch(d){case $[291]:d=$[47];break;case $[16]:case $[51]:if(b.which!==1){return}}this._onmouseevent_post(b,d,c)}}),_onmouseevent_post:function(e,l,n){var h=false;var b=org.eclipse.rwt.EventHandlerUtil;var k=this.getCaptureWidget();var c=b.getOriginalTargetObject(n);var j=b.getTargetObject(null,c,true);if(!j){return}var g=k?k:j;var p=this._onmouseevent_click_fix(n,l,g);if(l==$[49]){if(this._allowContextMenu(c,n)){h=true}else{b.stopDomEvent(e)}}if(g.getEnabled()&&!(g instanceof qx.ui.core.ClientDocument)&&l==$[1]){qx.event.handler.FocusHandler.mouseFocus=true;var m=g.getFocusRoot();if(m){this.setFocusRoot(m);var i=g;while(!i.isFocusable()&&i!=m){i=i.getParent()}m.setFocusedChild(i);m.setActiveChild(g)}}if(l==$[6]||l==$[8]){var d=b.getRelatedTargetObjectFromEvent(e);var o=l==$[6]?$[237]:"elementOut";this._fireElementHoverEvents(o,e,n,j,c,d,g);if(d==j){return}}var a=new qx.event.type.MouseEvent(l,e,n,j,c,d);qx.event.type.MouseEvent.storeEventState(a);if(g.getEnabled()&&!h){g.dispatchEvent(a);this._onmouseevent_special_post(l,j,c,g,a,e)}else{if(l==$[6]){var f=qx.ui.popup.ToolTipManager.getInstance();f.handleMouseEvent(a)}}a.dispose();qx.ui.core.Widget.flushGlobalQueues();if(p){this._onmouseevent_post(e,$[16],this._lastMouseDownDomTarget);this._lastMouseDownDomTarget=null;this._lastMouseDownDispatchTarget=null}},_fireElementHoverEvents:function(e,d,f,g,c,b,h){if(h.getEnabled()){var a=new qx.event.type.MouseEvent(e,d,f,g,c,b);h.dispatchEvent(a)}},_onmouseevent_special_post:function(d,f,b,c,e,a){switch(d){case $[1]:qx.ui.popup.PopupManager.getInstance().update(f);if(this._menuManager!=null){this._menuManager.update(f,d)}qx.ui.embed.IframeManager.getInstance().handleMouseDown(e);break;case $[5]:if(this._menuManager!=null){this._menuManager.update(f,d)}if(qx.Class.isDefined($[453])){qx.ui.embed.IframeManager.getInstance().handleMouseUp(e)}break}qx.ui.popup.ToolTipManager.getInstance().handleMouseEvent(e);this._ignoreWindowBlur=d===$[1];if(qx.Class.isDefined($[250])&&f){qx.event.handler.DragAndDropHandler.getInstance().handleMouseEvent(e)}},_ondragevent:function(c){try{var a=org.eclipse.rwt.EventHandlerUtil;if(!c){c=window.event}a.stopDomEvent(c)}catch(b){org.eclipse.rwt.ErrorHandler.processJavaScriptError(b)}},_onselectevent:function(){try{var a=org.eclipse.rwt.EventHandlerUtil;var d=a.getDomEvent(arguments);var c=a.getOriginalTargetObjectFromEvent(d);while(c){if(c.getSelectable()!=null){if(!c.getSelectable()){a.stopDomEvent(d)}break}c=c.getParent()}}catch(b){org.eclipse.rwt.ErrorHandler.processJavaScriptError(b)}},_onwindowblur:function(b){try{if(!this._focused||this._ignoreWindowBlur||b.originalTarget!=window){return}this._focused=false;this.setCaptureWidget(null);if(qx.Class.isDefined($[288])){qx.ui.popup.PopupManager.getInstance().update()}if(this._menuManager){this._menuManager.update()}if(qx.Class.isDefined($[250])){qx.event.handler.DragAndDropHandler.getInstance().globalCancelDrag()}qx.ui.core.ClientDocument.getInstance().createDispatchEvent($[224])}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_onwindowfocus:function(b){try{if(this._focused){return}this._focused=true;qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowfocus")}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_onwindowresize:function(g){try{var f=qx.ui.core.ClientDocument.getInstance();var b=f.getInnerWidth();var h=f.getInnerHeight();var d=f._computeInnerWidth();var a=f._computeInnerHeight();if(d!==b||a!==h){qx.ui.core.ClientDocument.getInstance().createDispatchEvent($[244])}}catch(c){org.eclipse.rwt.ErrorHandler.processJavaScriptError(c)}},_mouseEventTypes:[$[6],$[34],$[8],$[1],$[5],$[16],$[51],$[49],org.eclipse.rwt.Client.isGecko()?$[291]:$[47]],_keyEventTypes:[$[10],$[4],$[40]],_dragEventTypes:qx.core.Variant.select($[0],{gecko:[$[199],$[136],$[279],"dragexit",$[476]],mshtml:[$[258],$[136],$[79],"drag",$[279],"dragleave"],"default":[$[79],$[199],$[136],"drag","dragleave",$[279],"dragexit",$[476]]}),_getKeyEventTarget:function(){var a=this.getFocusRoot();return this.getCaptureWidget()||(a==null?null:a.getActiveChild())},attachEventTypes:function(f,e){try{var d=org.eclipse.rwt.Client.isGecko()?window:document.body;for(var c=0,a=f.length;c<a;c++){qx.html.EventRegistration.addEventListener(d,f[c],e)}}catch(b){throw new Error("EventHandler: Failed to attach window event types: "+f+": "+b)}},detachEventTypes:function(f,e){try{var d=org.eclipse.rwt.Client.isGecko()?window:document.body;for(var c=0,a=f.length;c<a;c++){qx.html.EventRegistration.removeEventListener(d,f[c],e)}}catch(b){throw new Error("EventHandler: Failed to detach window event types: "+f+": "+b)}},_onmouseevent_click_fix:qx.core.Variant.select($[0],{gecko:function(a,d,c){var b=false;switch(d){case $[1]:this._lastMouseDownDomTarget=a;this._lastMouseDownDispatchTarget=c;break;case $[5]:if(this._lastMouseDownDispatchTarget===c&&a!==this._lastMouseDownDomTarget){b=true}else{this._lastMouseDownDomTarget=null;this._lastMouseDownDispatchTarget=null}break}return b},"default":function(){return false}})}});
+qx.Class.define("org.eclipse.rwt.EventHandler",{type:$[121],statics:{_filter:{},_allowContextMenu:qx.lang.Function.returnFalse,_captureWidget:null,_focusRoot:null,_menuManager:null,_focused:false,_lastMouseEventType:null,_lastMouseDown:false,_lastMouseEventDate:0,_mouseIsDown:false,_blockKeyEvents:false,init:function(){var a=qx.lang.Function;this.__onmouseevent=a.bind(this._onmouseevent,this);this.__ondragevent=a.bind(this._ondragevent,this);this.__onselectevent=a.bind(this._onselectevent,this);this.__onwindowblur=a.bind(this._onwindowblur,this);this.__onwindowfocus=a.bind(this._onwindowfocus,this);this.__onwindowresize=a.bind(this._onwindowresize,this);this.__onKeyEvent=qx.lang.Function.bind(this._onKeyEvent,this);org.eclipse.rwt.EventHandlerUtil.applyBrowserFixes()},cleanUp:function(){delete this.__onmouseevent;delete this.__ondragevent;delete this.__onselectevent;delete this.__onwindowblur;delete this.__onwindowfocus;delete this.__onwindowresize;delete this.__onKeyEvent;delete this._lastMouseEventType;delete this._lastMouseDown;delete this._lastMouseEventDate;delete this._lastMouseDownDomTarget;delete this._lastMouseDownDispatchTarget;org.eclipse.rwt.EventHandlerUtil.cleanUp()},attachEvents:function(){var a=qx.html.EventRegistration;this.attachEventTypes(this._mouseEventTypes,this.__onmouseevent);this.attachEventTypes(this._dragEventTypes,this.__ondragevent);this.attachEventTypes(this._keyEventTypes,this.__onKeyEvent);a.addEventListener(window,"blur",this.__onwindowblur);a.addEventListener(window,$[64],this.__onwindowfocus);a.addEventListener(window,"resize",this.__onwindowresize);document.body.onselect=this.__onselectevent;document.onselectstart=this.__onselectevent;document.onselectionchange=this.__onselectevent},detachEvents:function(){var a=qx.html.EventRegistration;this.detachEventTypes(this._mouseEventTypes,this.__onmouseevent);this.detachEventTypes(this._dragEventTypes,this.__ondragevent);this.detachEventTypes(this._keyEventTypes,this.__onKeyEvent);a.removeEventListener(window,"blur",this.__onwindowblur);a.removeEventListener(window,$[64],this.__onwindowfocus);a.removeEventListener(window,"resize",this.__onwindowresize);document.body.onselect=null;document.onselectstart=null;document.onselectionchange=null},setCaptureWidget:function(a){if(this._captureWidget!==a){if(this._captureWidget!==null){this._captureWidget.setCapture(false)}this._captureWidget=a;if(a!=null){a.setCapture(true)}}},getCaptureWidget:function(){return this._captureWidget},setFocusRoot:function(a){if(a!==this._focusRoot){if(this._focusRoot!==null){this._focusRoot.setFocusedChild(null)}this._focusRoot=a;if(a!==null&&a.getFocusedChild()===null){a.setFocusedChild(a)}}},setBlockKeyEvents:function(a){this._blockKeyEvents=a},getBlockKeyEvents:function(a){return this._blockKeyEvents},getFocusRoot:function(){return this._focusRoot},setAllowContextMenu:function(a){this._allowContextMenu=a},setMenuManager:function(a){this._menuManager=a},getMenuManager:function(a){return this._menuManager},setMouseEventFilter:function(b,a){this._filter[$[233]]=[b,a]},setKeyEventFilter:function(b,a){this._filter[$[230]]=[b,a]},setKeyDomEventFilter:function(b,a){this._filter[$[249]]=[b,a]},_onKeyEvent:function(){try{var e=org.eclipse.rwt.EventHandlerUtil;var a=e.getDomEvent(arguments);var j=e.getKeyCode(a);var h=e.getCharCode(a);if(this._blockKeyEvents){if(e.shouldBlock(a.type,j,h,a)){e.stopDomEvent(a)}return}if(typeof this._filter[$[249]]!==$[7]){var b=this._filter[$[249]][1];var d=this._filter[$[249]][0];d.call(b,a.type,j,h,a)}var c=e.getEventPseudoTypes(a,j,h);for(var f=0;f<c.length;f++){this._onkeyevent_post(a,c[f],j,h)}if(e.mustRestoreKeypress(a,c)){this._onkeyevent_post(a,$[4],j,h)}e.saveData(a,j,h)}catch(g){org.eclipse.rwt.ErrorHandler.processJavaScriptError(g)}},_onkeyevent_post:function(a,e,d,g){var f=true;if(typeof this._filter[$[230]]!==$[7]){var b=this._filter[$[230]][1];var c=this._filter[$[230]][0];f=c.call(b,e,d,g,a)}if(f){this._processKeyEvent(a,e,d,g)}},_processKeyEvent:function(b,g,d,f){var a=org.eclipse.rwt.EventHandlerUtil;var c;if(!isNaN(d)&&d!==0){c=a.keyCodeToIdentifier(d)}else{c=a.charCodeToIdentifier(f)}var i=a.getDomTarget(b);var e=this._getKeyEventTarget();var h=new qx.event.type.KeyEvent(g,b,i,e,null,d,f,c);if(e!=null&&e.getEnabled()){switch(c){case $[103]:case"Tab":if(this._menuManager!=null){this._menuManager.update(e,g)}break}if(b.ctrlKey&&c=="A"){switch(i.tagName.toLowerCase()){case $[89]:case $[116]:case"iframe":break;default:a.stopDomEvent(b);break}}e.dispatchEvent(h);if(qx.Class.isDefined($[250])){qx.event.handler.DragAndDropHandler.getInstance().handleKeyEvent(h)}}h.dispose()},_onmouseevent:function(c){try{var d=true;if(typeof this._filter[$[233]]!==$[7]){var b=this._filter[$[233]][1];d=this._filter[$[233]][0].call(b,c)}if(d){this._processMouseEvent(c)}}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_processMouseEvent:qx.core.Variant.select($[0],{mshtml:function(){var a=org.eclipse.rwt.EventHandlerUtil;var b=a.getDomEvent(arguments);var c=a.getDomTarget(b);var d=b.type;if(d==$[34]){if(this._mouseIsDown&&b.button==0){this._onmouseevent_post(b,$[5],c);this._mouseIsDown=false}}else{if(d==$[1]){this._mouseIsDown=true}else{if(d==$[5]){this._mouseIsDown=false}}if(d==$[5]&&!this._lastMouseDown&&((new Date()).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(b,$[1],c)}else{if(d==$[51]&&this._lastMouseEventType==$[5]&&((new Date()).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(b,$[16],c)}}switch(d){case $[1]:case $[5]:case $[16]:case $[51]:case $[49]:this._lastMouseEventType=d;this._lastMouseEventDate=(new Date()).valueOf();this._lastMouseDown=d==$[1];break}}this._onmouseevent_post(b,d,c)},"default":function(b){var a=org.eclipse.rwt.EventHandlerUtil;var c=a.getDomTarget(b);var d=b.type;switch(d){case $[291]:d=$[47];break;case $[16]:case $[51]:if(b.which!==1){return}}this._onmouseevent_post(b,d,c)}}),_onmouseevent_post:function(e,l,n){var h=false;var b=org.eclipse.rwt.EventHandlerUtil;var k=this.getCaptureWidget();var c=b.getOriginalTargetObject(n);var j=b.getTargetObject(null,c,true);if(!j){return}var g=k?k:j;var p=this._onmouseevent_click_fix(n,l,g);if(l==$[49]){if(this._allowContextMenu(c,n)){h=true}else{b.stopDomEvent(e)}}if(g.getEnabled()&&!(g instanceof qx.ui.core.ClientDocument)&&l==$[1]){qx.event.handler.FocusHandler.mouseFocus=true;var m=g.getFocusRoot();if(m){this.setFocusRoot(m);var i=g;while(!i.isFocusable()&&i!=m){i=i.getParent()}m.setFocusedChild(i);m.setActiveChild(g)}}if(l==$[6]||l==$[8]){var d=b.getRelatedTargetObjectFromEvent(e);var o=l==$[6]?$[237]:"elementOut";this._fireElementHoverEvents(o,e,n,j,c,d,g);if(d==j){return}}var a=new qx.event.type.MouseEvent(l,e,n,j,c,d);qx.event.type.MouseEvent.storeEventState(a);if(g.getEnabled()&&!h){g.dispatchEvent(a);this._onmouseevent_special_post(l,j,c,g,a,e)}else{if(l==$[6]){var f=qx.ui.popup.ToolTipManager.getInstance();f.handleMouseEvent(a)}}a.dispose();qx.ui.core.Widget.flushGlobalQueues();if(p){this._onmouseevent_post(e,$[16],this._lastMouseDownDomTarget);this._lastMouseDownDomTarget=null;this._lastMouseDownDispatchTarget=null}},_fireElementHoverEvents:function(e,d,f,g,c,b,h){if(h.getEnabled()){var a=new qx.event.type.MouseEvent(e,d,f,g,c,b);h.dispatchEvent(a)}},_onmouseevent_special_post:function(d,f,b,c,e,a){switch(d){case $[1]:qx.ui.popup.PopupManager.getInstance().update(f);if(this._menuManager!=null){this._menuManager.update(f,d)}qx.ui.embed.IframeManager.getInstance().handleMouseDown(e);break;case $[5]:if(this._menuManager!=null){this._menuManager.update(f,d)}if(qx.Class.isDefined($[453])){qx.ui.embed.IframeManager.getInstance().handleMouseUp(e)}break}qx.ui.popup.ToolTipManager.getInstance().handleMouseEvent(e);this._ignoreWindowBlur=d===$[1];if(qx.Class.isDefined($[250])&&f){qx.event.handler.DragAndDropHandler.getInstance().handleMouseEvent(e)}},_ondragevent:function(c){try{var a=org.eclipse.rwt.EventHandlerUtil;if(!c){c=window.event}a.stopDomEvent(c)}catch(b){org.eclipse.rwt.ErrorHandler.processJavaScriptError(b)}},_onselectevent:function(){try{var a=org.eclipse.rwt.EventHandlerUtil;var d=a.getDomEvent(arguments);var c=a.getOriginalTargetObjectFromEvent(d);while(c){if(c.getSelectable()!=null){if(!c.getSelectable()){a.stopDomEvent(d)}break}c=c.getParent()}}catch(b){org.eclipse.rwt.ErrorHandler.processJavaScriptError(b)}},_onwindowblur:function(b){try{if(!this._focused||this._ignoreWindowBlur||b.originalTarget!=window){return}this._focused=false;this.setCaptureWidget(null);if(qx.Class.isDefined($[288])){qx.ui.popup.PopupManager.getInstance().update()}if(this._menuManager){this._menuManager.update()}if(qx.Class.isDefined($[250])){qx.event.handler.DragAndDropHandler.getInstance().globalCancelDrag()}qx.ui.core.ClientDocument.getInstance().createDispatchEvent($[224])}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_onwindowfocus:function(b){try{if(this._focused){return}this._focused=true;qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowfocus")}catch(a){org.eclipse.rwt.ErrorHandler.processJavaScriptError(a)}},_onwindowresize:function(g){try{var f=qx.ui.core.ClientDocument.getInstance();var b=f.getInnerWidth();var h=f.getInnerHeight();var d=f._computeInnerWidth();var a=f._computeInnerHeight();if(d!==b||a!==h){qx.ui.core.ClientDocument.getInstance().createDispatchEvent($[244])}}catch(c){org.eclipse.rwt.ErrorHandler.processJavaScriptError(c)}},_mouseEventTypes:[$[6],$[34],$[8],$[1],$[5],$[16],$[51],$[49],org.eclipse.rwt.Client.isGecko()?$[291]:$[47]],_keyEventTypes:[$[10],$[4],$[40]],_dragEventTypes:qx.core.Variant.select($[0],{gecko:[$[199],$[136],$[279],"dragexit",$[476]],mshtml:[$[258],$[136],$[79],"drag",$[279],"dragleave"],"default":[$[79],$[199],$[136],"drag","dragleave",$[279],"dragexit",$[476]]}),_getKeyEventTarget:function(){var a=this.getFocusRoot();return this.getCaptureWidget()||(a==null?null:a.getActiveChild())},attachEventTypes:function(f,e){try{var d=org.eclipse.rwt.Client.isGecko()?window:document.body;for(var c=0,a=f.length;c<a;c++){qx.html.EventRegistration.addEventListener(d,f[c],e)}}catch(b){throw new Error("EventHandler: Failed to attach window event types: "+f+": "+b)}},detachEventTypes:function(f,e){try{var d=org.eclipse.rwt.Client.isGecko()?window:document.body;for(var c=0,a=f.length;c<a;c++){qx.html.EventRegistration.removeEventListener(d,f[c],e)}}catch(b){throw new Error("EventHandler: Failed to detach window event types: "+f+": "+b)}},_onmouseevent_click_fix:qx.core.Variant.select($[0],{gecko:function(a,d,c){var b=false;switch(d){case $[1]:this._lastMouseDownDomTarget=a;this._lastMouseDownDispatchTarget=c;break;case $[5]:if(this._lastMouseDownDispatchTarget===c&&a!==this._lastMouseDownDomTarget){b=true}else{this._lastMouseDownDomTarget=null;this._lastMouseDownDispatchTarget=null}break}return b},"default":function(){return false}})}});
 qx.Class.define("qx.dom.Node",{statics:{ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12,isDocument:function(a){return !!(a&&a.nodeType===qx.dom.Node.DOCUMENT)},getDocument:function(a){if(this.isDocument(a)){return a}return a.ownerDocument||a.document||null},getWindow:qx.core.Variant.select($[0],{mshtml:function(a){return this.getDocument(a).parentWindow},"default":function(a){return this.getDocument(a).defaultView}})}});
 qx.Class.define($[482],{extend:qx.event.type.Event,construct:function(d,b,c,e,a){arguments.callee.base.call(this,d);this.setDomEvent(b);this.setDomTarget(c);this.setTarget(e);this.setOriginalTarget(a)},statics:{SHIFT_MASK:1,CTRL_MASK:2,ALT_MASK:4,META_MASK:8},properties:{bubbles:{_fast:true,defaultValue:true,noCompute:true},propagationStopped:{_fast:true,defaultValue:false,noCompute:true},domEvent:{_fast:true,setOnlyOnce:true,noCompute:true},domTarget:{_fast:true,setOnlyOnce:true,noCompute:true},modifiers:{_cached:true,defaultValue:null}},members:{_computeModifiers:function(){var b=0;var a=this.getDomEvent();if(a.shiftKey){b|=qx.event.type.DomEvent.SHIFT_MASK}if(a.ctrlKey){b|=qx.event.type.DomEvent.CTRL_MASK}if(a.altKey){b|=qx.event.type.DomEvent.ALT_MASK}if(a.metaKey){b|=qx.event.type.DomEvent.META_MASK}return b},isCtrlPressed:function(){return this.getDomEvent().ctrlKey},isShiftPressed:function(){return this.getDomEvent().shiftKey},isAltPressed:function(){return this.getDomEvent().altKey},isMetaPressed:function(){return this.getDomEvent().metaKey},isCtrlOrCommandPressed:function(){if(org.eclipse.rwt.Client.getPlatform()==="mac"){return this.getDomEvent().metaKey}else{return this.getDomEvent().ctrlKey}},setDefaultPrevented:function(a){if(!a){throw new Error("It is not possible to set preventDefault to false if it was true before!")}org.eclipse.rwt.EventHandlerUtil.stopDomEvent(this.getDomEvent());arguments.callee.base.call(this,a)}},destruct:function(){this._disposeFields("_valueDomEvent","_valueDomTarget")}});
 qx.Class.define($[270],{extend:qx.event.type.DomEvent,construct:function(f,c,d,g,b,e,h,a){arguments.callee.base.call(this,f,c,d,g,b);this._keyCode=e;this.setCharCode(h);this.setKeyIdentifier(a)},statics:{keys:{esc:27,enter:13,tab:9,space:32,up:38,down:40,left:37,right:39,shift:16,ctrl:17,alt:18,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,print:124,del:46,backspace:8,insert:45,home:36,end:35,pageup:33,pagedown:34,numlock:144,numpad_0:96,numpad_1:97,numpad_2:98,numpad_3:99,numpad_4:100,numpad_5:101,numpad_6:102,numpad_7:103,numpad_8:104,numpad_9:105,numpad_divide:111,numpad_multiply:106,numpad_minus:109,numpad_plus:107},codes:{}},properties:{charCode:{_fast:true,setOnlyOnce:true,noCompute:true},keyIdentifier:{_fast:true,setOnlyOnce:true,noCompute:true}},members:{getKeyCode:function(){return this._keyCode}},defer:function(b){for(var a in b.keys){b.codes[b.keys[a]]=a}}});
@@ -137,7 +137,7 @@
 qx.Class.define($[396],{type:$[101],extend:qx.ui.layout.CanvasLayout,construct:function(a){arguments.callee.base.call(this);if(a!==undefined){this.setButton(a)}this.initTop();this.initRight();this.initBottom();this.initLeft()},properties:{top:{refine:true,init:0},right:{refine:true,init:0},bottom:{refine:true,init:0},left:{refine:true,init:0},display:{refine:true,init:false},button:{check:$[392],apply:"_applyButton"}},members:{_applyButton:function(b,a){if(a){a.setPage(null)}if(b){b.setPage(this)}}}});
 qx.Class.define("qx.ui.pageview.tabview.Page",{extend:qx.ui.pageview.AbstractPage,properties:{appearance:{refine:true,init:"tab-view-page"}}});
 qx.Class.define("qx.ui.pageview.tabview.Button",{extend:qx.ui.pageview.AbstractButton,events:{closetab:$[3]},properties:{appearance:{refine:true,init:"tab-view-button"},showCloseButton:{check:$[2],init:false,apply:"_applyShowCloseButton",event:"changeShowCloseButton"},closeButtonImage:{check:$[21],init:"icon/16/actions/dialog-cancel.png",apply:"_applyCloseButtonImage"}},members:{_onkeydown:function(b){var a=b.getKeyIdentifier();if(a==$[54]||a==$[83]){this.setChecked(true)}},_onkeypress:function(c){switch(c.getKeyIdentifier()){case"Left":var b=this.getPreviousActiveSibling();if(b&&b!=this){delete qx.event.handler.FocusHandler.mouseFocus;b.setFocused(true);b.setChecked(true)}break;case $[39]:var a=this.getNextActiveSibling();if(a&&a!=this){delete qx.event.handler.FocusHandler.mouseFocus;a.setFocused(true);a.setChecked(true)}break}},_ontabclose:function(a){this.createDispatchDataEvent("closetab",this);a.stopPropagation()},_applyChecked:function(b,a){arguments.callee.base.call(this,b,a);this.setZIndex(b?1:0)},_applyShowCloseButton:function(b,a){if(!this._closeButtonImage){this._closeButtonImage=new qx.ui.basic.Image(this.getCloseButtonImage())}if(b){this._closeButtonImage.addEventListener($[16],this._ontabclose,this);this.add(this._closeButtonImage)}else{this.remove(this._closeButtonImage);this._closeButtonImage.removeEventListener($[16],this._ontabclose,this)}},_applyCloseButtonImage:function(b,a){if(this._closeButtonImage){this._closeButtonImage.setSource(b)}},_renderAppearance:function(){if(this.getView()){if(this.isFirstVisibleChild()){this.addState("firstChild")}else{this.removeState($[247])}if(this.isLastVisibleChild()){this.addState($[247])}else{this.removeState($[247])}if(this.getView().getAlignTabsToLeft()){this.addState("alignLeft")}else{this.removeState("alignLeft")}if(!this.getView().getAlignTabsToLeft()){this.addState("alignRight")}else{this.removeState("alignRight")}if(this.getView().getPlaceBarOnTop()){this.addState($[156])}else{this.removeState($[156])}if(!this.getView().getPlaceBarOnTop()){this.addState("barBottom")}else{this.removeState("barBottom")}}arguments.callee.base.call(this)}},destruct:function(){this._disposeObjects("_closeButtonImage")}});
-qx.Class.define("org.eclipse.rwt.ErrorHandler",{statics:{_overlay:null,_box:null,processJavaScriptErrorInResponse:function(a,b,c){var d="<p>Could not process server response:</p><pre>";d+=this._gatherErrorInfo(b,a,c);d+="</pre>";this.showErrorPage(d)},processJavaScriptError:function(b){this.errorObject=b;if(typeof console===$[19]){var e="Error: "+(b.message?b.message:b);if(typeof console.error!==$[7]){console.error(e)}else{if(typeof console.log!==$[7]){console.log(e)}}if(typeof console.log===$[45]&&b.stack){console.log("Error stack:\n"+b.stack)}else{if(typeof console.trace!==$[7]){console.trace()}}}var a=true;try{a=qx.core.Variant.isSet($[25],"on")}catch(c){}if(a){var d="<p>Javascript error occurred:</p><pre>";d+=this._gatherErrorInfo(b);d+="</pre>";this.showErrorPage(d);throw b}},showErrorPage:function(a){this._enableTextSelection();this._freezeApplication();document.title="Error Page";this._createErrorPageArea().innerHTML=a},showErrorBox:function(e,f){var b=String(window.location);var c=b.indexOf("#");if(c!=-1){b=b.substring(0,c)}var a='href="'+b+'"';var d=e.replace(/\{HREF_URL\}/,a);d=org.eclipse.rwt.protocol.EncodingUtil.replaceNewLines(d,$[107]);if(f){this._freezeApplication()}this._overlay=this._createOverlay();this._box=this._createErrorBoxArea(400,100);this._box.innerHTML=d;this._box.style.backgroundColor="#dae9f7";this._box.style.border="1px solid black";this._box.style.overflow="auto";var g=this._box.getElementsByTagName("a")[0];if(g){g.style.outline="none";g.focus()}},showWaitHint:function(){this.hideErrorBox();this._overlay=this._createOverlay();var c=org.eclipse.swt.theme.ThemeStore.getInstance();var a=$[318];var b=c.getSizedImage(a,{},"background-image");if(b&&b[0]){this._box=this._createErrorBoxArea(b[1],b[2]);org.eclipse.rwt.HtmlUtil.setBackgroundImage(this._box,b[0]);this._box.style.backgroundColor=$[82];this._box.style.border="none";this._box.style.overflow=$[13]}},hideErrorBox:function(){if(this._box){this._box.parentNode.removeChild(this._box);this._box=null}if(this._overlay){this._overlay.parentNode.removeChild(this._overlay);this._overlay=null}},_gatherErrorInfo:function(b,a,e){var g=[];try{g.push("Error: "+b+"\n");if(a){g.push("Script: "+a)}if(b instanceof Error){for(var d in b){g.push(d+": "+b[d])}if(b.stack){g.push("Stack: "+b.stack)}}g.push("Debug: "+qx.core.Variant.get($[25]));if(e){g.push("Request: "+e.getData())}var f=qx.ui.core.Widget._inFlushGlobalQueues;if(f){g.push("Phase: "+qx.ui.core.Widget._flushGlobalQueuesPhase)}}catch(c){}return g.join("\n  ")},_createOverlay:function(){var b=document.createElement("div");var d=org.eclipse.swt.theme.ThemeStore.getInstance();var a=d.getColor($[318],{},$[193]);var e=d.getAlpha($[318],{},$[193]);var c=b.style;c.position=$[17];c.width="100%";c.height="100%";c.backgroundColor=a===$[7]?$[82]:a;org.eclipse.rwt.HtmlUtil.setOpacity(b,e);c.zIndex=100000000;document.body.appendChild(b);return b},_createErrorPageArea:function(){var a=document.createElement("div");var b=a.style;b.position=$[17];b.width="100%";b.height="100%";b.backgroundColor="#ffffff";b.zIndex=100000001;b.overflow="auto";b.padding="10px";document.body.appendChild(a);return a},_createErrorBoxArea:function(d,a){var b=document.createElement("div");var c=b.style;c.position=$[17];c.width=d+"px";c.height=a+"px";var g=qx.ui.core.ClientDocument.getInstance();var f=(g.getClientWidth()-d)/2;var e=(g.getClientHeight()-a)/2;c.left=(f<0?0:f)+"px";c.top=(e<0?0:e)+"px";c.zIndex=100000001;c.padding="10px";c.textAlign=$[30];c.fontFamily='verdana,"lucida sans",arial,helvetica,sans-serif';c.fontSize="12px";c.fontStyle=$[61];c.fontWeight=$[61];document.body.appendChild(b);return b},_freezeApplication:function(){try{var b=org.eclipse.rwt.Display.getCurrent();b.setExitConfirmation(null);qx.io.remote.RequestQueue.getInstance().setEnabled(false);org.eclipse.rwt.EventHandler.detachEvents();qx.core.Target.prototype.dispatchEvent=function(){};org.eclipse.rwt.Animation._stopLoop()}catch(a){try{console.log("_freezeApplication exception: "+a)}catch(a){}}},_enableTextSelection:function(){var b=qx.ui.core.ClientDocument.getInstance();b.setSelectable(true);if(org.eclipse.rwt.Client.isGecko()){var a=org.eclipse.rwt.EventHandlerUtil;qx.html.EventRegistration.removeEventListener(document.documentElement,$[1],a._ffMouseFixListener)}}}});
+qx.Class.define("org.eclipse.rwt.ErrorHandler",{statics:{_overlay:null,_box:null,processJavaScriptErrorInResponse:function(a,b,c){var d="<p>Could not process server response:</p><pre>";d+=this._gatherErrorInfo(b,a,c);d+="</pre>";this.showErrorPage(d)},processJavaScriptError:function(b){this.errorObject=b;if(typeof console===$[19]){var e="Error: "+(b.message?b.message:b);if(typeof console.error!==$[7]){console.error(e)}else{if(typeof console.log!==$[7]){console.log(e)}}if(typeof console.log===$[45]&&b.stack){console.log("Error stack:\n"+b.stack)}else{if(typeof console.trace!==$[7]){console.trace()}}}var a=true;try{a=qx.core.Variant.isSet($[25],"on")}catch(c){}if(a){var d="<p>Javascript error occurred:</p><pre>";d+=this._gatherErrorInfo(b);d+="</pre>";this.showErrorPage(d);throw b}},showErrorPage:function(a){this._enableTextSelection();this._freezeApplication();document.title="Error Page";this._createErrorPageArea().innerHTML=a},showErrorBox:function(e,f){var b=String(window.location);var c=b.indexOf("#");if(c!=-1){b=b.substring(0,c)}var a='href="'+b+'"';var d=e.replace(/\{HREF_URL\}/,a);d=org.eclipse.rwt.protocol.EncodingUtil.replaceNewLines(d,$[107]);if(f){this._freezeApplication()}this._overlay=this._createOverlay();this._box=this._createErrorBoxArea(400,100);this._box.innerHTML=d;this._box.style.backgroundColor="#dae9f7";this._box.style.border="1px solid black";this._box.style.overflow="auto";var g=this._box.getElementsByTagName("a")[0];if(g){g.style.outline="none";g.focus()}},showWaitHint:function(){this.hideErrorBox();this._overlay=this._createOverlay();var c=org.eclipse.swt.theme.ThemeStore.getInstance();var a=$[318];var b=c.getSizedImage(a,{},"background-image");if(b&&b[0]){this._box=this._createErrorBoxArea(b[1],b[2]);org.eclipse.rwt.HtmlUtil.setBackgroundImage(this._box,b[0]);this._box.style.backgroundColor=$[82];this._box.style.border="none";this._box.style.overflow=$[13]}},hideErrorBox:function(){if(this._box){this._box.parentNode.removeChild(this._box);this._box=null}if(this._overlay){this._overlay.parentNode.removeChild(this._overlay);this._overlay=null}org.eclipse.rwt.EventHandler.setBlockKeyEvents(false)},_gatherErrorInfo:function(b,a,e){var g=[];try{g.push("Error: "+b+"\n");if(a){g.push("Script: "+a)}if(b instanceof Error){for(var d in b){g.push(d+": "+b[d])}if(b.stack){g.push("Stack: "+b.stack)}}g.push("Debug: "+qx.core.Variant.get($[25]));if(e){g.push("Request: "+e.getData())}var f=qx.ui.core.Widget._inFlushGlobalQueues;if(f){g.push("Phase: "+qx.ui.core.Widget._flushGlobalQueuesPhase)}}catch(c){}return g.join("\n  ")},_createOverlay:function(){org.eclipse.rwt.EventHandler.setBlockKeyEvents(true);var b=document.createElement("div");var d=org.eclipse.swt.theme.ThemeStore.getInstance();var a=d.getColor($[318],{},$[193]);var e=d.getAlpha($[318],{},$[193]);var c=b.style;c.position=$[17];c.width="100%";c.height="100%";c.backgroundColor=a===$[7]?$[82]:a;org.eclipse.rwt.HtmlUtil.setOpacity(b,e);c.zIndex=100000000;document.body.appendChild(b);return b},_createErrorPageArea:function(){var a=document.createElement("div");var b=a.style;b.position=$[17];b.width="100%";b.height="100%";b.backgroundColor="#ffffff";b.zIndex=100000001;b.overflow="auto";b.padding="10px";document.body.appendChild(a);return a},_createErrorBoxArea:function(d,a){var b=document.createElement("div");var c=b.style;c.position=$[17];c.width=d+"px";c.height=a+"px";var g=qx.ui.core.ClientDocument.getInstance();var f=(g.getClientWidth()-d)/2;var e=(g.getClientHeight()-a)/2;c.left=(f<0?0:f)+"px";c.top=(e<0?0:e)+"px";c.zIndex=100000001;c.padding="10px";c.textAlign=$[30];c.fontFamily='verdana,"lucida sans",arial,helvetica,sans-serif';c.fontSize="12px";c.fontStyle=$[61];c.fontWeight=$[61];document.body.appendChild(b);return b},_freezeApplication:function(){try{var b=org.eclipse.rwt.Display.getCurrent();b.setExitConfirmation(null);qx.io.remote.RequestQueue.getInstance().setEnabled(false);org.eclipse.rwt.EventHandler.detachEvents();qx.core.Target.prototype.dispatchEvent=function(){};org.eclipse.rwt.Animation._stopLoop()}catch(a){try{console.log("_freezeApplication exception: "+a)}catch(a){}}},_enableTextSelection:function(){var b=qx.ui.core.ClientDocument.getInstance();b.setSelectable(true);if(org.eclipse.rwt.Client.isGecko()){var a=org.eclipse.rwt.EventHandlerUtil;qx.html.EventRegistration.removeEventListener(document.documentElement,$[1],a._ffMouseFixListener)}}}});
 qx.Class.define("org.eclipse.rwt.widgets.TreeRowContainer",{extend:qx.ui.layout.VerticalBoxLayout,construct:function(){arguments.callee.base.call(this);this.setOverflow($[13]);this._scrollLeft=0;this._rowHeight=16;this._rowWidth=0;this._horzGridBorder=null;this._rowBorder=null;this._baseAppearance=null;this._topItem=null;this._vertGridLines=[];this._vertGridBorder=null;this._renderTime=null;this._topItemIndex=0;this._items=[];this._asyncQueue={};this._asyncTimer=new qx.client.Timer(0);this._asyncTimer.addEventListener($[26],this._onAsyncTimer,this);this._hoverItem=null;this._hoverElement=null;this._config=org.eclipse.rwt.widgets.TreeRowContainer.createRenderConfig();this.addEventListener($[6],this._onRowOver,this);this.addEventListener($[8],this._onRowOver,this);this.addEventListener($[237],this._onElementOver,this)},destruct:function(){this._rowBorder=null;this._topItem=null;this._renderTime=null;this._items=null;this._hoverItem=null;this._hoverElement=null;this._asyncTimer.dispose();this._asyncTimer=null},statics:{createRenderConfig:function(){var a={textColor:null,font:null,enabled:true,focused:false,linesVisible:false,fullSelection:false,hideSelection:false,alwaysHideSelection:false,variant:null,selectionPadding:null,indentionWidth:16,hasCheckBoxes:false,checkBoxLeft:null,checkBoxWidth:null,columnCount:0,treeColumn:0,alignment:[],itemLeft:[],itemWidth:[],itemImageLeft:[],itemImageWidth:[],itemTextLeft:[],itemTextWidth:[]};return a}},members:{getRenderConfig:function(){return this._config},setPostRenderFunction:function(b,a){this._postRender=[b,a]},setSelectionProvider:function(b,a){this._selectionProvider=[b,a]},setBaseAppearance:function(a){this._baseAppearance=a},setRowWidth:function(b){this._rowWidth=b;for(var a=0;a<this._children.length;a++){this._children[a].setWidth(b)}},setRowHeight:function(a){this._rowHeight=a;for(var b=0;b<this._children.length;b++){this._children[b].setHeight(a)}this._updateRowCount()},updateRowLines:function(){var a=this._config.linesVisible?this._getHorizontalGridBorder():null;this._rowBorder=a;for(var b=0;b<this._children.length;b++){this._children[b].setBorder(a);this._children[b].setState($[185],this._config.linesVisible)}},_renderGridVertical:function(){var a=this._config.linesVisible?this._config.columnCount:0;for(var b=0;b<a;b++){this._renderVerticalGridline(b)}for(var b=a;b<this._vertGridLines.length;b++){this._removeGridLine(b)}},_renderVerticalGridline:function(c){var e=this.getWidth();var b=this._config.itemWidth[c];var d=this._config.itemLeft[c]+b-1;if(b>0){var a=this._getVerticalGridline(c);a.style.left=d+"px";a.style.height=this.getHeight()+"px"}else{this._removeGridLine(c)}},_getVerticalGridline:function(b){if(typeof this._vertGridLines[b]===$[7]){var a=document.createElement("div");a.style.zIndex=1;a.style.position=$[17];a.style.top="0px";a.style.width="0px";this._getVerticalGridBorder().renderElement(a);if(this._isCreated){this._getTargetNode().appendChild(a)}else{this.addEventListener($[44],function(){this._getTargetNode().appendChild(a)},this)}this._vertGridLines[b]=a}return this._vertGridLines[b]},_removeGridLine:function(a){if(this._vertGridLines[a]){this._getTargetNode().removeChild(this._vertGridLines[a]);delete this._vertGridLines[a]}},_getVerticalGridBorder:function(){if(this._vertGridBorder===null){this._vertGridBorder=this._getGridBorder({vertical:true})}return this._vertGridBorder},_getHorizontalGridBorder:function(){if(this._horzGridBorder===null){this._horzGridBorder=this._getGridBorder({horizontal:true})}return this._horzGridBorder},_getGridBorder:function(d){var a=new org.eclipse.swt.theme.ThemeValues(d);var b=qx.lang.String.toFirstUp(this._baseAppearance)+"-GridLine";var c=a.getCssColor(b,$[65]);a.dispose();var e=[0,0,0,0];c=c==$[7]?$[82]:c;if(d.horizontal){e[2]=1}else{if(d.vertical){e[1]=1}}return new org.eclipse.rwt.Border(e,$[72],c)},_getRowAppearance:function(){return this._baseAppearance+"-row"},setTopItem:function(g,a,d){this._topItem=g;if(d){var h=a-this._topItemIndex;this._topItemIndex=a;var f=h>0;h=Math.abs(h);if(h>=this._children.length){this._renderAll(true)}else{var e=this._children.length-h;var c=f?e:0;var b=f?h:e;this._switchRows(b);this._updateRows(c,h,true)}}else{this._topItemIndex=a}},renderAll:function(){this._renderAll(false)},renderItemQueue:function(a){for(var c in a){var d=a[c];var b=this._items.indexOf(d);if(b!==-1){this._renderRow(this._children[b],d)}}},renderItem:function(a){if(this._isCreated&&a!=null){var b=this._findRowByItem(a);if(b!=null){this._renderRow(b,a)}}},setScrollLeft:function(a){this._scrollLeft=a;if(this.isSeeable()){arguments.callee.base.call(this,a)}},findItemByRow:function(b){var a=this._children.indexOf(b);return a!==-1?this._items[a]:null},getHoverItem:function(){return this._hoverItem},setHoverItem:function(a){if(a){this._hoverElement=$[139]}this._setHoverItem(a)},_renderAll:function(b){if(!b){this._renderGridVertical()}var c=(new Date()).getTime();this._updateRows(0,this._children.length,b);var a=(new Date()).getTime()-c;if(this._postRender){this._postRender[0].call(this._postRender[1],a)}},_updateRowCount:function(){var a=this.getHeight();var b=Math.round((this.getHeight()/this._rowHeight)+0.5);while(this._children.length<b){var c=new org.eclipse.rwt.widgets.TreeRow(this.getParent());c.setAppearance(this._getRowAppearance());c.setZIndex(0);c.setWidth(this._rowWidth);c.setHeight(this._rowHeight);c.setBorder(this._rowBorder);c.setState($[185],this._config.linesVisible);this.add(c)}while(this._children.length>b){this._children[this._children.length-1].destroy()}this._items.length=this._children.length;this._updateRowsEvenState()},_updateRowsEvenState:function(){for(var a=0;a<this._children.length;a++){this._children[a].updateEvenState(this._topItemIndex+a)}},_findRowByItem:function(b){var a=this._items.indexOf(b);return a!==-1?this._children[a]:null},_updateRows:function(g,f,c){this._updateRowsEvenState();var b=this._topItem;var e=g+f;var d=0;while(b!=null&&d<this._children.length){if(d>=g&&d<=e){this._renderRow(this._children[d],b,c);this._items[d]=b}b=b.getNextItem();d++}for(var a=d;a<this._children.length;a++){this._renderRow(this._children[a],null,c);this._items[a]=null}},_renderRow:function(c,a,b){c.renderItem(a,this._config,this._isSelected(a),this._getHoverElement(a),b)},_switchRows:function(c){var a=this._children.slice(c);var e=this._items.slice(c);this._children=a.concat(this._children.slice(0,c));this._items=e.concat(this._items.slice(0,c));this._invalidateVisibleChildren();var d={locationY:true};for(var b=0;b<this._children.length;b++){this.getLayoutImpl().layoutChild(this._children[b],d)}},_onElementOver:function(c){var d=c.getTarget();var a=d===c.getRelatedTarget();if(d instanceof org.eclipse.rwt.widgets.TreeRow&&a&&this._hoverItem){var b=d.getTargetIdentifier(c);if(this._hoverElement!==b){this._hoverElement=b;this._setHoverItem(this._hoverItem)}}},_onRowOver:function(b){var c=b.getOriginalTarget();if(c instanceof org.eclipse.rwt.widgets.TreeRow){if(b.getType()===$[8]){this._hoverElement=null;this._setHoverItem(null)}else{this._hoverElement=c.getTargetIdentifier(b);var a=this.findItemByRow(c);if(a!==this._hoverItem){this._setHoverItem(a)}}}},_setHoverItem:function(a){var b=this._hoverItem;this._hoverItem=a;if(b!==a){this._renderAsync(b)}this._renderAsync(a)},_getHoverElement:function(b){var a=null;if(this._hoverItem===b){a=this._hoverElement}return a},_renderAsync:function(a){if(a!==null){this._asyncQueue[a.toHashCode()]=a;this._asyncTimer.start()}},_onAsyncTimer:function(){this._asyncTimer.stop();this.renderItemQueue(this._asyncQueue);this._asyncQueue={}},_isSelected:function(a){return this._selectionProvider[0].call(this._selectionProvider[1],a)},_applyHeight:function(b,a){arguments.callee.base.call(this,b,a);this._updateRowCount()},_afterAppear:function(){arguments.callee.base.call(this);this.setScrollLeft(this._scrollLeft)}}});
 namespace($[217]);org.eclipse.rwt.TreeRowContainerWrapper=function(){this._fixedColumns=0;this._container=[];this._container[0]=new org.eclipse.rwt.widgets.TreeRowContainer();this._container[1]=new org.eclipse.rwt.widgets.TreeRowContainer();this._config=org.eclipse.rwt.widgets.TreeRowContainer.createRenderConfig();this._width=0;this._splitOffset=0;this._rowWidth=0;this.addEventListener($[6],this._onRowOver,this);this.addEventListener($[8],this._onRowOver,this)};org.eclipse.rwt.TreeRowContainerWrapper.createInstance=function(){if(!this.prototype._protoInit){for(var a=0;a<this._CONTAINER_DELEGATES.length;a++){this._createContainerDelegater(this._CONTAINER_DELEGATES[a])}for(var a=0;a<this._CONTAINER_GETTER_DELEGATES.length;a++){this._createContainerGetterDelegater(this._CONTAINER_GETTER_DELEGATES[a])}this.prototype._protoInit=true}return new org.eclipse.rwt.TreeRowContainerWrapper()};org.eclipse.rwt.TreeRowContainerWrapper._createContainerDelegater=function(a){this.prototype[a]=function(){this._container[0][a].apply(this._container[0],arguments);this._container[1][a].apply(this._container[1],arguments)}};org.eclipse.rwt.TreeRowContainerWrapper._createContainerGetterDelegater=function(a){this.prototype[a]=function(){return this._container[0][a].apply(this._container[0],arguments)}};org.eclipse.rwt.TreeRowContainerWrapper._CONTAINER_DELEGATES=["setParent",$[228],"addEventListener","removeEventListener","setSelectionProvider","setHeight","setTop","setBackgroundColor","setBackgroundImage","setRowHeight","setTopItem","renderItem","setToolTip","renderItemQueue","setBaseAppearance"];org.eclipse.rwt.TreeRowContainerWrapper._CONTAINER_GETTER_DELEGATES=["getTop","getHeight","getHoverItem","getElement","getChildrenLength"];org.eclipse.rwt.TreeRowContainerWrapper.prototype={_protoInit:false,getSubContainer:function(a){return this._container[a]||null},setFixedColumns:function(a){this._fixedColumns=a;this._updateConfig()},getFixedColumns:function(){return this._fixedColumns},getRenderConfig:function(){return this._config},setPostRenderFunction:function(){},setWidth:function(a){this._width=a;this._layoutX()},getWidth:function(){return this._width},setRowWidth:function(a){this._rowWidth=a;this._layoutX()},setScrollLeft:function(a){this._container[1].setScrollLeft(a)},findItemByRow:function(b){var a=this._container[0].findItemByRow(b);if(a==null){a=this._container[1].findItemByRow(b)}return a},updateRowLines:function(){this._container[0].getRenderConfig().linesVisible=this._config.linesVisible;this._container[0].updateRowLines();this._container[1].getRenderConfig().linesVisible=this._config.linesVisible;this._container[1].updateRowLines()},renderAll:function(){this._updateConfig();this._container[0].renderAll();this._container[1].renderAll()},_updateConfig:function(){var b=this._container[0].getRenderConfig();var g=this._container[1].getRenderConfig();for(var e in this._config){if(this._config[e] instanceof Array){b[e]=this._config[e].concat();g[e]=this._config[e].concat()}else{b[e]=this._config[e];g[e]=this._config[e]}}g.hasCheckBoxes=false;var a=this._getColumnOrder();var d=0;if(a.length>this._fixedColumns){d=this._config.itemLeft[a[this._fixedColumns]]}else{d=this._width}for(var c=0;c<a.length;c++){var f=a[c];if(c<this._fixedColumns){g.itemWidth[f]=0}else{b.itemWidth[f]=0;g.itemLeft[f]-=d;g.itemImageLeft[f]-=d;g.itemTextLeft[f]-=d}}if(this._splitOffset!==d){this._splitOffset=d;this._layoutX()}},_layoutX:function(){var a=Math.min(this._splitOffset,this._width);this._container[0].setWidth(a);this._container[0].setRowWidth(a);this._container[1].setLeft(a);this._container[1].setWidth(this._width-a);this._container[1].setRowWidth(this._rowWidth-a)},_getColumnOrder:function(){var a=[];var d=this._config.itemLeft.concat();var b=d.concat().sort(function(g,f){return g-f});for(var c=0;c<b.length;c++){var e=d.indexOf(b[c]);a[c]=e;d[e]=null}return a},_onRowOver:function(b){var c=b.getCurrentTarget();for(var a=0;a<this._container.length;a++){if(this._container[a]!==c){this._container[a].setHoverItem(c.getHoverItem())}}}};
 namespace($[217]);org.eclipse.rwt.TreeUtil={setFixedColumns:function(a,c){var b=a.getRowContainer();if(b.setFixedColumns){b.setFixedColumns(c);a.update()}},createTreeRowContainer:function(b){var a;if(b.splitContainer){a=org.eclipse.rwt.TreeRowContainerWrapper.createInstance()}else{a=new org.eclipse.rwt.widgets.TreeRowContainer()}return a},getColumnByPageX:function(b,d){var c=b.getRowContainer();var e=c instanceof org.eclipse.rwt.TreeRowContainerWrapper;if(e){c=b.getRowContainer().getSubContainer(0)}var a=this._getColumnByPageX(c,d);if(a===-1&&e){c=b.getRowContainer().getSubContainer(1);a=this._getColumnByPageX(c,d)}return a},_getColumnByPageX:function(a,d){var c=a.getRenderConfig();var g=c.columnCount;var h=g===0?0:-1;var e=a.getFirstChild().getElement();var b=qx.bom.element.Location.getLeft(e);for(var f=0;h==-1&&f<g;f++){var j=b+c.itemLeft[f];if(d>=j&&d<j+c.itemWidth[f]){h=f}}return h}};