[jbosstools-issues] [JBoss JIRA] (JBIDE-21323) EL Knowledge Base Problem with enums
Viacheslav Kabanovich (JIRA)
issues at jboss.org
Fri Dec 18 17:26:00 EST 2015
[ https://issues.jboss.org/browse/JBIDE-21323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143144#comment-13143144 ]
Viacheslav Kabanovich edited comment on JBIDE-21323 at 12/18/15 5:25 PM:
-------------------------------------------------------------------------
I tried these cases:
{code}
public Set<SignOffStatus> getStatuses()
public List<SignOffStatus> getStatuses()
public Collection<SignOffStatus> getStatuses()
public SignOffStatus[] getStatuses()
{code}
In all cases both stat.name() and stat.label worked ok.
[~andrei.ivanov], please specify what is return type of getStatuses() in your case?
was (Author: scabanovich):
I tried these cases:
{code}
public Set<SignOffStatus> getStatuses()
public List<SignOffStatus> getStatuses()
public Collection<SignOffStatus> getStatuses()
public SignOffStatus[] getStatuses()
{code}
In the first 3 cases both stat.name() and stat.label worked ok. In the case of array they did not work or rather they suggested to use syntax stat.next().label.
Yes, this is a bug, though it is not specific to enums, it involves all beans.
[~andrei.ivanov], please specify what is return type of getStatuses() in your case, is it an array?
Can we move the array problem into a separate issue, because it is not specific to enums?
> EL Knowledge Base Problem with enums
> ------------------------------------
>
> Key: JBIDE-21323
> URL: https://issues.jboss.org/browse/JBIDE-21323
> Project: Tools (JBoss Tools)
> Issue Type: Bug
> Components: jsf
> Affects Versions: 4.3.0.Final
> Environment: Eclipse Mars.1 (4.5.1), Primefaces 5.x
> Reporter: Andrei Ivanov
> Assignee: Viacheslav Kabanovich
> Priority: Minor
> Fix For: 4.4.x
>
>
> 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}}).
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jbosstools-issues
mailing list