Author: lindner
Date: Mon Mar 24 04:51:46 2008
New Revision: 640389

URL: http://svn.apache.org/viewvc?rev=640389&view=rev
Log:
Add enum support to jsoncontainer / add gender to xml state

Modified:
    incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
    
incubator/shindig/trunk/javascript/samplecontainer/examples/SocialHelloWorld.xml
    incubator/shindig/trunk/javascript/samplecontainer/state-basicfriendlist.xml

Modified: incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js?rev=640389&r1=640388&r2=640389&view=diff
==============================================================================
--- incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js (original)
+++ incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js Mon Mar 24 
04:51:46 2008
@@ -41,11 +41,24 @@
       opensocial.Organization);
   JsonPerson.constructArrayObject(opt_params, "urls", opensocial.Url);
 
+  JsonPerson.constructEnum(opt_params, "gender");
+  JsonPerson.constructEnum(opt_params, "smoker");
+  JsonPerson.constructEnum(opt_params, "drinker");
+
   opensocial.Person.call(this, opt_params, opt_params['isOwner'],
       opt_params['isViewer']);
 };
 JsonPerson.inherits(opensocial.Person);
 
+// Converts the fieldName into an instance of a opensocial.Enum
+JsonPerson.constructEnum = function(map, fieldName) {
+  var fieldValue = map[fieldName];
+  if (fieldValue) {
+    map[fieldName] = new opensocial.Enum(fieldValue.key, 
fieldValue.displayValue);
+  }
+}
+
+// Converts the fieldName into an instance of the specified object
 JsonPerson.constructObject = function(map, fieldName, className) {
   var fieldValue = map[fieldName];
   if (fieldValue) {

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java?rev=640389&r1=640388&r2=640389&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
 Mon Mar 24 04:51:46 2008
@@ -9,6 +9,7 @@
 import org.apache.shindig.social.opensocial.model.Name;
 import org.apache.shindig.social.opensocial.model.Person;
 import org.apache.shindig.social.opensocial.model.Phone;
+import org.apache.shindig.social.opensocial.model.Enum;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
@@ -229,6 +230,16 @@
         phones.add(new Phone(turnEvil(phone), null));
         person.setPhoneNumbers(phones);
       }
+
+      Node genderItem = attributes.getNamedItem("gender");
+      if (genderItem != null) {
+        String gender = genderItem.getNodeValue();
+        if ("F".equals(gender)) {
+          person.setGender(new Enum<Enum.Gender>(Enum.Gender.FEMALE, 
"Female"));
+        } else if ("M".equals(gender)) {
+          person.setGender(new Enum<Enum.Gender>(Enum.Gender.MALE, "Male"));
+        }
+      } 
 
       allPeople.put(id, person);
       friendIdMap.put(id, getFriends(personNode));

Modified: 
incubator/shindig/trunk/javascript/samplecontainer/examples/SocialHelloWorld.xml
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/examples/SocialHelloWorld.xml?rev=640389&r1=640388&r2=640389&view=diff
==============================================================================
--- 
incubator/shindig/trunk/javascript/samplecontainer/examples/SocialHelloWorld.xml
 (original)
+++ 
incubator/shindig/trunk/javascript/samplecontainer/examples/SocialHelloWorld.xml
 Mon Mar 24 04:51:46 2008
@@ -73,15 +73,15 @@
          if (count == 0) {
            //continue;
          }
-
+         
          html += '<div class="person">';
          html += '<div class="bubble c' + count % numberOfStyles + '">' + 
hellos[count % hellos.length];
-         html += '<div class="name">' + allPeople[i].getDisplayName() + ' (' + 
count + ')';
+         html += '<div class="name">' + allPeople[i].getDisplayName() + ' (' + 
count + ') ' + 
allPeople[i].getField(opensocial.Person.Field.GENDER).getDisplayValue();
          html += '</div></div>';
 
-         if (allPeople[i].getField('thumbnailUrl')
-             && allPeople[i].getField('thumbnailUrl').indexOf('null') == -1) {
-           html += '<img src="' + allPeople[i].getField('thumbnailUrl') + 
'"/>';
+         if (allPeople[i].getField(opensocial.Person.Field.THUMBNAIL_URL)
+             && 
allPeople[i].getField(opensocial.Person.Field.THUMBNAIL_URL).indexOf('null') == 
-1) {
+           html += '<img src="' + 
allPeople[i].getField(opensocial.Person.Field.THUMBNAIL_URL) + '"/>';
          } else {
            html += '<img 
src="/gadgets/files/samplecontainer/examples/nophoto.gif"/>';
          }

Modified: 
incubator/shindig/trunk/javascript/samplecontainer/state-basicfriendlist.xml
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/state-basicfriendlist.xml?rev=640389&r1=640388&r2=640389&view=diff
==============================================================================
--- 
incubator/shindig/trunk/javascript/samplecontainer/state-basicfriendlist.xml 
(original)
+++ 
incubator/shindig/trunk/javascript/samplecontainer/state-basicfriendlist.xml 
Mon Mar 24 04:51:46 2008
@@ -1,13 +1,13 @@
 <container>
   <people>
-    <person id="john.doe" name="John Doe">
+    <person id="john.doe" name="John Doe" gender="M">
       <friend>jane.doe</friend>
       <friend>george.doe</friend>
     </person>
-    <person id="jane.doe" name="Jane Doe" phone="867-5309">
+    <person id="jane.doe" name="Jane Doe" phone="867-5309" gender="F">
       <friend>john.doe</friend>
     </person>
-    <person id="george.doe" name="George Doe">
+    <person id="george.doe" name="George Doe" gender="M">
       <friend>john.doe</friend>
     </person>
   </people>


Reply via email to