<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="500" minHeight="400"
               width="500" height="400"
               
               creationComplete="application1_creationCompleteHandler(event)"
                viewSourceURL="srcview/index.html">
    <s:layout>
        <s:VerticalLayout />
            
    </s:layout>
    
    <fx:Script>
        <![CDATA[
            import helpers.DemoHelper;
            
            import mx.events.FlexEvent;
            
            import netgroup.NetGroupEvent;
            import netgroup.NetGroupManager;
            
            [Bindable]protected var lanGroupMgr:NetGroupManager;

            protected function application1_creationCompleteHandler(event:FlexEvent):void
            {
                lanGroupMgr = new NetGroupManager();
                lanGroupMgr.addEventListener(NetGroupEvent.POSTING, onMessagePosted);
            }

            protected function onMessagePosted(event:NetGroupEvent):void
            {
                var message:Object = event.message;
                console.appendText(DemoHelper.timestamp+' '+ message.contents +'\n');
            }
            
            
            protected function btnConnect_clickHandler(event:MouseEvent):void
            {
                lanGroupMgr.connect();
            }
            

            protected function btnSend_clickHandler(event:MouseEvent):void
            {
                // Creation of a message to send
                var msg:Object = {};
                msg.contents = inputMsg.text;
                lanGroupMgr.sendMessage('chat', msg);
                callLater(resetInput);
                    
            }
            
            private function resetInput():void
            {
                inputMsg.text = '';
            }

        ]]>
    </fx:Script>
    
    <fx:Declarations/>
    
    <s:HGroup>
        <s:Button id="btnConnect"
                  label="connect" 
                  click="btnConnect_clickHandler(event)"
                  visible="{!lanGroupMgr.connected}"
                  />
        <s:Label text="{lanGroupMgr.connectionState}"/>
        
        <s:Label text="group joined" visible="{lanGroupMgr.joinedGroup}"/>
    </s:HGroup>
    
    <s:HGroup visible="{lanGroupMgr.joinedGroup}">
        <s:Label text="Neighbor count :" />
        <s:Label text="{lanGroupMgr.neighborCount}"/>
    </s:HGroup>
    
    <s:HGroup>
        <s:TextInput id="inputMsg" />
        <s:Button id="btnSend" 
                  enabled="{inputMsg.text != ''}" 
                  label="send"
                  click="btnSend_clickHandler(event)"/>
    </s:HGroup>
    <s:TextArea id="console"/>
</s:Application>