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