[jbosstools-issues] [JBoss JIRA] (JBIDE-21323) EL Knowledge Base Problem with enums
Viacheslav Kabanovich (JIRA)
issues at jboss.org
Fri Dec 18 17:37: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:36 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 if statuses is invoked as #\{bean.statuses}.
If statuses is invoked as #{bean.getStatuses()}", then the first 3 cases (collections) work ok, and the case of array does not work.
[~andrei.ivanov], please specify what is return type of getStatuses() in your case, is it an array?
Is it an acceptable workaround to use #\{bean.statuses} ?
Anyway, the case I have reproduced is a bug indeed, though it is not specific to enums only, but to any bean classes, so that I would open a new issue for it.
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 all cases both stat.name() and stat.label worked ok if statuses is invoked as #{bean.statuses}".
If statuses is invoked as #{bean.getStatuses()}", then the first 3 cases (collections) work ok, and the case of array does not work.
[~andrei.ivanov], please specify what is return type of getStatuses() in your case, is it an array?
Is it an acceptable workaround to use #{bean.statuses} ?
Anyway, the case I have reproduced is a bug indeed, though it is not specific to enums only, but to any bean classes, so that I would open a new issue for it.
> 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