You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2012/05/30 16:58:58 UTC
svn commit: r1344293 - in /incubator/wookie/trunk:
WebContent/WEB-INF/dwr.xml features/wave/wave.js
src/org/apache/wookie/feature/wave/IWaveAPI.java
src/org/apache/wookie/feature/wave/WaveAPIImpl.java
Author: scottbw
Date: Wed May 30 14:58:57 2012
New Revision: 1344293
URL: http://svn.apache.org/viewvc?rev=1344293&view=rev
Log:
Added wave.getHost() and wave.getHosts() methods to the Wave API. See WOOKIE-66.
Modified:
incubator/wookie/trunk/WebContent/WEB-INF/dwr.xml
incubator/wookie/trunk/features/wave/wave.js
incubator/wookie/trunk/src/org/apache/wookie/feature/wave/IWaveAPI.java
incubator/wookie/trunk/src/org/apache/wookie/feature/wave/WaveAPIImpl.java
Modified: incubator/wookie/trunk/WebContent/WEB-INF/dwr.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/WebContent/WEB-INF/dwr.xml?rev=1344293&r1=1344292&r2=1344293&view=diff
==============================================================================
--- incubator/wookie/trunk/WebContent/WEB-INF/dwr.xml (original)
+++ incubator/wookie/trunk/WebContent/WEB-INF/dwr.xml Wed May 30 14:58:57 2012
@@ -24,7 +24,9 @@
<include method="state"/>
<include method="submitDelta"/>
<include method="getParticipants"/>
- <include method="getViewer"/>
+ <include method="getViewer"/>
+ <include method="getHost"/>
+ <include method="getHosts"/>
</create>
<create creator="new" javascript="OAuthConnector" scope="application">
Modified: incubator/wookie/trunk/features/wave/wave.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/features/wave/wave.js?rev=1344293&r1=1344292&r2=1344293&view=diff
==============================================================================
--- incubator/wookie/trunk/features/wave/wave.js (original)
+++ incubator/wookie/trunk/features/wave/wave.js Wed May 30 14:58:57 2012
@@ -81,6 +81,7 @@
*/
wave = new function Wave(){
this.participants = null;
+ this.hosts = null;
this.viewer = null;
this.callback = null;
this.pcallback = null;
@@ -94,6 +95,8 @@
dwr.engine.beginBatch();
WaveImpl.getParticipants(Widget.instanceid_key, this.setParticipants);
WaveImpl.getViewer(Widget.instanceid_key, this.setViewer);
+ WaveImpl.getHost(Widget.instanceid_key, this.setHost);
+ WaveImpl.getHosts(Widget.instanceid_key, this.setHosts);
WaveImpl.state(Widget.instanceid_key, this.setState);
dwr.engine.endBatch({async:false});
dwr.engine.setActiveReverseAjax(true);
@@ -116,6 +119,19 @@
}
}
+ this.setHosts = function(parts){
+ var json = parts;
+ if (json && json!=null && json!=""){
+ var obj = eval('('+json+')');
+ wave.hosts = obj.Participants;
+ for(participant in wave.hosts){
+ wave.hosts[participant].getDisplayName = function(){return this.participant_display_name}
+ wave.hosts[participant].getThumbnailUrl = function(){return this.participant_thumbnail_url};
+ wave.hosts[participant].getId = function(){return this.participant_id};
+ }
+ }
+ }
+
this.setViewer = function(v){
if (v && v!=null && v!=""){
var vobj = eval('('+v+')');
@@ -125,6 +141,16 @@
wave.viewer.getId = function(){return this.participant_id};
}
}
+
+ this.setHost = function(v){
+ if (v && v!=null && v!=""){
+ var vobj = eval('('+v+')');
+ wave.host = vobj.Participant;
+ wave.host.getDisplayName = function(){return this.participant_display_name};
+ wave.host.getThumbnailUrl = function(){return this.participant_thumbnail_url};
+ wave.host.getId = function(){return this.participant_id};
+ }
+ }
//////////////////////////////////////////////////
@@ -175,7 +201,11 @@
}
this.getHost = function(){
- return null; // NOT IMPLEMENTED
+ return this.host;
+ }
+
+ this.getHosts = function(){
+ return this.hosts;
}
this.getParticipantById = function(id){
Modified: incubator/wookie/trunk/src/org/apache/wookie/feature/wave/IWaveAPI.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/feature/wave/IWaveAPI.java?rev=1344293&r1=1344292&r2=1344293&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/feature/wave/IWaveAPI.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/feature/wave/IWaveAPI.java Wed May 30 14:58:57 2012
@@ -56,5 +56,13 @@ public interface IWaveAPI{
* @return
*/
public String getHost(String id_key);
+
+ /**
+ * Returns the hosts (owners) of the widget, typically the
+ * owner of the context in which it has been instantiated
+ * @param id_key
+ * @return
+ */
+ public String getHosts(String id_key);
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/feature/wave/WaveAPIImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/feature/wave/WaveAPIImpl.java?rev=1344293&r1=1344292&r2=1344293&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/feature/wave/WaveAPIImpl.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/feature/wave/WaveAPIImpl.java Wed May 30 14:58:57 2012
@@ -71,8 +71,12 @@ public class WaveAPIImpl implements IFea
/* (non-Javadoc)
* @see org.apache.wookie.feature.wave.IWaveAPI#getHost(java.lang.String)
*/
- public String getHost(String idKey) {
- // TODO FIXME see WOOKIE-66
+ public String getHost(String id_key) {
+ SharedContext sharedContext = this.getSharedContext(id_key);
+ if (sharedContext != null){
+ IParticipant host = sharedContext.getHost();
+ if (host != null) return ParticipantHelper.createJSONParticipantDocument(host);
+ }
return null;
}
@@ -105,29 +109,41 @@ public class WaveAPIImpl implements IFea
* @see org.apache.wookie.feature.wave.IWaveAPI#getParticipants(java.lang.String)
*/
public String getParticipants(String id_key) {
- HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
- Messages localizedMessages = LocaleHandler.localizeMessages(request);
- if(id_key == null) return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
- if(widgetInstance==null) return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
- IParticipant[] participants = new SharedContext(widgetInstance).getParticipants();
- return ParticipantHelper.createJSONParticipantsDocument(participants);
+ SharedContext sharedContext = this.getSharedContext(id_key);
+ if (sharedContext != null){
+ return ParticipantHelper.createJSONParticipantsDocument(sharedContext.getParticipants());
+ } else {
+ Messages localizedMessages = LocaleHandler.localizeMessages(WebContextFactory.get().getHttpServletRequest());
+ return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
+ }
}
+
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.feature.wave.IWaveAPI#getHosts(java.lang.String)
+ */
+ public String getHosts(String id_key) {
+ SharedContext sharedContext = this.getSharedContext(id_key);
+ if (sharedContext != null){
+ return ParticipantHelper.createJSONParticipantsDocument(sharedContext.getHosts());
+ } else {
+ Messages localizedMessages = LocaleHandler.localizeMessages(WebContextFactory.get().getHttpServletRequest());
+ return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
+ }
+ }
+
/* (non-Javadoc)
* @see org.apache.wookie.feature.wave.IWaveAPI#getViewer(java.lang.String)
*/
public String getViewer(String id_key) {
- HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
- Messages localizedMessages = LocaleHandler.localizeMessages(request);
- if(id_key == null) return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
- IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
- IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
- if(widgetInstance == null) return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
- IParticipant participant = new SharedContext(widgetInstance).getViewer(widgetInstance);
- if (participant != null) return ParticipantHelper.createJSONParticipantDocument(participant); //$NON-NLS-1$
- return null; // no viewer i.e. widget is anonymous
+ SharedContext sharedContext = this.getSharedContext(id_key);
+ if (sharedContext != null){
+ return ParticipantHelper.createJSONParticipantDocument(sharedContext.getViewer());
+ } else {
+ Messages localizedMessages = LocaleHandler.localizeMessages(WebContextFactory.get().getHttpServletRequest());
+ return localizedMessages.getString("WidgetAPIImpl.0"); //$NON-NLS-1$
+ }
}
/* (non-Javadoc)
@@ -146,5 +162,14 @@ public class WaveAPIImpl implements IFea
Notifier.notifySiblings(widgetInstance);
return "okay"; //$NON-NLS-1$
}
+
+ private SharedContext getSharedContext(String id_key){
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidgetInstance widgetInstance = persistenceManager.findWidgetInstanceByIdKey(id_key);
+ if (widgetInstance != null){
+ return new SharedContext(widgetInstance);
+ }
+ return null;
+ }
}