DataTable - ContextMenu

ContextMenu has special integration with DataTable.

RightClick to View Options
IdYearBrandColor
021112401964RenaultOrange
2107d80c1982HondaMaroon
721dd4fd1967HondaGreen
9daacfc01988RenaultYellow
369b83621983FordBlue
0b578e2e1983FiatOrange
5f8a42611968FordBrown
65ec5dfd1962HondaGreen
416326801969HondaBrown
85edb6f71964RenaultGreen
Car Info
<h:form id="form">
    <p:dataTable id="cars" var="car" value="#{dtContextMenuView.cars}" rowKey="#{car.id}"
                 selection="#{dtContextMenuView.selectedCar}" selectionMode="single">
        <f:facet name="header">
            RightClick to View Options
        </f:facet>
        <p:column headerText="Id">
            <h:outputText value="#{car.id}" />
        </p:column>
        <p:column headerText="Year">
            <h:outputText value="#{car.year}" />
        </p:column>
        <p:column headerText="Brand">
            <h:outputText value="#{car.brand}" />
        </p:column>
        <p:column headerText="Color">
            <h:outputText value="#{car.color}" />
        </p:column>
    </p:dataTable> 

    <p:contextMenu for="cars">
        <p:menuitem value="View" update="carDetail" icon="ui-icon-search" oncomplete="PF('carDialog').show()"/>
        <p:menuitem value="Delete" update="cars" icon="ui-icon-close" actionListener="#{dtContextMenuView.deleteCar}"/>
    </p:contextMenu>

    <p:dialog header="Car Info" widgetVar="carDialog" modal="true" showEffect="fade" hideEffect="fade" resizable="false">
        <p:outputPanel id="carDetail" style="text-align:center;">
            <p:panelGrid  columns="2" rendered="#{not empty dtContextMenuView.selectedCar}" columnClasses="label,value">
                <f:facet name="header">
                    <p:graphicImage name="demo/images/car/#{dtContextMenuView.selectedCar.brand}-big.gif"/> 
                </f:facet>

                <h:outputText value="Id:" />
                <h:outputText value="#{dtContextMenuView.selectedCar.id}" />

                <h:outputText value="Year" />
                <h:outputText value="#{dtContextMenuView.selectedCar.year}" />

                <h:outputText value="Color:" />
                <h:outputText value="#{dtContextMenuView.selectedCar.color}" style="color:#{dtContextMenuView.selectedCar.color}"/>

                <h:outputText value="Price" />
                <h:outputText value="$#{dtContextMenuView.selectedCar.price}" />
            </p:panelGrid>
        </p:outputPanel>
    </p:dialog>
</h:form>