]
Alexey Kazakov resolved JBIDE-21378.
------------------------------------
Resolution: Done
EL Knowledge Base Problem with enums
------------------------------------
Key: JBIDE-21378
URL:
https://issues.jboss.org/browse/JBIDE-21378
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: jsf
Environment: Eclipse Mars.1 (4.5.1), Primefaces 5.x
Reporter: Andrei Ivanov
Assignee: Viacheslav Kabanovich
Priority: Minor
Fix For: 4.3.1.Beta2
Enum properties and method are not recognized:
In this case, {{label}} is recognized and shows up in the completion suggestions, but
{{name()}} is not and marked as unrecognized.
{code:xml}
<p:dataTable value="#{page.dataModel}" var="managerData"
lazy="true"
rowStyleClass="#{managerData.status.label}
labor-protection-#{managerData.status.name().replace('_',
'-').toLowerCase()}">
...
</p:dataTable>
{code}
{code:java}
public enum SignOffStatus {
VALID("Valid"),
ALMOST_EXPIRED("Almost expired"),
EXPIRED("Expired");
private final String label;
private SignOffStatus(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
{code}
In a different page:
{code:xml}
<p:selectOneMenu value="#{instancePage.instanceCriteria.status}">
<f:selectItem itemLabel="--select--" itemValue="#{null}" />
<f:selectItems value="#{appBean.getStatuses()}" var="stat"
itemLabel="#{stat.label}" />
</p:selectOneMenu>
{code}
The enum has a {{getLabel()}} as the one above, but in this context it's not
recognized ({{"label" cannot be resolved}}).