hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/monitor/view/MonitorSection.mxml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<main:Section 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:main="it.ht.rcs.console.main.*"
                            xmlns:monitor="it.ht.rcs.console.monitor.view.*"
                            addedToStage="onAddedToStage()"
                            creationComplete="init()"
                            removedFromStage="onRemovedFromStage()">

    <main:layout>
        <s:VerticalLayout horizontalAlign="center"
                                            paddingBottom="5"
                                            paddingLeft="5"
                                            paddingRight="5"
                                            paddingTop="5"/>
    </main:layout>

    <fx:Script>
        <![CDATA[
      import it.ht.rcs.console.events.RefreshEvent;
      import it.ht.rcs.console.monitor.controller.LicenseManager;
      import it.ht.rcs.console.monitor.controller.MonitorManager;
      
      import mx.collections.ListCollectionView;
      import mx.collections.Sort;
      import mx.collections.SortField;
      import mx.core.ScrollPolicy;

            [Bindable]
            private var view:ListCollectionView;


            private function onLicenseShow():void
            {
        parentApplication.dispatchEvent(new RefreshEvent(RefreshEvent.REFRESH))
            }

            private function init():void
            {
                var sort:Sort=new Sort();
                sort.fields=[new SortField('status', true, true, true), new SortField('_id', true)];
                view=MonitorManager.instance.getView(sort, searchFilterFunction);
                currentState="collapsed"
            } 

            private function onAddedToStage():void
            {
                LicenseManager.instance.listenRefresh();
                MonitorManager.instance.listenRefresh();
        MonitorManager.instance.listenPush()
        MonitorManager.instance.refresh()
                //MonitorManager.instance.startAutorefresh();
            }

            private function onRemovedFromStage():void
            {
                LicenseManager.instance.unlistenRefresh();
                MonitorManager.instance.unlistenRefresh();
        MonitorManager.instance.unlistenPush()
                //MonitorManager.instance.stopAutorefresh();
            }

            private function searchFilterFunction(item:Object):Boolean
            {
                try
                {
                    return item.name.toLowerCase().indexOf(actionBar.searchInput.text.toLowerCase()) != -1;
                }
                catch (e:Error)
                {
                }
                return true;
            }

            private function onStateChange():void
            {
                currentState=actionBar.currentState
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <mx:Sequence id="expand">
            <mx:AnimateProperty property="height"
                                                    fromValue="0"
                                                    toValue="300"/>

        </mx:Sequence>


    </fx:Declarations>

    <monitor:MonitorActionBar id="actionBar"
                                                        selectedObject="{grid.selectedItem}"
                                                        view="{view}"
                                                        stateChangeComplete="onStateChange()"/>

    <monitor:StatusGrid id="grid"
                                            dataProvider="{view}"
                                            height="100%"/>


    <s:Spacer height="10"/>


    <s:Scroller verticalScrollPolicy="off"
                            id="scroller"
                            width="100%"
                            visible.collapsed="false"
                            includeInLayout.collapsed="false"
                            visible.expanded="true"
                            includeInLayout.expanded="true"
                            showEffect="{expand}"
                            show="onLicenseShow()">
        <s:Group width="100%">
            <s:HGroup id="licenseAndVersion"
                                horizontalAlign="center"
                                top="12"
                                width="100%">
                <monitor:License/>
                <monitor:Version/>
            </s:HGroup>
        </s:Group>
    </s:Scroller>
    <main:states>

        <s:State name="collapsed"/>
        <s:State name="expanded"/>

    </main:states>

</main:Section>