onNodeSelect в Mindmap Primefaces 3.5 не вызывается
Небольшой вопрос, касающийся карты разума и события select в простом виде.
Вот мой компонент
<h:form>
<prime:mindmap value="#{artifactSelectionBackingBean.root}"
style="width:100%;height:600px;border:1px solid black;"
rendered="#{artifactSelectionBackingBean.visibleMindmap}">
<prime:ajax event="select"
listener="#{artifactSelectionBackingBean.onNodeSelect}" />
<prime:ajax event="dblselect"
listener="#{artifactSelectionBackingBean.onNodeDblselect}"
update="output" oncomplete="details.show()" />
</prime:mindmap>
<prime:dialog widgetVar="details" header="Node Details"
resizable="true" modal="true" showEffect="fade" hideEffect="fade">
<h:outputText id="output"
value="#{artifactSelectionBackingBean.selectedNode.data}" />
</prime:dialog>
</h:form>
Теперь другие методы в точности копируются / вставляются из витрины ( http://www.primefaces.org/showcase/ui/mindmap.jsf). Поведение состоит в том, что карта разума отображается (с правильной корневой и начальной конфигурацией), однако, событие "select" ничего не делает, и "двойной выбор" возвращает пустое поле. Что я делаю неправильно? Это было скопировано прямо из витрины в конце концов...
Кроме того, я использую Primefaces 3.5. Любая помощь приветствуется!!!
PS Я знаю, что добавил визуализированный атрибут, но это "true", так как я установил его правильно, и карта разума правильно отображается в начале.
1 ответ
ХОРОШО! Я наконец-то нашел ответ, когда просматривал stackru по всем видам проблем, связанных с mindmap / primefaces, и отчаянно пытался применить любое решение.
По-видимому, компонент ManagedBean/Named (если вы используете CDI) должен быть @SessionScoped и НЕ @RequestScoped (который используется по умолчанию). Если это @RequestScoped, вы получаете своеобразное поведение, и определенные события (в моем случае событие "select") НЕ запускаются.
Я не знаю, является ли это ошибкой или тщательно исключено из документации. Тем не менее, кто-то должен документировать это явно!