Fork me on GitHub

RAT (Release Audit Tool) results

The following document contains the results of RAT (Release Audit Tool).

*****************************************************
Summary
-------
Generated at: 2013-11-13T11:31:16-05:00
Notes: 0
Binaries: 0
Archives: 0
Standards: 18

Apache Licensed: 1
Generated Documents: 0

JavaDocs are generated and so license header is optional
Generated files do not required license headers

17 Unknown Licenses

*******************************

Unapproved licenses:

  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-path/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-type/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-with-views/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/embedded-experiences/YouTube/YouTubePlayer.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/makeRequest.js
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth10a/YouTube/YouTube.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth2/google/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.html
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.js
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/preferences/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/selection/selection-listener/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/gadget.xml
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.css
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.html
  /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.js

*******************************

Archives:

*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require AL headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc will be marked N
  AL    /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/pom.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-path/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-type/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-with-views/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/embedded-experiences/YouTube/YouTubePlayer.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/makeRequest.js
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth10a/YouTube/YouTube.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth2/google/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.html
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.js
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/preferences/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/selection/selection-listener/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/gadget.xml
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.css
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.html
 !????? /Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.js
 
 *****************************************************
 Printing headers for files without AL header...
 
 
 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-path/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Actions by Path">
    <Require feature="dynamic-height"></Require>
    <Require feature="actions">
      <Param name="action-contributions">
        <![CDATA[
          <actions>
            <action id="org-opensocial-explorer-red" path="container/menus/actions" label="Red Action" tooltip="Execute the red action" />
            <action id="org-opensocial-explorer-yellow" path="container/menus/actions" label="Yellow Action" tooltip="Execute the yellow action" />
            <action id="org-opensocial-explorer-green" path="container/menus/actions" label="Green Action" tooltip="Execute the green action" />
          </actions>
        ]]>
      </Param>
    </Require>
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
      <script type="text/javascript">
        function initActions() {
          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-red",
            callback: function(){execute("red")}
          });

          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-yellow",
            callback: function(){execute("yellow")}
          });

          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-green",
            callback: function(){execute("green")}
          });
          
          // Adjust the height
          gadgets.window.adjustHeight();
        }
        
        function execute(color) {
          document.body.style.backgroundColor=color;
        }
        
        // Register the function to run with the gadget is done loading
        gadgets.util.registerOnLoadHandler(initActions);
      </script>
      <h2>Click on an action to change the background color</h2>
    ]]>
  </Content>
</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-by-type/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Actions by Type">
    <Require feature="dynamic-height"></Require>
    <Require feature="actions">
      <Param name="action-contributions">
        <![CDATA[
          <actions>
            <action id="org-opensocial-explorer-person" dataType="opensocial.Person" label="Person Action" tooltip="Execute the person action" />
            <action id="org-opensocial-explorer-message" dataType="opensocial.Message" label="Message Action" tooltip="Execute the message action" />
            <action id="org-opensocial-explorer-file" dataType="opensocial.File" label="File Action" tooltip="Execute the file action" />
          </actions>
        ]]>
      </Param>
    </Require>
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
      <script type="text/javascript">
        function initActions() {
          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-person",
            callback: execute
          });

          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-message",
            callback: execute
          });

          gadgets.actions.updateAction({
            id: "org-opensocial-explorer-file",
            callback: execute
          });
        }
        
        function execute(selection) {
          var div = document.getElementById("selection");
          div.innerHTML = gadgets.json.stringify(selection);
        }
        
        // Register the function to run with the gadget is done loading
        gadgets.util.registerOnLoadHandler(initActions);
      </script>
      <div>Run an action bound to a type to see the information for the selected object(s) of that type:</div>
      <div id="selection"></div>
    ]]>
  </Content>
