Newer
Older
SuperTUve / channelWindow.mxml
<?xml version="1.0" encoding="utf-8"?>
<tvWindow xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="absolute" cornerRadius="7" title="Channel Manager" width="800" height="620" creationComplete="doInit()" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Script>
	<![CDATA[
      import mx.collections.ArrayCollection;
      import mx.controls.Alert;
	  
	  [Bindable]
	  public var tvMaster:Master;
	  
	  [Bindable]
	  private var chanList:ArrayCollection;
	  
	  
	  [Bindable]
	  private var chanInfo:ArrayCollection;
	  
	  [Bindable]
	  private var tvUsers:ArrayCollection;
	  
      private function doInit():void {
      	var uArgs:Object = new Object;
      	uArgs.gid = tvMaster.userInfo[0].gid;
      	uArgs.uid = tvMaster.userInfo[0].uid;
      	tvMaster.gateway.call("tuve.getUsers",new Responder(gotUsers,tvMaster.onFault),uArgs);
      	uArgs = null;
        findChan();
        }
        
      private function gotUsers(result:Array):void {
      	if (result != null)
      	  tvUsers = new ArrayCollection(result);
        }
      public function findChan():void {
      	var uArgs:Object = new Object;
      	uArgs.gid = tvMaster.userInfo[0].gid;
      	uArgs.uid = tvMaster.userInfo[0].uid;
      	uArgs.skey = chanSearch.text;     	
      	tvMaster.gateway.call("tuve.getChans",new Responder(gotChans,tvMaster.onFault),uArgs);
      	uArgs = null;
        }
       
      private function gotChans(result:Array):void {
      	if (result != null) {
      	  if (chanList != null)
      	    chanList = null;
      	  chanList = new ArrayCollection(result);
      	  chanGrid.selectedIndex = 0;
      	  getChanData();
          }	
        }
      private function getChanData():void {
      	tvMaster.gateway.call("tuve.getChannel",new Responder(gotChannel,tvMaster.onFault),chanGrid.selectedItem.channel);
        }
        
      private function gotChannel(result:Array):void {
      	var i:Number;
      	if (result != null) {
      	  vidStatus.text = "Data Retrieved";
      	  chanInfo = new ArrayCollection(result);
      	  chanName.text       = chanInfo[0].channel;
      	  chanTopic.text      = chanInfo[0].topic;
      	  if (chanInfo[0].random == 1)
      	    chanRandom.selected  = true;
          else
      	    chanRandom.selected  = false;
      	  if (chanInfo[0].queue == 1)
      	    chanQueue.selected  = true;
      	  else
      	    chanQueue.selected  = false;
      	  if (chanInfo[0].exclusive == 1)
      	    chanExclusive.selected  = true;
      	  else
      	    chanExclusive.selected  = false;
      	  if (chanInfo[0].time == 0)
      	    chanTime.selected = false;
      	  else
      	    chanTime.selected = true;
      	  chanTimeLimit.text = chanInfo[0].time;
      	  chanDesc.htmlText = "&nbsp;";
          chanDesc.htmlText = chanInfo[0].description;
          
      	  for (i = 0;i < tvUsers.length;i++) {
      	  	if (chanInfo[0].oid == tvUsers[i].uid) {
      	  	  chanOwner.selectedIndex = i;
      	  	  break;
      	  	  }
      	    }
      	  for (i = 0;i< tvMaster.tvRating.length();i++) {
      	    if (tvMaster.tvRating[i].@data == chanInfo[0].rating) {
      	      chanRating.selectedIndex = i;
      	      break;
      	      }
      	    }
      	  for (i = 0;i< tvMaster.tvClass.length();i++) {
      	    if (tvMaster.tvClass[i].@data == chanInfo[0].classification) {
      	      chanClass.selectedIndex = i;
      	      break;
      	      }
      	    }
      	  }
        }
      private function doUpdate():void {
    	var newInfo:Object = new Object();
    	newInfo.channel        = chanName.text;
      	newInfo.oid            = chanOwner.selectedItem.uid;
      	newInfo.rating         = chanRating.selectedItem.@data.toString();
      	newInfo.classification = chanClass.selectedItem.@data.toString();
      	newInfo.topic          = chanTopic.text;
      	newInfo.random         = Number(chanRandom.selected);
      	newInfo.queue          = Number(chanQueue.selected);
      	newInfo.exclusive      = Number(chanExclusive.selected);
      	if (chanTime.selected == true)
      	  newInfo.time = chanTimeLimit.text;
      	else
      	  newInfo.time = 0;
      	newInfo.description = chanDesc.htmlText;
      	tvMaster.gateway.call("tuve.updateChannel",new Responder(updateRes,tvMaster.onFault),newInfo);
        }
      private function updateRes(result:String):void {
      	if (result == "0")
      	  vidStatus.text = "Updated";
      	else
      	  vidStatus.text = "Error Updating";
      }
    private function doPrev():void {
      if (upOnChange.selected == true)
        doUpdate();
      chanGrid.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN,true,false,0.0,38));
      }
    private function doNext():void {
      if (upOnChange.selected == true)
        doUpdate();
      chanGrid.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN,true,false,0.0,40))
      }
	]]>
