Поставщик данных для диаграммы содержит массив объектов объекта.Объект объекта состоит из нескольких частей с указанием идентификатора установки, номера объекта и названия объекта, как показано ниже:
{
installationID:1000,
facilityNum:529,
facilityName:"Building1"
}
У меня есть диаграмма, которая отображает потребление энергии на здание.На графике могут отображаться здания из нескольких разных регионов.Я хочу:
- Группировать все здания в одном регионе вместе.
- Включить метку региона только тогда, когда начинается новая группа.
- Выровнять меткучасти в сетке, такие что:
- Все метки региона выровнены по левому краю друг с другом.
- Все идентификаторы зданий выровнены по правому краю друг с другом.
- Названия зданий выровнены по левому краюдруг с другом.
Пример желаемого результата показан на рисунке ниже.
Использование пользовательскогоФункция метки применяется к оси категорий. Я могу объединить значения в одну строку.Сортировав идентификатор области массива, я могу даже удалить (не добавить) идентификатор области, если не начинается новая группа.Пользовательская функция метки показана здесь.
private var nextCategoryIndex:int = 1;
public function facilitiesLabelFunction(categoryValue:Object, previousCategoryValue:Object, axis:CategoryAxis, categoryItem:Object):String
{
var nextInstallationID:String = "";
var facilitiesColl:ArrayCollection = ArrayCollection(axis.dataProvider);
// if this is not the last facility to be processed get the next installation ID
if (nextCategoryIndex <= facilitiesColl.length - 1) {
nextInstallationID = facilitiesColl[nextCategoryIndex].installationID;
}
var label:String = categoryItem.facilityNum + " - " + categoryItem.facilityName;
// preppend the installation id when we start listing facilities from a different installation
if (nextInstallationID != categoryItem.installationID) {
label = categoryItem.installationID + " " + label;
}
nextCategoryIndex++;
return label;
}
Однако, это генерирует единственную строку, которая выровнена по правому краю (как и ожидалось).Я хочу добиться выравнивания трех свойств по левому, правому и левому краям, как описано выше.
Я попытался объединить значения свойств в функции метки с символом @ в качестве разделителя.Мысль была в том, что я мог бы создать собственный рендерер меток, который бы разбивал строку на этом разделителе и выполнял выравнивание по мере необходимости.Однако мне кажется, что я не могу изменить выравнивание метки в пользовательском средстве визуализации меток.
Как я могу выровнять метки, состоящие из нескольких частей, в сетке, как в моде на гибкой диаграмме?