Компоненты, которые необходимо использовать в качестве средств визуализации или редакторов вставных элементов, должны реализовывать интерфейс IDropInListItemRenderer. Многие компоненты Flex реализуют данный интерфейс и поэтому могут быть использованы в качестве средств визуализации или редакторов вставных элементов в любом столбце или списке.
Средства визуализации или редакторы вставных элементов также должны реализовывать интерфейс IDataRenderer, определяющий свойство
Если компонент используется в качестве средства визуализации или редактора вставных элементов, то Flex инициализирует свойство компонента
Свойство
В следующем примере показан метод установщика для свойства
public function set data(value:Object):void { _data = value; this.value = _listData ? parseFloat(_listData.label) : Number(_data); dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); }
В приведенном выше примере элемент управления NumericStepper игнорирует свойство
Для реализации интерфейса IDropInListItemRenderer следует определить методы установщика и получателя, которые реализуют свойство
Обратите внимание на то, что метод установщика для свойства
Метод установщика
Метод получателя возвращает текущее значение внутренней переменной, как показано в следующем примере:
// Internal variable for the property value. private var _listData:BaseListData; // Make the listData property bindable. [Bindable("dataChange")] // Define the getter method. public function get listData():BaseListData { return _listData; } // Define the setter method, public function set listData(value:BaseListData):void { _listData = value; }
Свойство
При использовании в качестве средства визуализации или редактора вставных элементов Flex устанавливает свойство
Несмотря на то что свойства этого класса могут быть перезаписаны, их необходимо рассматривать как доступные только для чтения. Они инициализируются классом списка и считываются средством визуализации или редактором элементов. Это может привести к непредвиденным результатам.
Свойства отмечены как связываемые, но фактически они не выполняют обнаружения изменений или отправку событий изменения. Свойства изменяются в целом путем установки нового значения для свойства
В набор интерфейсов входят: IDataRenderer, IFlexDisplayObject, ILayoutManagerClient, ISimpleStyleClient, IUIComponent. Класс UIComponent реализует все эти интерфейсы, за исключением интерфейса IDataRenderer. Поэтому при создании пользовательского средства визуализации или редактора элементов как подкласса для класса UIComponent следует реализовать только интерфейс IDataRenderer. Затем можно добавить к определению класса, что класс реализует IDataRenderer и IListItemRenderer.
IListItemRenderers, как правило, используются для отображения определенного поля из элемента поставщика данных и не могут быть повторно использованы в других столбцах DataGrid или в других списках с разными полями. При создании средства визуализации, которое может быть повторно использовано, можно также реализовать IDropInListItemRenderer, и список передаст большее количество данных средству визуализации, что позволит повторно использовать средство визуализации с другими полями данных.
Средства визуализации и редакторы элементов являются данными, передаваемыми от поставщика данных класса списка с помощью интерфейса IDataRenderer. Средства визуализации и редакторы, реализующие интерфейс IDropInListItemRenderer, получают другую информацию из класса списка. Средство визуализации или редактор элементов использует один или оба набора информации для отображения данных.
Зачастую средства визуализации и редакторы используются повторно. С момента создания они могут использоваться повторно путем простого ввода новых данных и необязательного свойства