Mirage LIVE PREVIEW

DataTable - ContextMenu

ContextMenu has special integration with DataTable.

Documentation
RightClick to View Options
IdYearBrandColor
2f684cdf1989HondaOrange
51464f041972FordMaroon
37f9aa0f1984MercedesOrange
b6016a211960JaguarBlack
378fe9021966HondaSilver
96d1c9b91962BMWBlue
cac5211d1982HondaYellow
411614592009BMWMaroon
51d76f701969JaguarMaroon
a1ce9a561961RenaultBrown
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="pi pi-search" oncomplete="PF('carDialog').show()"/>
        <p:menuitem value="Delete" update="cars" icon="pi pi-times" action="#{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>