barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком orbeon javascript. Показать все сообщения
Показаны сообщения с ярлыком orbeon javascript. Показать все сообщения

вторник, 13 декабря 2011 г.

Формирование Орбеоном "эффективных" id элементов XBL-компонента при отрисовке страницы

При отрисовке страницы Орбеоном окончательные id ("эффективные" в терминологии Орбеона - http://wiki.orbeon.com/forms/doc/developer-guide/xforms-javascript-integration), присваиваемые элементам управления компонента (и по которым, можно, скажем, получить их значения  из JS вызовом ORBEON.xforms.Document.getValue()), отличаются от тех, которые были заданы в xbl-файле компонента.
Во-первых, в начало id-шника добавляется нечто вроде 'xf-396$', где вместо 396 будут другие цифры, выполняющие роль идентификатора компонента для разделения областей видимости id-шников разных компонентов, т.е. для разных экземпляров одного и того же компонента это число одинаково (не проверял, постоянно ли оно для последовательных загрузок формы или для различных запусков JVM, т.к. считаю, что в любом случае полагаться на это постоянство опасно). Если компонент вкладывается в другой компонент - соответственно, в начале id-шника оказывается уже несколько таких последовательностей.
Во вторых, если компонент вложен в repeat, то в конце к его id добавляется '·1', '·2' и т.п. в зависимости от текущей итерации repeat`а (где '·' - это символ U+00B7). Если repeat`ы - вложенные, то окончания эффективного id буду выглядеть как '·1-1', '·1-2', '·2-1' и т.п. (где первая цифра - итерация самого внешнего repeat`а, а после неё через дефис идут итерации вложенных в порядке углубления). Правило относительно repeat`ов относится не только к компонентам, но и к любым элементам управления.

пятница, 9 декабря 2011 г.

Orbeon: отображение индикатора загрузки

Для того, чтобы вручную показать индикатор загрузки (появляющийся, например, когда orbeon отправляет запросы на сервер), нужно выполнить:
xformsDisplayIndicator('loading', 'Ваш текст для отображения на индикаторе');
Скрыть его можно следующим образом:

var form = ORBEON.xforms.Globals.requestForm;
if(form!=null && ORBEON.xforms.Globals.formLoadingLoadingOverlay[form.id]!=null)
     ORBEON.xforms.Globals.formLoadingLoadingOverlay[form.id].hide();

Orbeon: отображение и скрытие стандартной модальной панели ожидания

В Орбеоне есть своя модальная панель ожидания, которая затемняет всё окно и отображает крутящиеся стрелочки посередине (например, во время отправки формы). Показывается она вызовом:
ORBEON.util.Utils.displayModalProgressPanel();
, а скрывается:
ORBEON.util.Utils.hideModalProgressPanel()