</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/actions/actions-with-views/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Actions with Views">
    <Require feature="dynamic-height"></Require>
    <Require feature="actions">
      <Param name="action-contributions">
        <![CDATA[
          <actions>
            <action id="org-opensocial-explorer-red" path="container/menus/actions" label="Red Action" tooltip="Execute the red action" view="red"/>
            <action id="org-opensocial-explorer-yellow" path="container/menus/actions" label="Yellow Action" tooltip="Execute the yellow action" view="yellow"/>
            <action id="org-opensocial-explorer-green" path="container/menus/actions" label="Green Action" tooltip="Execute the green action" view="green"/>
          </actions>
        ]]>
      </Param>
    </Require>
  </ModulePrefs>
  <Content type="html" view="default,red,yellow,green">
    <![CDATA[
      <script type="text/javascript">
        function initActions() {
          gadgets.window.adjustHeight();
        }
        
        // Register the function to run with the gadget is done loading
        gadgets.util.registerOnLoadHandler(initActions);
      </script>
	  <h2>Click on an action to change the background color</h2>
	]]>
  </Content>
  <Content type="html" view="red">
    <![CDATA[
      <script type="text/javascript">
        document.body.style.backgroundColor="red";
      </script>
    ]]>
  </Content>
  <Content type="html" view="yellow">
    <![CDATA[
      <script type="text/javascript">
        document.body.style.backgroundColor="yellow";
      </script>
    ]]>
  </Content>
  <Content type="html" view="green">
    <![CDATA[
      <script type="text/javascript">
        document.body.style.backgroundColor="green";
      </script>
    ]]>
  </Content>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/embedded-experiences/YouTube/YouTubePlayer.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
	<ModulePrefs title="YouTube Player" description="YouTube Player Using Embedded Experiences" height="400" width="700">
		<Require feature="embedded-experiences"></Require>
		<Require feature="dynamic-height"></Require>
	</ModulePrefs>
	<Content type="html">
      <![CDATA[
        <script type="text/javascript">
     
          gadgets.util.registerOnLoadHandler(function() {
            //Register this listener so we can get the embedded experience context data
            gadgets.ee.registerContextListener(function(context) {
              showVideo(context);
            });
          });
     
          function showVideo(context){
            document.getElementById("player").innerHTML = '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/' + context + '?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' + context + '?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>';
     	    gadgets.window.adjustHeight();
          };
        </script>

        <div id="player">
        </div>
      ]]>
	</Content>
</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Make Request Example">
    <Require feature="dynamic-height"></Require>
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
      <script type="text/javascript" src="makeRequest.js"></script>
      <h4>Select an NHL team and press "GO!" to see more information</h4>
      <select id="team">
        <option value="BOS">Boston</option>
        <option value="PHI">Philadelphia</option>
        <option value="TBL">Tampa Bay</option>
        <option value="CHI">Chicago</option>
        <option value="VAN">Vancouver</option>
        <option value="SJS">San Jose</option>
      </select>
      <button type="button" onclick="lookupTeam()">GO!</button>
      <br />
      Team ID: <span id="teamID"></span><br />
      Team Name: <span id="name"></span><br />
      Conference: <span id="conference"></span><br />
      Division: <span id="division"></span>
      <script type="text/javascript">
        gadgets.util.registerOnLoadHandler(function(){
          gadgets.window.adjustHeight();
        });
      </script>
    ]]>
  </Content>

</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/makeRequest/makeRequest.js
 =======================================================================
