control.RollupButton
Расширяет control.RadioGroup.
Вертикальная группа кнопок в тулбаре.
Конструктор
control.RollupButton([params[, options]])
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object|IControl[] Параметры группы или массив кнопок. |
|
— |
Тип: IControl[] Массив кнопок. |
|
— |
Тип: Object Опции элемента управления. |
|
— |
Тип: Function|String Макет элемента управления. В конструктор макета передается объект, содержащий поля: • options - менеджер опций элемента управления control.RollupButton.options; • data - менеджер данных элемента управления control.RollupButton.data; • state - менеджер состояния элемента управления control.RollupButton.state. Макет меняет свой внешний вид на основе данных, состояния и опций элемента управления. Элемент управления, в свою очередь, реагирует на интерфейсные события макета и меняет значения полей control.RollupButton.state в зависимости от полученных команд. (Тип: конструктор объекта, реализующий интерфейсы: или ключ макета). |
|
{ top: 5, left: 5 } |
Тип: Object Положение элемента управления над картой. Задается в виде объекта со следующими полями: • right - отступ от правого края контейнера карты в пикселах; • bottom - отступ от нижнего края контейнера карты в пикселах; • left - отступ от левого края контейнера карты в пикселах. Если при этом заданы одновременно и top, и bottom, то значение bottom игнорируется. Аналогично, если заданы одновременно и left, и right, то значение right игнорируется. Если элемент управления добавляется в группу элементов (например, в тулбар или раскрывающийся список), то значение position не применяется. |
|
true |
Тип: Boolean Признак того, что элемент управления отображается. |
Пример:
// Создание пользовательской группы кнопок
// В примере используется jQuery, загруженный с http://yandex.st/jquery/1.6.4/jquery.min.js
var myRollupLayout = ymaps.templateLayoutFactory.createClass(
" <div id='rollup-header'>[if state.expanded]Свернуть[else]Развернуть[endif] </div>" +
// В этом контейнере будут располагаться дочерние элементы.
" <div id='rollup-body'> </div>", {
build: function () {
myRollupLayout.superclass.build.call(this);
this.checkExpandCallback = ymaps.util.bind(this.checkExpanded, this);
$('#rollup-header').bind('click', this.checkExpandCallback);
// Поскольку макет будет перестраиваться много раз из-за
// изменения значения поля state.expanded,
// нужно при каждом перестроении сообщать об изменении контейнера
// дочерних элементов через событие интерфейса IGroupControlLayout.
this.events.fire('childcontainerchange', {
newChildContainerElement: $('#rollup-body').get(0),
oldChildContainerElement: this.childContainerElement
});
this.childContainerElement = $('#rollup-body').get(0);
},
clear: function () {
$('#rollup-header').unbind('click', this.checkExpandCallback);
myRollupLayout.superclass.clear.call(this);
},
// Переопределяем метод, который требует интерфейс IGroupControlLayout.
getChildContainerElement: function () {
return this.childContainerElement;
},
checkExpanded: function () {
// При клике на переключающий элемент проверяем состояние
// элемента управления и генерируем одно из событий интерфейса
// IExpandableControlLayout.
if (this.getData().state.get('expanded')) {
this.events.fire('collapse');
} else {
this.events.fire('expand');
}
}
}),
rollupButton = new ymaps.control.RollupButton({
items: [
new ymaps.control.Button('Киев'),
new ymaps.control.Button('Львов'),
new ymaps.control.Button('Харьков')
]
}, {
layout: myRollupLayout
});
map.controls.add(rollupButton, {right: 5, top: 5});
Поля
Имя |
Тип |
Описание |
Данные группы. Унаследовано от control.Group. |
||
Менеджер событий. Унаследовано от IEventEmitter. |
||
Менеджер опций. Унаследовано от ICustomizable. |
||
Состояние вертикальной группы. Имена полей, доступных через метод data.Manager.get: |
События
Имя |
Описание |
Произошло добавление дочернего объекта. Унаследовано от ICollection. |
|
Изменение дом-элемента, в который добавляются дочерние элементы группы. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • newChildContainerElement - новый дом-элемент для дочерних элементов; • oldChildContainerElement - старый элемент для дочерних элементов. Унаследовано от control.Group. |
|
Список закрыт. Экземпляр класса Event. |
|
Список открыт. Экземпляр класса Event. |
|
Сменилась карта. Поля данных: • newMap - новая карта. Унаследовано от IParentOnMap. |
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Сменился родительский объект. Поля данных: • oldParent - старый родитель; • newParent - новый родитель. Унаследовано от IChild. |
|
Произошло удаление дочернего объекта. Унаследовано от ICollection. |
|
Выбран один из элементов группы. • item - ссылка на выбранный элемент группы. |
Методы
Имя |
Возвращает |
Описание |
add(item[, positionIndex]) |
Добавляет элемент управления в группу. Элемент можно добавлять, Возожные значения ключей: • "mapTools" - стандартный тулбар с кнопками "Навигация", "Выделение" и "Линейка" control.MapTools; • "miniMap" - обзорная карта control.MiniMap; • "scaleLine" - масштабный отрезок control.ScaleLine; • "searchControl" - панель поиска control.SearchControl; • "trafficControl" - панель пробок control.TrafficControl; • "typeSelector" - панель переключения типа карты control.TypeSelector; • "zoomControl" - ползунок масштаба control.ZoomControl; • "smallZoomControl" - простой ползунок масштаба control.SmallZoomControl. Унаследован от control.Group. |
|
Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик. Унаследован от control.Group. |
||
Функция для выборки дочерних элементов по условию. Унаследован от control.Group. |
||
get() |
Returns ссылку на объект контрола, добавленного по ключу или по индексу. Унаследован от control.Group. |
|
getAll() |
Returns массив дочерних элементов контрола. Унаследован от control.Group. |
|
HTMLElement |
Возвращает для своего дочернего объекта HTML-элемент, в котором он должен размещаться. Унаследован от IControlParent. |
|
HTMLElement |
Returns контейнер, в который добавляются дочерние элементы контрола. Унаследован от control.Group. |
|
Returns итератор по коллекции. Унаследован от ICollection. |
||
Number |
Returns количество дочерних элементов. Унаследован от control.Group. |
|
getMap() |
Returns ссылку на карту. Унаследован от IParentOnMap. |
|
Returns ссылку на родительский объект. Унаследован от IControl. |
||
Number |
Returns индекс выбранного элемента либо -1, если ни один элемент не выбран. Унаследован от control.RadioGroup. |
|
Integer |
Returns индекс дочернего элемента в группе. Унаследован от control.Group. |
|
Удаляет элемент управления из группы. Унаследован от control.Group. |
||
Удаляет все дочерние элементы из группы. Унаследован от control.Group. |
||
Устанавливает родительский объект. Унаследован от IControl. |
Описание полей
state
{data.Manager} state
Состояние вертикальной группы. Имена полей, доступных через метод data.Manager.get:
• expanded - признак, раскрыт ли список.
Пример:
// Создадим и добавим на карту список, который изначально открыт.
var rollupButton = new ymaps.control.RollupButton();
rollupButton.state.set('expanded', true);
map.controls.add(rollupButton);
Описание событий
collapse
Список закрыт. Экземпляр класса Event.
expand
Список открыт. Экземпляр класса Event.