Работа с составным блоком

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере описываются некоторые приемы работы с составным блоком аналитической панели. После запуска примера выполняются следующие операции:

Исходный код

Для выполнения примера предполагается наличие в отчете репозитория более одного составного блока. Далее необходимо в классе ViewController (см. раздел «Отображение аналитической панели») добавить следующие методы вместе с их реализацией:

// Выполняет действия, связанные с началом расчетов контроллера представления
-(void)calculationsStart{
    // Получаем контроллер аналитической панели
    MADashboardReportViewController* dashboard = (MADashboardReportViewController *)m_controller;
    // Получаем аналитическую панель
    APKap *report = [dashboard report];
    // Получаем массив составных блоков
    NSMutableDictionary *blocks = [report compositeBlocks];
    if ([blocks count] > 0) {
        // Получаем ключ составного блока
        NSString *key = [[blocks allKeys] objectAtIndex:0];
        // Получаем составной блок по заданному ключу
        APCompositeBlock *block = [blocks valueForKey: key];
        // Показываем индикатор загрузки
        [block dataViewControllerWillStartCalculations];
        } else {
        NSLog(@"Составные блоки отсутствуют");
    }
    // Вызываем метод calculationsStop после паузы длиной 5 секунд
    [self performSelector:@selector(calculationsStop) withObject:nil afterDelay:5.0f];
}

// Выполняет действия, связанные с окончанием расчетов контроллера представления
-(void)calculationsStop{
    // Получаем контроллер аналитической панели
    MADashboardReportViewController* dashboard = (MADashboardReportViewController *)m_controller;
    // Получаем аналитическую панель
    APKap *report = [dashboard report];
    // Получаем массив составных блоков
    NSMutableDictionary *blocks = [report compositeBlocks];
    if ([blocks count] > 0) {
        // Получаем ключ составного блока
        NSString *key = [[blocks allKeys] objectAtIndex:0];
        // Получаем составной блок по заданному ключу
        APCompositeBlock *block = [blocks valueForKey: key];
        // Скрываем индикатор загрузки
        [block dataViewControllerDidFinishCalculations];
        } else {
        NSLog(@"Составные блоки отсутствуют");
    }
}

Также необходимо разместить в теле метода executeExample класса ViewController следующий код:

// Получаем контроллер аналитической панели
MADashboardReportViewController* dashboard = (MADashboardReportViewController *)m_controller;
// Получаем аналитическую панель
APKap *report = [dashboard report];
// Получаем массив составных блоков
NSMutableDictionary *blocks = [report compositeBlocks];
// Получаем ключ составного блока
NSString *key = [[blocks allKeys] objectAtIndex:0];
// Получаем составной блок по заданному ключу
APCompositeBlock *block = [blocks valueForKey: key];
// Получаем заголовок составного блока
NSString *title = [block blockTitle];
// Получаем координаты вложенного контроллера составного блока
CGRect dataViewRect = [block dataViewRect];
// Получаем индекс составного блока
int index = [block index];
// Получаем признак того, нужно ли показывать составной блок в режиме слайдов
BOOL visibleInSlideshow =[ block isVisibleInSlideshow];
// Выводим в консоль среды разработки информацию о составном блоке
NSLog(@"Заголовок составного блока: %@", title);
NSLog(@"Ширина вложенного контроллера составного блока: %f", dataViewRect.size.width);
NSLog(@"Индекс составного блока: %d", index);
NSLog(@"Признак того, нужно ли показывать составной блок в режиме слайдов: %@", visibleInSlideshow? @"да": @"нет");
// Вызываем метод calculationsStart после паузы длиной 5 секунд
[self performSelector:@selector(calculationsStart) withObject:nil afterDelay:5.0f];

В результате выполнения примера на экране мобильного устройства была отображена аналитическая панель, содержащая составные блоки:

Через 5 секунд после запуска примера для одного из составных блоков будет отображен индикатор загрузки:

Спустя еще 5 секунд отображенный индикатор загрузки будет скрыт, после чего аналитическая панель примет первоначальный вид. Также в консоль среды разработки будет выведена информация о выбранном составном блоке:

Заголовок составного блока: GDP per capita, PPP (constant 2005 international $)

Ширина вложенного контроллера составного блока: 380.000000

Количество составных блоков у аналитической панели: 0

Признак того, нужно ли показывать составной блок в режиме слайдов: да

См. также:

Примеры использования компонентов