Поставщик данных для диаграммы содержит массив объектов обслуживания. Объект обслуживания состоит из нескольких частей, указывающих идентификатор установки, номер объекта и название объекта, как показано ниже:
{
installationID:1000,
facilityNum:529,
facilityName:"Building1"
}
У меня есть диаграмма, показывающая потребление энергии на одно здание. На схеме могут быть изображены здания из нескольких разных регионов. Я хочу:
- Сгруппируйте все здания в одном регионе вместе.
- Включайте метку региона только тогда, когда она запускает новую группу.
- Align the label parts in a grid such that:
- All region labels are left aligned with each other.
- Все идентификаторы зданий совпадают друг с другом по правому краю.
- Названия зданий выровнены по левому краю.
Пример желаемого результата показан на изображении ниже.
Используя функцию настраиваемой метки, примененную к оси категорий, я могу объединить значения в одну строку. Сортировка идентификатора региона массива, и я могу даже удалить (не добавить) идентификатор региона, если только не запускается новая группа. Здесь показана функция настраиваемого ярлыка.
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;
}
Однако это генерирует единственную строку, выровненную по правому краю (как и ожидалось). Я хочу добиться выравнивания трех свойств по левому, правому и левому краям, как описано выше.
Я попытался объединить значения свойств в функции метки с помощью символа «@» в качестве разделителя. Мысль заключалась в том, что я мог бы создать настраиваемое средство визуализации меток, которое разделило бы строку по этому разделителю и при необходимости выполняло бы выравнивание. Однако, похоже, я не могу изменить выравнивание метки в настраиваемом средстве визуализации меток.
Как я могу выровнять составные метки в сетке, как на гибкой диаграмме?