p:inplace tab/enter support

UI Components for JSF
Post Reply
dominik.f
Posts: 1
Joined: 15 Oct 2018, 16:49

16 Oct 2018, 08:30

Hi,

is it possible to add tab and/or enter support to p:inplace with an h:inputText in it? (at this special case within dataTable)

Tab: if inplace is open and inputText focused, tab saves the current and open and focus the next on.
Enter: like hiting the save button.

Code: Select all

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui">

<h:head />

<h:body>
	<f:view>
		<h:form>

			<p:dataTable var="car" value="#{testBean.cars}">
				<p:column headerText="Id">
					<h:outputText value="#{car.id}" />
				</p:column>

				<p:column headerText="Year">
					<p:inplace editor="true">
						<h:inputText value="#{car.year}" />
					</p:inplace>
				</p:column>

				<p:column headerText="Brand">
					<p:inplace editor="true">
						<h:inputText value="#{car.brand}" />
					</p:inplace>
				</p:column>

				<p:column headerText="Color">
					<p:inplace editor="true">
						<h:inputText value="#{car.color}" />
					</p:inplace>
				</p:column>
			</p:dataTable>

		</h:form>
	</f:view>
</h:body>
</html>

Code: Select all

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean(name = "testBean")
@ViewScoped
public class TestBean implements Serializable {

    private List<Car> cars;

    @PostConstruct
    public void init() {
        cars = new ArrayList<>();
        cars.add(new Car(getRandomId(), "Volvo", getRandomYear(), "Black"));
        cars.add(new Car(getRandomId(), "Renault", getRandomYear(), "Green"));
        cars.add(new Car(getRandomId(), "Fiat", getRandomYear(), "Blue"));
        cars.add(new Car(getRandomId(), "Ford", getRandomYear(), "Silver"));
    }

    public List<Car> getCars() {
        return cars;
    }

    private String getRandomId() {
        return UUID.randomUUID().toString().substring(0, 8);
    }

    private int getRandomYear() {
        return (int) (Math.random() * 50 + 1960);
    }
}

Code: Select all

public class Car {

    private String id;
    private String brand;
    private int year;
    private String color;
	
	public Car(String id, String brand, int year, String color) {
        this.id = id;
        this.brand = brand;
        this.year = year;
        this.color = color;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getId() {
        return id;
    }

}

PrimeFaces 6.2
Mojarra 2.2.13
wildfly-10.1.0.Final

Firefox 61 / Chrome 69


Thanks

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

16 Oct 2018, 13:59

I think you can by looking at the javascript source of inplace and override specific functions

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 23 guests