Наложение Flex 4 Datagrid - PullRequest
       0

Наложение Flex 4 Datagrid

0 голосов
/ 14 июня 2011

Мне нужно нарисовать наложение поверх ячейки данных. Я хочу, чтобы наложение располагалось поверх данных базовой ячейки и отображало шаблон штриховки, т.е. горизонтальные и вертикальные линии, как мини-сетка в ячейке.

Идея наложения заключается в том, чтобы показать, что, если данные не были получены в течение некоторого времени, они становятся устаревшими или устаревшими.

Я почти уверен, что мне нужно что-то сделать в updateDisplayList () средства визуализации, но я не использовал API рисования, поэтому не уверен, как это сделать.

Любая помощь будет очень признательна.

Спасибо Mark

1 Ответ

0 голосов
/ 15 июня 2011

Итак, я полагаю, у вас есть два состояния для ItemRenderer, одно называется «новый», одно «старое», верно?

Одна хорошая новость: вам не нужно переопределять функцию updateDisplayList. Flex SDK 4+ предоставляет вам графическую утилиту под названием FXG. Вы можете посетить эту ссылку для получения дополнительной информации: http://help.adobe.com/en_US/flex/using/WS145DAB0B-A958-423f-8A01-12B679BA0CC7.html

В вашем случае вы можете сделать что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" width="50" height="50" click="currentState = 'old'">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:states>
        <s:State name="new" />
        <s:State name="old" />
    </s:states>
    <s:BorderContainer width="50" height="50">
        <s:Label text="{data.toString()}" />
    </s:BorderContainer>
    <s:Path data="M 0 10 L 50 10 M 0 20 L 50 20 M 0 30 L 50 30 M 0 40 L 50 40 M 10 0 L 10 50 M 20 0 L 20 50 M 30 0 L 30 50 M 40 0 L 40 50"
            includeIn="old">
        <s:stroke>
            <s:SolidColorStroke color="black" weight="1" />
        </s:stroke>
    </s:Path>
</s:ItemRenderer>

Идея: создайте путь (нарисуйте вашу сетку) и поместите его в состояние «старый», при каждом изменении элемента на состояние «старый», будет появляться сетка.

...