</mx:Script>

<mx:HBox width="100%" horizontalGap="0" height="100%">
<mx:Canvas width="100%" height="100%">
    <mx:Label text="Status:" />
    	<mx:Label id="vidStatus"  x="44" width="400"/>
<mx:TabNavigator y="20" height="480" creationPolicy="all">
<mx:Canvas label="Channel Info" height="100%">
<mx:Form width="100%" height="445">
	<mx:FormItem label="Channel:">
		<mx:TextInput width="350" id="chanName" editable="false" />
	</mx:FormItem>
	<mx:FormItem label="Topic:">
		<mx:TextInput width="350" id="chanTopic" />
	</mx:FormItem>
	<mx:FormItem label="Random">
		<mx:CheckBox id="chanRandom" label="Enabled" />
	</mx:FormItem>
	<mx:FormItem label="User Queues">
	  <mx:CheckBox id="chanQueue" label="Enabled" />
	</mx:FormItem>
	<mx:FormItem label="Exclusive">
      <mx:CheckBox id="chanExclusive" label="Enabled" />
	</mx:FormItem>
	<mx:FormItem label="Time Limit">
	  <mx:CheckBox id="chanTime" label="Enabled" />
	  <mx:TextInput id="chanTimeLimit" />
	</mx:FormItem>
	<mx:FormItem label="Rating:">
		<mx:ComboBox dataProvider="{tvMaster.tvRating}" labelField="@label" width="200" id="chanRating" />
	</mx:FormItem>
	<mx:FormItem label="Classification:">
		<mx:ComboBox dataProvider="{tvMaster.tvClass}" labelField="@label" width="200" id="chanClass" />
	</mx:FormItem>
	<mx:FormItem label="Owner">
		<mx:ComboBox dataProvider="{tvUsers}" labelField="username" width="200" id="chanOwner" />
	</mx:FormItem>
  </mx:Form>
  </mx:Canvas>
  <mx:Canvas label="Channel Description">
  	<mx:RichTextEditor id="chanDesc"  width="100%" height="100%"/>
  </mx:Canvas>
 </mx:TabNavigator>
 <mx:Button label="Update" click="doUpdate()" y="508" x="10"/>
  	<mx:Button label="Prev" click="doPrev()"  x="10" y="533"/>
	<mx:Button label="Next" click="doNext()"  x="71" y="533"/>
	<mx:CheckBox label="Update On Record Change"  x="10" y="558" selected="false" id="upOnChange"/>
  </mx:Canvas>
  <mx:Canvas width="300" height="100%">
  <mx:TextInput id="chanSearch"  width="227" enter="findChan()"  y="5"/>
  <mx:Button label="Search"  x="235" click="findChan()"  y="5"/>
	<mx:DataGrid y="30" id="chanGrid" dataProvider="{chanList}" width="300" height="100%" change="getChanData()" verticalScrollPolicy="on">
		<mx:columns>
			<mx:DataGridColumn headerText="Channel" dataField="channel" />
		</mx:columns>
	</mx:DataGrid>
 </mx:Canvas>
</mx:HBox>
</tvWindow>