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 >
