Поскольку celleditor компонента primefaces не поддерживает selectCheckboxMenu, я создал пользовательский selectCheckboxMenu для имитации этой функциональности.Я реализовал это, используя оверлейную панель и selectManyMenu.Внешний вид такой же, как у selectCheckBoxMenu, но я столкнулся с серьезной проблемой.Когда я впервые пытаюсь отобразить selectManyMenu внутри древовидной таблицы, выбранные элементы равны 0. Это происходит потому, что свойство, содержащее выбранные элементы, обновляется пустой строкой.Возможно, я мог бы объяснить это, потому что я использовал один и тот же идентификатор для каждого ребенка в древовидной таблице.Я проверил только с одним ребенком и родителем, и результат был таким же.Возможно, есть лучший способ реализовать это.Все ваши предложения и идеи приветствуются.
<ui:define name="content-center">
<h:form id="form">
<p:treeTable id="treetable" value="{selectManyView.getRoot()}" var="node"
selectionMode="checkbox"
nodeVar="treeNode" selection="#{selectManyView.selectedNodes}">
<p:column headerText="CalculationType">
<p:treeNode rendered="#{node.getNodeType().name() == 'Child'}" style="padding-left:24px;">
<h:outputText value="#{selectManyView.transformThemesToString(node)}"
id="calculationTypes" />
<p:commandLink onclick="PF('calc').show()">
<i class="ui-icon ui-icon-triangle-1-s ui-c"></i>
</p:commandLink>
<p:overlayPanel id="calcTypesPanel" hideEffect="fade"
style="width:auto;" widgetVar="calc">
<p:selectManyCheckbox value="#{node.calculationTypes}" >
<p:ajax event="change" listener="#{node.setSelectedCalculationTypes()}" update="calculationTypes"/>
<f:selectItems value="#{selectManyView.tableCalculationTypes()}"/>
</p:selectManyCheckbox>
</p:overlayPanel>
</p:treeNode>
</p:column>
</p:treeTable>
</h:form>
Я бы хотел, чтобы selectManyMenu имел выбранные элементы, которые я определил в управляемом компоненте.