Необходимо реализовать автоматическое предложение с множественным выбором в текстовом поле ввода в Oracle ADF - PullRequest
1 голос
/ 17 марта 2012

Oracle ADF Jdev Ver: 11.1.1.4

Мое требование заключается в создании поля ввода, в котором я могу предоставить автоматическое предложение, и пользователь может ввести несколько идентификаторов электронной почты. Это похоже на текущее поле «Кому» при создании письма в Gmail.

Проблема: Я реализовал поле ввода с автоматическим предложением. Для первой записи все работает нормально. когда я ввожу 2-е значение (я использовал ',' (запятую) в качестве разделителя и обработал его в методе бобов 'offerItems', чтобы взять подстроку после запятой для предоставления предложения), после выбора .... первое значение теряется , Поэтому за один раз во входном тексте выбирается только одно значение.

Введите текст:

<af:inputText label="Names" id="it21" rows="2"
columns="50" simple="true"
valueChangeListener="#{VisitBackingBean.visitMembersInputBoxCL}"
binding="#{VisitBackingBean.visitMembersInputBox}">
<af:autoSuggestBehavior suggestItems="#{VisitBackingBean.onSuggest}"/>
</af:inputText>

Метод бобов:

public List onSuggest(FacesContext facesContext,
AutoSuggestUIHints autoSuggestUIHints) {
BindingContext bctx = BindingContext.getCurrent();
BindingContainer bindings = bctx.getCurrentBindingsEntry();
String inputNamevalue = autoSuggestUIHints.getSubmittedValue().trim();
if(inputNamevalue.contains(",")) {
inputNamevalue = inputNamevalue.substring(inputNamevalue.lastIndexOf(",")+1).trim();
}
//create suggestion list
List<SelectItem> items = new ArrayList<SelectItem>();
// if (autoSuggestUIHints.getSubmittedValue().length() > 3) {
// }
OperationBinding setVariable =
(OperationBinding)bindings.get("setnameSearch");
setVariable.getParamsMap().put("value",
inputNamevalue);
setVariable.execute();

//the data in the suggest list is queried by a tree binding.
JUCtrlHierBinding hierBinding =
(JUCtrlHierBinding)bindings.get("AutoSuggestName_TUserROView1");
//re-query the list based on the new bind variable values
hierBinding.executeQuery();
//The rangeSet, the list of queries entries, is of type //JUCtrlValueBndingRef.
List<JUCtrlValueBindingRef> displayDataList =
hierBinding.getRangeSet();
for (JUCtrlValueBindingRef displayData : displayDataList) {
Row rw = displayData.getRow();
//populate the SelectItem list
items.add(new SelectItem(rw.getAttribute("UsrUserName").toString().trim() +
"<"UsrMailId").toString().trim() +
">",
rw.getAttribute("UsrUserName").toString().trim() +
"<" +
rw.getAttribute("UsrMailId").toString().trim() +
">"));
}
return items;
}

Подскажите, пожалуйста, как мне достичь упомянутой функциональности.

...