<?xml version="1.0" encoding="utf-8"?>
<s:Group
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:screens="screens.*"
horizontalCenter="0"
verticalCenter="0"
creationComplete="_creationCompleteHandler(event)"
>
<s:states>
<s:State name="editVote" enterState="editVote_enterStateHandler(event)"/>
<s:State name="voteInProgress" stateGroups="_voting"/>
<s:State name="voteStopped" stateGroups="_voting"/>
</s:states>
<fx:Script>
<![CDATA[
import controllers.VoteController;
import events.VoteEvent;
import models.VoteDefinition;
import mx.events.FlexEvent;
[Bindable]protected var enabledEdit:Boolean = true;
protected function _creationCompleteHandler(event:FlexEvent):void
{
var voteCtrl:VoteController = VoteController.instance;
voteCtrl.addEventListener(VoteEvent.START_VOTE, onVoteStarted, false,0,true);
voteCtrl.addEventListener(VoteEvent.ANSWERS_RECEIVED, onVoteUpdated, false,0,true);
voteCtrl.addEventListener(VoteEvent.STOP_VOTE, onVoteStopped, false,0,true);
}
protected function btnSubmitVote_clickHandler():void
{
enabledEdit = false;
var def:VoteDefinition = new VoteDefinition();
def.question = labelVote0.text;
if (labelVote1.text != '') def.answer1 = labelVote1.text;
if (labelVote2.text != '') def.answer2 = labelVote2.text;
if (labelVote3.text != '') def.answer3 = labelVote3.text;
if (labelVote4.text != '') def.answer4 = labelVote4.text;
if (labelVote5.text != '') def.answer5 = labelVote5.text;
VoteController.instance.submitVote(def);
}
protected function onVoteStarted(event:VoteEvent):void
{
currentState = 'voteInProgress';
onVoteUpdated();
}
protected function onVoteUpdated(event:VoteEvent=null):void
{
var ctrl:VoteController = VoteController.instance;
btnSubmitVote.label = 'vote in progress... ' + ctrl.currentVoteUsers +'/'+ctrl.totalVoteClients;
var ar:Array = ctrl.currentVoteAnswers;
results1.setProgress(ar[1], ctrl.totalVoteClients);
results2.setProgress(ar[2], ctrl.totalVoteClients);
results3.setProgress(ar[3], ctrl.totalVoteClients);
results4.setProgress(ar[4], ctrl.totalVoteClients);
results5.setProgress(ar[5], ctrl.totalVoteClients);
}
protected function onVoteStopped(event:Event=null):void
{
currentState = 'voteStopped';
VoteController.instance.parseResultsForBroadcast();
}
protected function editVote_enterStateHandler(event:FlexEvent):void
{
enabledEdit = true;
}
]]>
</fx:Script>
<fx:Declarations />
<s:Group
horizontalCenter="0" verticalCenter="0"
>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:TextInput id="labelVote0" editable="{enabledEdit}"
text="Enter your question here" styleName="question" width="100%"/>
<s:TextInput id="labelVote1" editable="{enabledEdit}"
text="Choice 1" styleName="answer" width="100%"/>
<screens:Jauge id="results1"
visible="false" visible._voting="true" />
<s:TextInput id="labelVote2" editable="{enabledEdit}"
text="Choice 2" styleName="answer" width="100%"/>
<screens:Jauge id="results2"
visible="false" visible._voting="true" />
<s:TextInput id="labelVote3" editable="{enabledEdit}"
text="Choice 3" styleName="answer" width="100%"/>
<screens:Jauge id="results3"
visible="false" visible._voting="true" />
<s:TextInput id="labelVote4" editable="{enabledEdit}"
text="Choice 4" styleName="answer" width="100%"/>
<screens:Jauge id="results4"
visible="false" visible._voting="true" />
<s:TextInput id="labelVote5" editable="{enabledEdit}"
text="Choice 5" styleName="answer" width="100%"/>
<screens:Jauge id="results5"
visible="false" visible._voting="true" />
<s:Label text="tip : remove text from the field to hide it from the clients" />
<s:HGroup>
<s:Button id="btnSubmitVote"
label.editVote="Start Vote"
label.voteInProgress="vote in progress..."
label.voteStopped="vote finished"
width="200"
enabled="{this.currentState == 'editVote'}"
click="btnSubmitVote_clickHandler()"
/>
<s:Button id="btnStopVote"
label="Stop vote"
includeIn="voteInProgress"
click="onVoteStopped()"/>
<s:Button id="btnNewVote"
label="New vote"
includeIn="voteStopped"
click="currentState = 'editVote';"/>
</s:HGroup>
</s:Group>
</s:Group>