Ну, мы пытаемся отрисовать кучу списков. Некоторые из них имеют только одну запись, и мы хотим, чтобы они отображались как поля ввода только для чтения (чтобы пользователи не были одурачены и их было легче читать).
Но, кажется, довольно сложно получить доступ к внутреннему размеру элементов снаружи.
Мне пришлось переписать тег htmlselectonemenu ... Есть ли другой, более приятный способ? Возможно ли получить к нему доступ на уровне тегов?
/**
* In case there is only one or less elements in the select list -> set readonly(true)
*/
public class HtmlSelectOneMenuModf extends HtmlSelectOneMenu {
@Override
public boolean isReadonly() {
for (Iterator iterator = getChildren().iterator(); iterator.hasNext();) {
Object obj = iterator.next();
if ( obj instanceof UISelectItems) {
UISelectItemsi = (UISelectItems) obj;
if(i.getSelectItems().size() <=1)
super.setReadonly(true);
}
}
return super.isReadonly();
}
}
Мы отдыхаем от JSF 1.2, кстати ...