<?xml version="1.0" encoding="utf-8"?>
<mx:HorizontalList xmlns:mx="http://www.adobe.com/2006/mxml" backgroundAlpha="0.0"
borderStyle="none"
height="21"
columnWidth="33"
itemRenderer="fr.view.itemRenderers.PaginatorItem"
variableRowHeight="false" >
<mx:Script>
<![CDATA[
import mx.events.CollectionEventKind;
import mx.events.CollectionEvent;
import mx.collections.ArrayCollection;
private var candidateDataProvider: ArrayCollection;
private var dataProviderDirty: Boolean = false;
private var _maxPages: int = 100;
private var _visiblePagesOffset: int = 1;
public function get maxPages():int
{
return _maxPages;
}
public function set maxPages(value:int):void
{
_maxPages = 100 ;//value ;
trace("Fastnavigation: max pages visible = " + _maxPages);
}
override protected function measure():void
{
super.measure();
if (dataProvider != null)
{
measuredWidth = (dataProvider as ArrayCollection).length * columnWidth;
}
}
override protected function commitProperties():void
{
super.commitProperties();
if (dataProviderDirty && candidateDataProvider != null)
{
// Rost: to support maximum visible items property
var dataProviderOffset: int = 1;//_visiblePagesOffset;
var dataProviderLength: int = candidateDataProvider.length; //Math.min(maxPages, candidateDataProvider.length);
var newDataProvider: ArrayCollection = new ArrayCollection();
newDataProvider.addItem(candidateDataProvider.getItemAt(0));
for(var i: int = dataProviderOffset; i < dataProviderLength; )
{
newDataProvider.addItem( candidateDataProvider.getItemAt( i ) );
i = i + 2;
}
super.dataProvider = newDataProvider;
dataProviderDirty = false;
}
}
override public function set dataProvider(value: Object): void
{
candidateDataProvider = value as ArrayCollection;
dataProviderDirty = true;
invalidateProperties();
}
public function get activePage():int
{
return selectedIndex;
}
public function set activePage(value: int): void
{
// trace("Active page = " + value);
//
// if( candidateDataProvider != null )
// {
// //_visiblePagesOffset = Math.max(1, Math.min( (activePage), candidateDataProvider.length - _maxPages));
// _visiblePagesOffset = activePage;
//
// trace("visiblePagesOffset = " + _visiblePagesOffset, " cand = " + candidateDataProvider.length);
// }
//
// dataProviderDirty = true;
//
// invalidateProperties();
//
// invalidateDisplayList();
//
selectedIndex = value;
}
public function get upSource(): String
{
return _upSource;
}
public function set upSource(value: String): void
{
_upSource = value;
}
public function get activeUpSource(): String
{
return _activeUpSource;
}
public function set activeUpSource(value: String): void
{
_activeUpSource = value;
}
private var _upSource: String = "";
private var _overSource: String = "";
private var _downSource: String = "";
private var _activeUpSource: String = "";
private var _activeOverSource: String = "";
private var _activeDownSource: String = "";
]]>
</mx:Script>
</mx:HorizontalList>