Author: psharples
Date: Wed Oct 27 08:29:11 2010
New Revision: 1027854

URL: http://svn.apache.org/viewvc?rev=1027854&view=rev
Log:
Added preferences getter/setter fix for IE9 beta

Modified:
    incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js

Modified: incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js
URL: 
http://svn.apache.org/viewvc/incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js?rev=1027854&r1=1027853&r2=1027854&view=diff
==============================================================================
--- incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js (original)
+++ incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js Wed Oct 27 
08:29:11 2010
@@ -60,11 +60,18 @@ WidgetPreferences = new function WidgetP
                        eval("Widget.preferences.__defineGetter__('"+key+"', 
function(){return Widget.preferences.getItem('"+key+"')})");
                        eval("Widget.preferences.__defineSetter__('"+key+"', 
function(v){return Widget.preferences.setItem('"+key+"',v)})");
                        eval("Widget.preferences.prefs."+key+"=pref");
-            }
-            // Catch IE 8 error. See WOOKIE-44 
-            catch(err){
-               eval("Widget.preferences." + key + "='" + value + "'");
-                               eval("Widget.preferences.prefs." + key + 
"=pref");
+               } 
+               catch(err){
+                       // cant use __defineGetter__ so try to setup for IE9
+                       try{
+                               
eval("Object.defineProperty(Widget.preferences,'" + key + "', {get: function 
get() { return Widget.preferences.getItem('"+key+"');},set: function set(value) 
{Widget.preferences.setItem('"+key+"',value)}});");
+                               eval("Widget.preferences.prefs."+key+"=pref");
+                       }
+                       catch(err){
+                               // Catch IE 8 error. See WOOKIE-44
+                               eval("Widget.preferences." + key + "='" + value 
+ "'");
+                               eval("Widget.preferences.prefs." + key + 
"=pref");
+                       }
             }
         }
                this.prefs[key] = pref;
@@ -98,8 +105,8 @@ WidgetPreferences = new function WidgetP
 /*
  * Widget object
  */
-var Widget = { 
-       instanceid_key : null,  
+var Widget = {
+       instanceid_key : null,
        proxyUrl : null,        
        // this should be assigned by the calling JS app
        onSharedUpdate : null,
@@ -163,14 +170,21 @@ var Widget = {    
             obj = map[i];
             key = obj["dkey"];
             try{
-                               
eval("Widget.preferences.__defineGetter__('"+key+"', function(){return 
Widget.preferences.getItem('"+key+"')})");
+               eval("Widget.preferences.__defineGetter__('"+key+"', 
function(){return Widget.preferences.getItem('"+key+"')})");
                eval("Widget.preferences.__defineSetter__('"+key+"', 
function(v){return Widget.preferences.setItem('"+key+"',v)})");
                eval("this.preferences.prefs."+key+"=obj");
             }
-            // Catch IE 8 error. See WOOKIE-44
             catch(err){
-               eval("Widget.preferences.setItem('" + key + "','" + 
obj["dvalue"] + "')");
-               eval("Widget.preferences.getItem('" + key + "') == '" + 
obj["dvalue"] + "'");
+               // cant use __defineGetter__ so try to setup for IE9
+               try{
+                       eval("Object.defineProperty(Widget.preferences,'" + key 
+ "', {get: function get() { return 
Widget.preferences.getItem('"+key+"');},set: function set(value) 
{Widget.preferences.setItem('"+key+"',value)}});");
+                       eval("this.preferences.prefs."+key+"=obj");
+               }
+               catch(err){
+                       // Catch IE 8 error. See WOOKIE-44
+                       eval("Widget.preferences.setItem('" + key + "','" + 
obj["dvalue"] + "')");
+                       eval("Widget.preferences.getItem('" + key + "') == '" + 
obj["dvalue"] + "'");
+               }
             }
                }
                this.preferences.calcLength();


Reply via email to