[Oracle ADF] SelectManyCheckbox - получить выбранные Checkbox’ы


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<af:selectManyCheckbox id="smc1"
binding="#{TasksBean.tasksStatusFilter}"
        valueChangeListener="#{TasksBean.onCheckboxSelected}"
        autoSubmit="true"
        required="false">

    <af:selectItem
        label="Новая"
        value="New"
        id="si1"
        />

    <af:selectItem label="В работе" value="InWork" id="si2"/>
    <af:selectItem label="Завершена" value="Completed" id="si3"/>
</af:selectManyCheckbox>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
RichSelectManyCheckbox tasksStatusFilter;

 public void setTasksStatusFilter(RichSelectManyCheckbox tasksStatusFilter) {
     this.tasksStatusFilter = tasksStatusFilter;
 }

 public RichSelectManyCheckbox getTasksStatusFilter() {
     return tasksStatusFilter;
 }

 ****


 public void onCheckboxSelected (ValueChangeEvent valueChangeEvent) {
     System.out.println("================");
     System.out.println("BUTTON PRESSED BEGIN: ");
     System.out.println("================");

     System.out.println(tasksStatusFilter.getValue().toString());

     System.out.println("================");
     System.out.println("BUTTON PRESSED END: ");
     System.out.println("================");
 }

При выборе всех чекбоксов в консоли имеем:

================
BUTTON PRESSED BEGIN:
================
[New, InWork, Completed]
================
BUTTON PRESSED END:
================


Лучше

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void onCheckboxSelected (ValueChangeEvent valueChangeEvent) {

    ArrayList<String> selectedListElements = (ArrayList<String>)valueChangeEvent.getNewValue();

    for (int i = 0; i < selectedListElements.size(); i++) {
         System.out.println(selectedListElements.get(i));
    }


    if (selectedListElements.contains("New")){
            doTrue();
        } else {
            doFalse();
        }
}