[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