@Override public String fullTextSearch(String text) { boolean fullTextSearch = false; StringBuffer buffer = new StringBuffer(BaseNLS.constants().label_filtered() + " "); if (text == null || (text != null && text.equals(""))) { setSearchCriterions(null); } else { String locale = NLS.constants().locale(); PriseMedicamentRegimeRequest request = (PriseMedicamentRegimeRequest) getContext(); newRequest = false; ImogJunctionProxy junction = request.create(ImogConjunctionProxy.class); List<ImogCriterionProxy> criterias = new ArrayList<ImogCriterionProxy>(); ImogJunctionProxy disJunction = request.create(ImogDisjunctionProxy.class); List<ImogCriterionProxy> criterionList = new ArrayList<ImogCriterionProxy>(); // Search field Designation BasicCriteriaProxy medicament_designationCrit = request.create(BasicCriteriaProxy.class); medicament_designationCrit.setField("medicament.designation"); medicament_designationCrit.setOperation(CriteriaConstants.STRING_OPERATOR_CONTAINS); medicament_designationCrit.setValue(text); buffer.append( "(" + NLS.constants().medicament_field_designation() + ": " + text + ") " + SYMBOL_OR + " "); criterionList.add(medicament_designationCrit); disJunction.setCriterions(criterionList); criterias.add(disJunction); fullTextSearch = true; if (ProfileUtil.isAdmin()) { BasicCriteriaProxy isDeletedCrit = request.create(BasicCriteriaProxy.class); isDeletedCrit.setField("deleted"); isDeletedCrit.setOperation(CriteriaConstants.OPERATOR_ISNULL); isDeletedCrit.setValue(text); criterias.add(isDeletedCrit); } junction.setCriterions(criterias); // add FilterCriteria if exists if (isFiltered && filterCriteria != null) setSearchCriterions(mergeFilterCriteriaAndFullTextSearchCriterion(request, junction)); else setSearchCriterions(junction); } if (fullTextSearch) { String message = buffer.toString(); int lastSymbolIndex = message.lastIndexOf(SYMBOL_OR); return message.substring(0, lastSymbolIndex); } else return null; }