Skip to content

Instantly share code, notes, and snippets.

@jheising
Created April 20, 2011 02:49
Show Gist options
  • Save jheising/930244 to your computer and use it in GitHub Desktop.
Save jheising/930244 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<rfapp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://developer.redfoundry.com/rfml.xsd">
<views>
<view>
<property name="rating">0</property>
<datasources>
<RFXMLDataProvider id="RatingData">
<property name="allow-cache">NO</property>
<property name="data"><![CDATA[[eval:("
var data = "<stars>";
for(i=0; i < [form:max-rating]; i++)
{
if(i >= [get:user-widget("rating")])
data += '<star on="false"/>';
else
data += '<star on="true"/>';
}
data += "</stars>";
data;
")]]]></property>
</RFXMLDataProvider>
</datasources>
<widgets>
<RFRepeaterWidget id="RatingsRepeater">
<property name="row-data-id">RatingData</property>
<property name="row-data-path">stars/star</property>
<property name="orientation">horizontal</property>
<property name="item-width">[form:icon-width]</property>
<property name="item-height">[form:icon-height]</property>
<property name="height">[form:icon-height]</property>
<property name="width">[eval:("[form:icon-width] * [data-row-count:RatingData("stars/star")]")]</property>
<property name="enable-scrolling">NO</property>
<widgets>
<RFImageWidget>
<property name="image">[eval:("if([data:row("@on")]) { '[form:on-icon]'; } else { '[form:off-icon]'; } ")]</property>
<property name="animate-touch">NO</property>
<actions>
<modify on="touch">
<property name="widget-id">user-widget</property>
<values>
<property name="rating"><![CDATA[[eval:("if([data:row-index] == 0 && [get:user-widget("rating")] == 1) { 0; } else { [data:row-index] + 1; }")]]]></property>
</values>
</modify>
<load_datasource on="touch">
<property name="datasource-id">RatingData</property>
</load_datasource>
<function on="touch">
<property name="widget-id">user-widget</property>
<property name="function-name">raise-event</property>
<values>
<property name="event-name">rating-changed</property>
</values>
</function>
</actions>
</RFImageWidget>
</widgets>
</RFRepeaterWidget>
</widgets>
</view>
</views>
</rfapp>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rfapp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://developer.redfoundry.com/rfml.xsd">
<views>
<view>
<widgets>
<RFUserWidget id="Rating1">
<property name="load-from">RatingsWidget.xml</property>
<property name="max-rating">5</property>
<property name="icon-width">50</property>
<property name="icon-height">50</property>
<property name="on-icon">star-on.png</property>
<property name="off-icon">star-off.png</property>
<actions>
<alert on="rating-changed">
<property name="message">[get:Rating1("rating")]</property>
</alert>
</actions>
</RFUserWidget>
<RFUserWidget id="Rating2">
<property name="load-from">RatingsWidget.xml</property>
<property name="max-rating">5</property>
<property name="icon-width">50</property>
<property name="icon-height">50</property>
<property name="on-icon">star-on.png</property>
<property name="off-icon">star-off.png</property>
<actions>
<alert on="rating-changed">
<property name="message">[get:Rating2("rating")]</property>
</alert>
</actions>
</RFUserWidget>
</widgets>
</view>
</views>
</rfapp>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment