Пакет | spark.collections |
Класс | public class SortField |
Наследование | SortField AdvancedStyleClient EventDispatcher Object |
Реализует | ISortField |
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
var col:ICollectionView = new ArrayCollection();
col.addItem({first:"Anders", last:"Dickerson"});
var sort:Sort = new Sort();
var sortfield:SortField = new SortField("first", true);
sortfield.setStyle("locale", "en-US");
sort.fields = [sortfield];
col.sort = sort;
Возможны ситуации, в которых коллекция содержит простые элементы, подобные String
, Date
, Boolean
и т. д. В этом случае сортировка должна применяться непосредственно к простому типу. При построении сортировки в этой ситуации необходимо наличие отдельного поля сортировки, не имеющего указанного name
. Например:
var col:ICollectionView = new ArrayCollection();
col.addItem("California");
col.addItem("Arizona");
var sort:Sort = new Sort();
var sortfield:SortField = new SortField(null, true);
sortfield.setStyle("locale", "en-US");
sort.fields = [sortfield];
col.sort = sort;
Сравнение по умолчанию, выполняемое с помощью класса SortField
, обеспечивает правильную языковую сортировку строк. Для выбора языка необходимо установить стиль locale в экземпляре класса одним из следующих способов:
- С использованием класса в объявлении MXML и наследованием локали из документа, содержащего объявление. Пример:
<fx:Declarations> <s:SortField id="sf" /> </fx:Declarations>
<fx:Declarations> <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> </fx:Declarations>
setStyle
, например sf.setStyle("locale", "zh-Hans-CN")
.
UIComponent
путем вызова метода addStyleClient()
UIComponent.
The <s:SortField>
tag has the following attributes:
<s:SortField Properties compareFunction="Internal compare function" descending="false" name="null" numeric="null" />
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
arraySortOnOptions : int [только для чтения]
Это вспомогательное свойство используется на внутреннем уровне методами findItem() и sort(). | SortField | ||
className : String [только для чтения]
Имя класса компонента. | AdvancedStyleClient | ||
compareFunction : Function
Функция, сравнивающая два элемента при сортировке элементов для связанной коллекции. | SortField | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
descending : Boolean
Указывает, следует ли сортировать данное поле в порядке убывания. | SortField | ||
id : String
Идентификатор компонента. | AdvancedStyleClient | ||
inheritingStyles : Object
Объект, содержащий стили наследования для экземпляра клиента с невизуальным стилем. | AdvancedStyleClient | ||
moduleFactory : IFlexModuleFactory
Фабрика модуля, используемая в качестве контекста для поиска менеджера стилей, управляющего стилями в этом экземпляре клиента с невизуальным стилем. | AdvancedStyleClient | ||
name : String
Имя поля для сортировки. | SortField | ||
nonInheritingStyles : Object
Начало цепочки этого компонента с ненаследуемыми стилями. | AdvancedStyleClient | ||
numeric : Object
Указывает, что если сортируемое поле содержит числовые значения (number/int/uint) или строковые представления числовых значений, то средство сравнения использует числовое сравнение. | SortField | ||
styleDeclaration : CSSStyleDeclaration
Объявление стиля, которое содержит действующие стили, объявленные этим объектом. | AdvancedStyleClient | ||
styleManager : IStyleManager2 [только для чтения]
Возвращает экземпляр StyleManager, используемый этим компонентом. | AdvancedStyleClient | ||
styleName : Object
Источник значений стиля данного объекта. | AdvancedStyleClient | ||
styleParent : IAdvancedStyleClient
Вышестоящий узел компонента используется для анализа нижестоящих селекторов. | AdvancedStyleClient | ||
usingCustomCompareFunction : Boolean [только для чтения]
True, если для ISortField указана пользовательская функция средства сравнения. | SortField |
Метод | Определено | ||
---|---|---|---|
Конструктор. | SortField | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Удаляет свойство style для экземпляра компонента. | AdvancedStyleClient | ||
Посылает событие в поток событий. | EventDispatcher | ||
Возвращает массив объектов CSSStyleDeclaration для селектора типа, применяемого к этому компоненту, или null, если массив не существует. | AdvancedStyleClient | ||
Получает свойство style, которое было установлено в любом месте в пределах цепочки поиска стиля этого компонента. | AdvancedStyleClient | ||
Возвращает true, если для currentCSSState не указано значение null. | AdvancedStyleClient | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Инициализированный метод вызывается, когда этот класс или класс, расширяющий этот класс, используются в объявлении MXML. | AdvancedStyleClient | ||
Вспомогательная функция, которую вызывает класс Sort, чтобы установить функцию сравнения по умолчанию для сравнений на основе одного из трех условий, определяющих была ли установлена пользовательская функция, тип данных для определенного поля или значение числового свойства. | SortField | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Возвращает значение true, если cssState совпадает с currentCSSState. | AdvancedStyleClient | ||
Определяет, совпадает ли этот экземпляр с данным типом (или является его подклассом). | AdvancedStyleClient | ||
Применяет изменения стиля к нижестоящим элементам этого экземпляра клиента стиля. | AdvancedStyleClient | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Обеспечивает настройку внутренних значений кэша стиля для функционирования метода getStyle(). | AdvancedStyleClient | ||
Обеспечивает регистрацию EffectManager в качестве одного из прослушивателей события для каждого события эффекта. | AdvancedStyleClient | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает обратный порядок критериев для данного поля сортировки. | SortField | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Задает свойство style для экземпляра компонента. | AdvancedStyleClient | ||
Обеспечивает обнаружение изменений в свойствах стиля. | AdvancedStyleClient | ||
Метод stylesInitialized() вызывается программой Flex при первой инициализации стиля компонента. | AdvancedStyleClient | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
Стили являются либо общими, либо связанными с определенной темой. Если стиль общий, он может использоваться с любой темой. Если стиль связан с определенной темой, он может использоваться, только если ваше приложение использует ее.
Стиль | Описание | Определено | ||
---|---|---|---|---|
locale | Тип: String Наследование CSS: Да Язык версии: ActionScript 3.0 Версия продукта: Flex 4.5 Версии среды выполнения: Flash10.1, AIR 2.5 Идентификатор локали, который определяет язык, область, сценарий и, дополнительно, другие связанные теги и ключи. Синтаксис этого идентификатора должен соответствовать синтаксису, определенному техническим стандартом Юникод № 35 (например, en-US, de-DE, zh-Hans-CN). В приложениях для браузера стандартная локаль основана на языковых параметрах браузера. Обратите внимание, что используется не язык интерфейса браузера, который устанавливается в Javascript, а список предпочтительных локалей для веб-страниц, выбранных пользователем в настройках браузера. В приложениях AIR стандартная локаль интерфейса основана на системных установках пользователя. Дополнительно | SortField |
arraySortOnOptions | свойство |
arraySortOnOptions:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Это вспомогательное свойство используется на внутреннем уровне методами findItem()
и sort()
. Другое использование этого свойства не поддерживается. Возвращает -1, если ISortField не может использоваться в классе Sort
для сортировки поля (отсутствует compareFunction или имя). В противном случае возвращает битовую маску параметров сортировки.
Реализация
public function get arraySortOnOptions():int
compareFunction | свойство |
compareFunction:Function
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Функция, сравнивающая два элемента при сортировке элементов для связанной коллекции. Если указано свойство compareFunction
в объекте ISort
, Flex игнорирует любые свойства compareFunction
в объектах SortField
в ISort.
Функция сравнения должна иметь следующую подпись:
функция myCompare(a:Object, b:Object):int
Эта функция должна возвращать следующие значения:
- -1, если в отсортированной последовательности
объект А
должен предшествоватьобъекту B
. - 0, если
объект А
совпадает собъектом B
. - 1, если в отсортированной последовательности
объект А
должен следовать заобъектом B
.
Значение по умолчанию представляет собой внутреннюю функцию сравнения, которая может выполнять сравнение строк, чисел или дат в восходящем или нисходящем порядке. Для сравнения строк используется специальный метод сравнения локали (язык, регион и сценарий) в классе SortingCollator
. Этот класс использует стиль locale для определения локали. Собственную функцию следует указывать только в том случае, если необходим пользовательский алгоритм сравнения. Обычно он применяется только в том только случае, если в отображении используется вычисленное поле.
Реализация
public function get compareFunction():Function
public function set compareFunction(value:Function):void
descending | свойство |
descending:Boolean
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Указывает, следует ли сортировать данное поле в порядке убывания.
Значение по умолчанию равно false
(в порядке возрастания).
Это свойство можно использовать в качестве источника для связывания данных. При изменении этого свойства отправляется событие descendingChanged
.
Реализация
public function get descending():Boolean
public function set descending(value:Boolean):void
name | свойство |
name:String
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Имя поля для сортировки.
Значением по умолчанию является null.
Это свойство можно использовать в качестве источника для связывания данных. При изменении этого свойства отправляется событие nameChanged
.
Реализация
public function get name():String
public function set name(value:String):void
numeric | свойство |
numeric:Object
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Указывает, что если сортируемое поле содержит числовые значения (number/int/uint
) или строковые представления числовых значений, то средство сравнения использует числовое сравнение.
Это свойство используется в классе SortField
, если не указана пользовательская функция сравнения.
Если для этого свойства установлено значение true
, то используется встроенная функция числового сравнения. Перед сравнением каждому элементу данных присваивается функция Number()
.
Если для этого свойства установлено значение false
, то используется встроенная функция сравнения строк. Перед сравнением каждому элементу данных присваивается функция String()
.
Если это свойство равно null
, то анализируется первый элемент данных для определения, является он числом или строкой, после чего сортировка продолжается на основании этого анализа.
Значением по умолчанию является null.
Это свойство можно использовать в качестве источника для связывания данных. При изменении этого свойства отправляется событие numericChanged
.
Реализация
public function get numeric():Object
public function set numeric(value:Object):void
usingCustomCompareFunction | свойство |
usingCustomCompareFunction:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
True, если ISortField
использует пользовательскую функцию средства сравнения.
Реализация
public function get usingCustomCompareFunction():Boolean
SortField | () | Конструктор |
public function SortField(name:String = null, descending:Boolean = false, numeric:Object = null)
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Конструктор.
Параметрыname:String (default = null ) — Имя свойства, используемое этим полем для сравнения. Если объект относится к простому типу, следует передать null .
| |
descending:Boolean (default = false ) — Сообщает устройству сравнения, следует ли разместить элементы в порядке убывания.
| |
numeric:Object (default = null ) — Сообщает средству сравнения, следует ли сравнивать элементы сортировки как числовом порядке вместо алфавитного порядка.
|
initializeDefaultCompareFunction | () | метод |
public function initializeDefaultCompareFunction(obj:Object):void
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Вспомогательная функция, которую вызывает класс Sort
, чтобы установить функцию сравнения по умолчанию для сравнений на основе одного из трех условий, определяющих была ли установлена пользовательская функция, тип данных для определенного поля или значение числового свойства. Если свойство numeric
имеет значение true, то при сортировке будет выполняться числовое сравнение.
Параметры
obj:Object — Объект , содержащий данные. Если для указания имени поля использовалось свойство Name, то это имя будет использоваться для доступа к значению данных из этого объекта. В противном случае в качестве значения данных будет использован непосредственный объект.
|
reverse | () | метод |
public function reverse():void
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 4.5 |
Версии среды выполнения: | Flash Player 10.1, AIR 2.5 |
Задает обратный порядок критериев для данного поля сортировки. Например, если поле сортировалось в порядке убывания, оно будет отсортировано в порядке возрастания.
ПРИМЕЧАНИЕ. ICollectionView
не обновляется автоматически при изменении ISortFields
; для обновления представления следует вызвать метод refresh()
.
<?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="955" minHeight="600"> <!-- Sample program for spark.collections.Sort and SortField --> <fx:Declarations> <s:Sort id="sortbyLastName_FirstName"> <s:fields> <s:SortField name="last"/> <s:SortField name="first"/> </s:fields> </s:Sort> <mx:ArrayCollection id="collection" sort="{sortbyLastName_FirstName}"> <mx:source> <fx:Object first="Anders" last="Dickerson"/> <fx:Object first="Eileen" last="Maccormick"/> <fx:Object first="Aiden" last="MacCormick"/> <fx:Object first="Steve" last="MacGregor"/> </mx:source> </mx:ArrayCollection> </fx:Declarations> <s:VGroup> <s:VGroup> <s:HGroup> <s:Label text="Input Locale ID Name: "/> <s:TextInput id="inputLocaleIDName"/> <!-- Sets the locale style on the document UI component. The SortField and Sort objects defined in the fx:Declarations section will inherit this style. --> <s:Button click="{setStyle('locale', inputLocaleIDName.text); collection.refresh()}" label="Apply"/> </s:HGroup> <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/> </s:VGroup> <s:DataGrid dataProvider="{collection}" width="100%" creationComplete="{collection.refresh()}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="last"/> <s:GridColumn dataField="first"/> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> </s:Application>
<?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="955" minHeight="600" creationComplete="initApp()"> <!-- Sample program for spark.collections.Sort and SortField --> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import spark.collections.*; [Bindable] private var collection:ArrayCollection = new ArrayCollection(); private function localeChange():void { // Sets the locale style on this application. // The SortField objects will inherit this style. setStyle('locale', inputLocaleIDName.text); collection.refresh(); } private function initApp() : void { // Add data to the collection. collection.addItem({first:"Anders", last:"Dickerson"}); collection.addItem({first:"Steve", last:"Maccormick"}); collection.addItem({first:"Aiden", last:"MacCormick"}); collection.addItem({first:"Eileen", last:"MacGregor"}); // Create the Sort instance. var sort:Sort = new Sort(); // Set the sort field; sort on the last name first, first name // second. var sortfieldLastName:SortField = new SortField("last",true); var sortfieldFirstName:SortField = new SortField("first",true); sort.fields = [sortfieldLastName, sortfieldFirstName]; // Add the sort field objects to this application's list of // style clients. This will cause the sort field objects to // inherit the locale style from this Application. addStyleClient(sortfieldLastName); addStyleClient(sortfieldFirstName); // Assign the Sort object to the view. collection.sort = sort; // Apply the sort to the collection. collection.refresh(); } ]]> </fx:Script> <s:VGroup> <s:VGroup> <s:HGroup> <s:Label text="Input Locale ID Name: "/> <s:TextInput id="inputLocaleIDName"/> <s:Button click="localeChange()" label="Apply"/> </s:HGroup> <s:Label text="Example: 'en-US', 'fr-FR', 'zh-CN', 'ar-SA'"/> </s:VGroup> <s:DataGrid dataProvider="{collection}" width="100%" creationComplete="{collection.refresh()}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="last"/> <s:GridColumn dataField="first"/> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> </s:Application>
Tue Jun 12 2018, 11:34 AM Z