我有一个J2E Webapp,我在其中使用诸如<p:timeline>
之类的Primefaces组件。我正在尝试针对<p:dataTable>
采取与<p:contextMenu>
类似的行为。
更具体地说,当并且仅当我右键单击时间轴事件时,我希望拥有自己的<p:contextMenu>
。 <p:dataTable>
执行此操作的方式是在发生右键单击时选择一行,然后打开菜单。不幸的是,<p:timeline>
没有这种行为。
到目前为止,我有一个时间表和专用的<p:contextMenu>
。仅在右键单击时间轴内的任何地方(而不仅仅是事件)时,菜单才会打开。此外,右键单击事件不会将其选中。
为清楚起见,这里有一些代码:
<h:form id="form">
<p:timeline id="history" value="#{HistoryBean.timeline}"
editable="true" eventMargin="10"
eventMarginAxis="0" unselectable="true"
showNavigation="true" showButtonNean="true"
stackEvents="false" axisOnTop="true" >
<p:ajax event="select" listener="#{HistoryBean.onSelectEvent}" process=":form" />
</p:timeline>
<p:contextMenu for="history">
<p:menuitem value="Show details" action="#{HistoryBean.showEventDetails}" />
<p:menuitem value="Edit" action="#{HistoryBean.editEvent}" />
<p:menuitem value="Delete" action="#{HistoryBean.deleteEvent}" />
</p:contextMenu>
</h:form>
所以我的问题可以归结为:
如何仅在右键单击事件而不是整个<p:contextMenu>
对象时打开<p:timeline>
,以及如何在右键单击时选择事件?