[Oracle ADF] InputText Считать значение по ENTER


Пусть будет с panelBox и с кнопкой (как на проекте)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<af:panelBox text="Дополнительная информация" id="pb5"
showDisclosure="false" styleClass="panelBox-filter" showMaximize="never">

      <f:facet name="toolbar"/>

      <af:panelGroupLayout id="pfl1" layout="horizontal" halign="start">
          <af:inputText id="it3" columns="40" value="#{MyBean.searchByAdditionalInformation}">
              <af:clientListener method="handleEnterEvent" type="keyPress"/>
          </af:inputText>
          <af:button actionListener="#{MyBean.searchByAdditionalInformation}"
                               id="searchLink" icon="/images/menu/func_search_16_ena.png"/>
      </af:panelGroupLayout>

</af:panelBox>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private String searchByAdditionalInformation;

public void setSearchByAdditionalInformation(String searchByAdditionalInformation) {
this.searchByAdditionalInformation = searchByAdditionalInformation;
}

public String getSearchByAdditionalInformation() {
return searchByAdditionalInformation;
}

public void searchByAdditionalInformation(ActionEvent actionEvent) {
System.out.println(" RESULT " + searchByAdditionalInformation);

    if (!((searchText == null) || (searchText.length() == 0))) {
          // сделать то
      } else {
          // сделать се
      }

}



Это вообще подключаемый к странице js. Смысл такой. По Enter на странице ищется компонент с id “searchLink”. И кликается по нему. А на саму кнопку вешается событие ее нажатия.

При необходимости ее можно сделать скрытой.


1
2
3
4
5
6
7
8
9
function handleEnterEvent(evt) {
var \_keyCode = evt.getKeyCode();
if (\_keyCode == AdfKeyStroke.ENTER_KEY) {
var comp = evt.getSource();
var button = comp.findComponent('searchLink');
AdfActionEvent.queue(button, button.getPartialSubmit());
evt.cancel();
}
}