For fixed af:selectOneChoice component is used Users entity, userRole element. userRole is used, because check constraint is enabled for this element on the database level - USER_ROLE IN ('manager','technician','user'). So, it is possible to use only those three constants. You might think - 'everything is fine, I will use simple fixed af:selectOneChoice as ADF Faces component for userRole element'. But, when fixed af:selectOneChoice is created using JDeveloper dialog - JSF component f:selectItems is used for af:selectOneChoice elements.
However, f:selectItems does not provide label/value setting functonality and there is no binding to property file elements. So, search form with by default created fixed af:selectOneChoice will look similar, for user role in dropdown list is used value stored in the database:
To modify default fixed af:selectOneChoice component and bind labels of it's elements to values available in property file, follow steps described below:
- Delete JSF component - f:selectItems from af:selectOneChoice in searchUser.jspx page
- Add four af:selectItem ADF Faces components into af:selectOneChoice with values - empty selection, 'manager', 'technician' and 'user'
- In searchUser.jspx page definition file delete list definition for userRole element. And, create attributeValues definition for userRole element with the same id and item value as it was defined in deleted list definition
- Create UIResources.properties file and declare three elements in it - 'Manager', 'Technician', 'User'
- Bind labels of af:selectItem components to elements declared in UIResources.properties file