On 22 Jun 2012, at 18:11, Franklin, Matthew B. wrote:

> On 6/19/12 10:33 AM, "Scott Wilson" <[email protected]> wrote:
> 
>> It was great seeing the Embedded experiences demo at the Rave Hackleton
>> last week; this is a proposed feature for OpenSocial whereby widgets can
>> be embedded into activity streams and other kinds of feeds with some
>> context data, and looks like a really nice feature for users.
>> 
>> I had a look at the spec[1], and it actually wouldn't need any new code
>> in Wookie to work fine for W3C Widgets too, and minimal additions to the
>> W3C provider in Rave.
>> 
>> E.g., an embed referencing a widget identifier rather than OpenSocial XML
>> file looks like this:
>> 
>> <embed>
>>      <gadget>http://wookie.apache.org/widgets/youtube</gadget>
>>      <context>9gW2YVBrNVA</context>
>> </embed>
>> 
>> In this case, we want the YouTube widget to be embedded, playing the
>> specified movie.
>> 
>> To render, we can just push the context into the widget using widget
>> preferences; in WookieWidgetService in rave-w3c-provider it would look
>> like this:
>> 
>>   private W3CWidget getWidgetForViewer(Widget widget, String
>> sharedDataKey, User viewer, String eeContextData){
>>      try {
>>           connectorService = getWookieConnectorService(wookieServerUrl,
>> wookieApiKey, sharedDataKey);
>>           org.apache.wookie.connector.framework.User user = new
>> org.apache.wookie.connector.framework.User(String.valueOf(viewer.getUserna
>> me()), viewer.getUsername());
>>           connectorService.setCurrentUser(user);
>> 
>>           WidgetInstance instance =
>> connectorService.getOrCreateInstance(widget.getUrl());
>>          // Now push the context data in for embedded experiences//
>>           connectorService.setPropertyForInstance(instance, false,
>> "org.opensocial.ee.context", eeContext);
>>           return createWidget(instance);
>> 
>> The Widget can then call
>> widget.preferences.getItem("org.opensocial.ee.context") to check for the
>> movie id.
>> 
>> So if/when Rave does add support for embedded experiences, we can do so
>> across widget types pretty trivially.
> 
> Cool.  The only question I have is how would the rave javascript know
> whether or not to render this as an OS gadget or wookie?

If the actual stream was rendered by the Rave java code it could look up the 
value of <gadget> against the Rave widget repository - that would then return 
the widget type.

> 
>> 
>> S
>> 
>> [1] http://docs.opensocial.org/display/OSD/Embedded+Experiences
> 

Reply via email to