Re: wicket - opensocial integration (with example code)

2009-03-12 Thread Martin Funk

I'd even ask for one step further.
How about creating some quickstart with this and add it to wicketstuff.
Not quite sure, maybe this script could be turned into a reusable  
HeaderContributor.


mf
Am 12.03.2009 um 03:23 schrieb Igor Vaynberg:


Armin, maybe you should put this on our wiki page. threads like this
tend to get lost easily in all the traffic.

-igor

On Wed, Mar 11, 2009 at 4:28 PM, Armin Bauer  
armin.ba...@amiando.com wrote:

Hi everyone,

we are currently working on an opensocial application based on  
wicket.
Currently it is not possible to use the ajax functionality of  
wicket in an

opensocial app.

opensocial is based on iframes which run your html / js in a seperate
domain. If you build a widget for myspace.com for example, your  
html will
run in msappspace.com which will prevent ajax call due to cross  
domain

browser security. Luckily there is a opensocial method
gadgets.io.makeRequest to pull xml content from your backend  
which is
proxied through the opensocial container and basically works like  
an ajax

request.

so i created a bridge which replaces the XHR of wicket-ajax.js with  
an

implementation based on makeRequest. Without further ado:

script type=text/javascript

Wicket.Ajax.createTransport = function() {
  return {

  open: function(method, url, async) {
  this.url = url;
  },

  setRequestHeader: function(key, value) {

  },
send: function(body) {
  var req_params = new Object();
  req_params[gadgets.io.RequestParameters.CONTENT_TYPE] =
gadgets.io.ContentType.TEXT;
  var req = gadgets.io.makeRequest(http://your.server.com; +
this.url +  + body, this.callback.bind(this), req_params);
  },
callback: function(data) {
  this.responseText = data.text;
  this.status = 200;
  this.readyState = 4;
  this.onreadystatechange();
  },
getResponseHeader: function(key) {
  return null;
  },
abort: function() {
}
};
}

/script

By including this script below your wicket-ajax script in the  
opensocial app
you can use finally use ajax functionality directly on the canvas.  
It should
work completely transparent so no changes in your wicket code  
should be
required. Developing / porting wicket code to opensocial apps  
should be a

lot easier now :)

Note that this example does not support error handling, headers,  
aborting
and GET request also do not work completely. Adding this  
functionality
should be easy however. Feel free to use / modify / publish the  
code as you

like.

Best Regards,
Armin

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



wicket - opensocial integration (with example code)

2009-03-11 Thread Armin Bauer

Hi everyone,

we are currently working on an opensocial application based on wicket. 
Currently it is not possible to use the ajax functionality of wicket in 
an opensocial app.


opensocial is based on iframes which run your html / js in a seperate 
domain. If you build a widget for myspace.com for example, your html 
will run in msappspace.com which will prevent ajax call due to cross 
domain browser security. Luckily there is a opensocial method 
gadgets.io.makeRequest to pull xml content from your backend which is 
proxied through the opensocial container and basically works like an 
ajax request.


so i created a bridge which replaces the XHR of wicket-ajax.js with an 
implementation based on makeRequest. Without further ado:


script type=text/javascript

Wicket.Ajax.createTransport = function() {
   return {

   open: function(method, url, async) {
   this.url = url;
   },

   setRequestHeader: function(key, value) {

   },
  
   send: function(body) {

   var req_params = new Object();
   req_params[gadgets.io.RequestParameters.CONTENT_TYPE] = 
gadgets.io.ContentType.TEXT;
   var req = gadgets.io.makeRequest(http://your.server.com; + 
this.url +  + body, this.callback.bind(this), req_params);

   },
  
   callback: function(data) {

   this.responseText = data.text;
   this.status = 200;
   this.readyState = 4;
   this.onreadystatechange();
   },
  
   getResponseHeader: function(key) {

   return null;
   },
  
   abort: function() {
  
   }
  
   };

}

/script

By including this script below your wicket-ajax script in the opensocial 
app you can use finally use ajax functionality directly on the canvas. 
It should work completely transparent so no changes in your wicket code 
should be required. Developing / porting wicket code to opensocial apps 
should be a lot easier now :)


Note that this example does not support error handling, headers, 
aborting and GET request also do not work completely. Adding this 
functionality should be easy however. Feel free to use / modify / 
publish the code as you like.


Best Regards,
Armin

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: wicket - opensocial integration (with example code)

2009-03-11 Thread Igor Vaynberg
Armin, maybe you should put this on our wiki page. threads like this
tend to get lost easily in all the traffic.

-igor

On Wed, Mar 11, 2009 at 4:28 PM, Armin Bauer armin.ba...@amiando.com wrote:
 Hi everyone,

 we are currently working on an opensocial application based on wicket.
 Currently it is not possible to use the ajax functionality of wicket in an
 opensocial app.

 opensocial is based on iframes which run your html / js in a seperate
 domain. If you build a widget for myspace.com for example, your html will
 run in msappspace.com which will prevent ajax call due to cross domain
 browser security. Luckily there is a opensocial method
 gadgets.io.makeRequest to pull xml content from your backend which is
 proxied through the opensocial container and basically works like an ajax
 request.

 so i created a bridge which replaces the XHR of wicket-ajax.js with an
 implementation based on makeRequest. Without further ado:

 script type=text/javascript

 Wicket.Ajax.createTransport = function() {
   return {

       open: function(method, url, async) {
           this.url = url;
       },

       setRequestHeader: function(key, value) {

       },
             send: function(body) {
           var req_params = new Object();
           req_params[gadgets.io.RequestParameters.CONTENT_TYPE] =
 gadgets.io.ContentType.TEXT;
           var req = gadgets.io.makeRequest(http://your.server.com; +
 this.url +  + body, this.callback.bind(this), req_params);
       },
             callback: function(data) {
           this.responseText = data.text;
           this.status = 200;
           this.readyState = 4;
           this.onreadystatechange();
       },
             getResponseHeader: function(key) {
           return null;
       },
             abort: function() {
             }
     };
 }

 /script

 By including this script below your wicket-ajax script in the opensocial app
 you can use finally use ajax functionality directly on the canvas. It should
 work completely transparent so no changes in your wicket code should be
 required. Developing / porting wicket code to opensocial apps should be a
 lot easier now :)

 Note that this example does not support error handling, headers, aborting
 and GET request also do not work completely. Adding this functionality
 should be easy however. Feel free to use / modify / publish the code as you
 like.

 Best Regards,
 Armin

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org