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? > >S > >[1] http://docs.opensocial.org/display/OSD/Embedded+Experiences
