My getDataByText() filter for a Smartfield is not working [message #1854789] |
Sat, 10 September 2022 06:51  |
Eclipse User |
|
|
|
Hi there everyone,
I have a lookup service I created to retrieve job titles from a remote REST server.
public class JobTitleLookupService extends AbstractLookupService<Integer>
implements IJobTitleLookupService {
@Override
public List<? extends ILookupRow<Integer>> getDataByKey(ILookupCall<Integer> call) {
JobTitleLookupCall c = (JobTitleLookupCall) call;
if (c.getKey() == null) {
return CollectionUtility.emptyArrayList();
}
Object key = c.getKey();
List<? extends ILookupRow<Integer>> rows = getRows();
if (rows == null) {
return CollectionUtility.emptyArrayList();
}
List<ILookupRow<Integer>> list = new ArrayList<>(rows.size());
for (ILookupRow<Integer> row : rows) {
if (key.equals(row.getKey())) {
list.add(row);
}
}
return list;
}
@SuppressWarnings("unchecked")
@Override
public List<? extends ILookupRow<Integer>> getDataByText(ILookupCall<Integer> call) {
JobTitleLookupCall c = (JobTitleLookupCall) call;
List<CategoryLabelEntityDo> labels = prepareList();
Predicate<CategoryLabelEntityDo> byText = label -> label.getString("description").toLowerCase()
.matches(c.getText().substring(0, c.getText().length() - 1).toLowerCase());
return (List<? extends ILookupRow<Integer>>) labels.stream().filter(byText)
.collect(Collectors.toList());
}
@Override
public List<? extends ILookupRow<Integer>> getDataByAll(ILookupCall<Integer> call) {
return getRows();
}
@Override
public List<? extends ILookupRow<Integer>> getDataByRec(ILookupCall<Integer> call) {
// return null;
return getDataByAll(call);
}
private List<? extends ILookupRow<Integer>> getRows() {
List<CategoryLabelEntityDo> labels = prepareList();
ArrayList<ILookupRow<Integer>> rows = new ArrayList<>();
labels.forEach((label) -> {
rows.add(new LookupRow<>(Integer.parseInt(label.getString("id")),
label.getString("description")));
});
return rows;
}
private List<CategoryLabelEntityDo> prepareList() {
CategoryLabelResponseEntityDo response =
BEANS.get(CategoryLabelResourceClient.class).getJobTitleList(TEXTS.get("No"));
List<CategoryLabelEntityDo> labels = response.result().get().get(0);
return labels;
}
}
My problem is that my getDataByText() function is not working at all, and it does not present me with propositions as I type into the JobTitle smart field.
What am I doing wrong?
Thanks a lot for your kind assistance.
Cheers,
JD
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04564 seconds