function lookupTeam() {
  var index = document.getElementById('team').selectedIndex;
  var options = document.getElementById('team').options;
  var teamID = options[index].value;
  var params = {};
  params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
  var url = 'http://www.nicetimeonice.com/api/teams/' + teamID;
  gadgets.io.makeRequest(url, function(response) {
    if (response.errors.length == 0) {
      var data = response.data;
      document.getElementById('teamID').innerHTML = data.teamID;
      document.getElementById('name').innerHTML = data.name;
      document.getElementById('conference').innerHTML = data.conference;
      document.getElementById('division').innerHTML = data.division;
      gadgets.window.adjustHeight();
    } else {
      gadgets.error('There was an error making the request.');
    }
  }, params);
}

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth10a/YouTube/YouTube.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="YouTube Gadget" width="700" scrolling="true">
    <Require feature="dynamic-height" />
    <Require feature="embedded-experiences" />
    <Require feature="oauthpopup" />
    <Require feature="tabs" />
    <OAuth>
      <Service name="YouTube">
        <Request url="https://www.google.com/accounts/OAuthGetRequestToken?scope=http://gdata.youtube.com" />
        <Access url="https://www.google.com/accounts/OAuthGetAccessToken" />
        <Authorization url="https://www.google.com/accounts/OAuthAuthorizeToken?oauth_callback=http://sandbox.opensocial2.org:8080gadgets/oauthcallback" />
      </Service>
    </OAuth>
  </ModulePrefs>
  <Content type="html" view="embedded,default">
      <![CDATA[
        <style type="text/css">
          .youTubeWrapper{
            font: 75%/1.5 Arial,Helvetica,sans-serif;
          }
          
          #comments{
            margin-left: -45px;
          }
          
          .comment{
            background-color: #F4F5F6;
          border-bottom: 1px solid #FFFFFF;
          list-style-type: none;
          overflow: hidden;
          padding: 7px;
          }
          
          .comment .commentAvatar{
            float: left;
          margin-right: 5px;
          }
          
          .comment .commentAvatar img{
            width: 24px;
          }
          
          .comment .commentMeta a{
            font-weight: bold;
            color: #000000;
          }
          
          .comment .commentMeta {
            color: #666666;

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/oauth/oauth2/google/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="Demo OAuth2 Authorization Code Gadget (Simple pull from Google Contacts)">
    <OAuth2>
      <Service name="googleAPI" scope="https://www.google.com/m8/feeds/">
      </Service>
    </OAuth2>
    <Require feature="oauthpopup" />
    <!-- <Preload authz="oauth2" oauth_service_name="googleAPI" href="https://www.google.com/m8/feeds/contacts/default/full" 
      /> -->
  </ModulePrefs>
  <Content type="html">
      <![CDATA[

    <style>
    #main {
        margin: 0px;
        padding: 0px;
        font-size: small;
    }
    </style>

    <div id="main" style="display: none">
    </div>

    <div id="approval" style="display: none">
      <a href="#" id="personalize">Personalize this gadget</a>
      <ol>
        <b><u>In order to use this Demo Gadget you must</u></b> 
        <li>Have or create a Google account and know your userid and password</li>
        <li>Register a new application at <a href="https://code.google.com/apis/console">https://code.google.com/apis/console</a></li>
        <li>Make sure your app's "Redirect URIs" applies to your shindig environment (e.g. http://localhost:8080/gadgets/oauth2callback)</li>
        <li>Update the Google client "Client ID" and "Client Secret" in the OAuth2 persistence (default is <code>config/oauth2.json</code>)</li>
        <li>Restart the server</li>
        <li>Click the link above to initiate the authorization process</li>
      </ol>    
     
    </div>

    <div id="waiting" style="display: none">
      Please click
      <a href="#" id="approvaldone">I've approved access</a>
      once you've approved access to your data.
    </div>

    <div id="error" style="display: none;background-color:yellow;font-size:xx-small;" title="An error occured processing your request">
       <div id="error_code"><u>code:</u></div>
       <div id="error_uri"><u>uri:</u></div>
       <div id="error_description"><u>description:</u></div>
       <div id="error_explanation"><u>explanation:</u></div>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Open Views Demo">
    <Require feature="dynamic-height"></Require>
    <Optional feature="open-views"></Optional>
    <Optional feature="embedded-experiences"></Optional>
  </ModulePrefs>
  <Content type="html" href="open-views.html" />
  <Content type="html" view="tab">
    <![CDATA[
      <script type="text/javascript">
        gadgets.util.registerOnLoadHandler(function() {
          gadgets.views.setReturnValue('Thanks for closing the tab view!');
        });
      </script>
      <h1>Tab View</h1>
      <button onclick="gadgets.views.close();">Close</button>
    ]]>
  </Content>
  <Content type="html" view="sidebar">
    <![CDATA[
      <script type="text/javascript">
        gadgets.util.registerOnLoadHandler(function() {
          gadgets.views.setReturnValue('Thanks for closing the sidebar view!');
        });
      </script>
      <h1>Sidebar View</h1>
      <button onclick="gadgets.views.close();">Close</button>
    ]]>
  </Content>
  <Content type="html" view="dialog">
    <![CDATA[
      <script type="text/javascript">
        gadgets.util.registerOnLoadHandler(function() {
          gadgets.views.setReturnValue('Thanks for closing the dialog view!');
        });
      </script>
      <h1>Dialog View</h1>
      <button onclick="gadgets.views.close();">Close</button>
    ]]>
  </Content>
  <Content type="html" view="embedded">
    <![CDATA[
      <script type="text/javascript">
        gadgets.util.registerOnLoadHandler(function() {
          gadgets.views.setReturnValue('Thanks for closing the embedded experience!');
          gadgets.ee.registerContextListener(function(context) {
            document.getElementById('contextData').innerHTML = 
            gadgets.json.stringify(context);
          });

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.html
 =======================================================================
<html>
  <head>
    <script type="text/javascript" src="open-views.js"></script>
  </head>
  <body>
  	<h3>What would you like to open?</h3>
    <select id="type">
      <option value="gadget">Gadget</option>
      <option value="url">URL</option>
      <option value="ee">Embedded Experience</option>
    </select>
      
    <h3>Where would you like to open it?</h3>
    <select id="viewTarget">
      <option></option>
      <option value="TAB">Tab</option>
      <option value="DIALOG">Dialog</option>
      <option value="MODALDIALOG">Modal Dialog</option>
      <option value="FLOAT">Float</option>
      <option value="SIDEBAR">Sidebar</option>
    </select>
       
    <div id="viewSection">
      <h3>What view would you like to open?</h3>
      <select id="view">
        <option value="tab">Tab View</option>
        <option value="sidebar">Sidebar View</option>
        <option value="dialog">Dialog View</option>
      </select>
    </div>
       
    <div id="urlSection" style="display: none;">
      <h3>URL To Open</h3>
      <input type="text" id="url" value="http://opensocial.org"></input>
    </div>
        
    <div id="eeSection" style="display: none;">
      <h3>Embedded Experience Data Model</h3>
      <textarea id="dataModel" rows="10" cols="70"></textarea>
    </div>
      
    <br/>
    <div>
      <button id="open">Open</button>
    </div>
  </body>
</html>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/open-views/all-features/open-views.js
 =======================================================================
var currentSite;
function initButtons() {
  document.getElementById('open').onclick = open;
  document.getElementById('type').onchange = typeChange;
  setEEDataModel();
  gadgets.window.adjustHeight();
}

function typeChange(e) {
  hideFields();
  var type = e.currentTarget.value;
  if(type === 'gadget') {
    document.getElementById('viewSection').setAttribute('style', 'display: block;');

  } else if(type === 'url') {
    document.getElementById('urlSection').setAttribute('style', 'display: block;');
  } else {
    document.getElementById('eeSection').setAttribute('style', 'display: block;');
  }
  gadgets.window.adjustHeight();
}

function setEEDataModel() {
  //WARNING!!!  The below line of code is specific to this container
  //not every container will do this do don't rely on it
  var gadgetUrl = gadgets.views.getParams().gadgetUrl;
  var dataModel = {
    "gadget" : gadgetUrl,
    "context" : {
      "message" : "The open-views feature rocks!"
    }
  };
  document.getElementById('dataModel').value = gadgets.json.stringify(dataModel);

}

function hideFields() {
  document.getElementById('viewSection').setAttribute('style', 'display: none;');
  document.getElementById('urlSection').setAttribute('style', 'display: none;');
  document.getElementById('eeSection').setAttribute('style', 'display: none;');
}

function open() {
  var type = document.getElementById('type').value;
  if(type === 'url') {
    gadgets.views.openUrl(getUrl(), function(site) {
      currentSite = site;
    }, getViewTarget());

  } else if(type === 'gadget') {

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/preferences/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Preferences Gadget" description="Tests setting and getting user preferences." width="320" height="400">
  <Require feature="setprefs"/>
  <Require feature="settitle"/>
  <Require feature="dynamic-height"/>
  </ModulePrefs>
  <UserPref name="hello_pref" display_name="Name" default_value="World" datatype="string" required="true"/>
  <UserPref name="number_pref" display_name="Number" default_value="0" datatype="string" required="true"/>
  <UserPref name="list_pref" display_name="List" default_value="foo|bar|foobar" datatype="list" required="true"/>
  <UserPref name="boolean_pref" display_name="Boolean" default_value="false" datatype="bool" required="true"/>
  <UserPref name="enum_pref" display_name="Enum" default_value="Red" datatype="enum" required="true">
    <EnumValue value="Red" display_value="Red"/>
    <EnumValue value="Green" display_value="Green"/>
    <EnumValue value="Blue" display_value="Blue"/>
    <EnumValue value="Gray" display_value="Gray"/>
    <EnumValue value="Purple" display_value="Purple"/>
    <EnumValue value="Black" display_value="Black"/>
  </UserPref>
  <UserPref name="set_pref" display_name="Set this preference" datatype="string" required="false"/>
  <Content type="html">
  <![CDATA[
    <div id="enum_div"></div>
  <div id="boolean_div"</div>
  <div id="number_div"</div>
  <div id="list_div"></div>
  <div id="set_div">
  Set the pref value: <input id="setPrefInput" type="text" /><br />
  <button id="setPrefBtn" type="button" onclick="setPref()">Set the pref</button>
  </div>
    <script type="text/javascript">
	function setPref(){
		var prefs = new gadgets.Prefs();
        prefs.set("set_pref", document.getElementById("setPrefInput").value);
	}
	
    function displayMsg(){
    var enumDiv = document.getElementById('enum_div');
    var boolDiv = document.getElementById('boolean_div');
    var listDiv = document.getElementById('list_div');
    var numberDiv = document.getElementById('number_div');
	var setPrefDiv = document.getElementById('set_div');
        // Get userprefs
        var prefs = new gadgets.Prefs();
        
    // enumDiv
        enumDiv.style.color = prefs.getString("enum_pref");
        var enumDivHtml = "<br><h1>";
        enumDivHtml += "Hello, ";
    enumDivHtml += prefs.getString("hello_pref");

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/selection/selection-listener/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Selection Listener">
    <Require feature="dynamic-height"></Require>
    <Require feature="selection"></Require>
  </ModulePrefs>
  <Content type="html">
    <![CDATA[
      <script type="text/javascript">
        function execute(selection) {
          var div = document.getElementById("selection");
          div.innerHTML = gadgets.json.stringify(selection);
          
          // Adjust the height
          gadgets.window.adjustHeight();
        }
        
        // Register the function to run with the gadget is done loading
        gadgets.util.registerOnLoadHandler(function() {
          gadgets.selection.addListener(execute);
        });
      </script>
      <div>Select a OpenSocial datatype in the menu to see its value:</div>
      <div id="selection"></div>
    ]]>
  </Content>
</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/gadget.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Welcome Gadget" description="Welcome people to the OpenSocial Explorer">
    <Require feature="minimessage" />
  </ModulePrefs>
  <Content type="html" href="welcome.html">
  </Content>
</Module>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.css
 =======================================================================
.mmlib_table {
  width: 100%;
  font: bold 9px arial,sans-serif;
  font-size: medium;
  background-color: #fff4c2;
  border-collapse: separate;
  border-spacing: 3px;
  padding: 1px 0px;
}

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.html
 =======================================================================
<html>
  <head>
    <link type="text/css" rel="stylesheet" href="welcome.css"/>
    <script type="text/javascript" src="welcome.js"></script>
  </head>
</html>

 =======================================================================
 ==/Users/ryanjbaxter/git-repos/opensocial/explorer/gadget-specs/src/main/specs/welcome/welcome.js
 =======================================================================
function welcome() {
  var miniMessage = new gadgets.MiniMessage();
  miniMessage.createStaticMessage("Welcome to the OpenSocial Explorer!");
  miniMessage.createStaticMessage("Click on the tabs at the top to see all resources that a gadget is using, including HTML, CSS, and JavaScript.");
  miniMessage.createStaticMessage("Click on the samples in the navigator on the left to view other sample gadgets.");
}

gadgets.util.registerOnLoadHandler(welcome);