List of usage examples for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteSettings setCssClassName
public AutoCompleteSettings setCssClassName(final String cssClassName)
From source file:com.doculibre.constellio.wicket.panels.search.advanced.searchRulePanels.TextSearchRulePanel.java
License:Open Source License
public TextSearchRulePanel(String id, SimpleSearch search, TextSearchRule rule, IModel typesModel) { super(id, search, rule, typesModel); TextField valueTextField;/*from w w w . ja v a 2s .c om*/ if (enabledRuleModel.getObject() != null && ((AdvancedSearchEnabledRule) enabledRuleModel.getObject()).getIndexField().isAutocompleted()) { IModel valueModel = new Model(rule.getTextValue()); AutoCompleteSettings settings = new AutoCompleteSettings(); settings.setCssClassName("autoCompleteChoices"); final String collectionName = search.getCollectionName(); final String indexfieldName = rule.getIndexFieldName(); valueTextField = new TextAndValueAutoCompleteTextField<Map.Entry<String, Object>>("value", valueModel, String.class, settings) { @Override protected Iterator<Map.Entry<String, Object>> getChoicesForWord(String word) { RecordCollectionServices recordCollectionServices = ConstellioSpringUtils .getRecordCollectionServices(); RecordCollection collection = recordCollectionServices.get(collectionName); IndexField indexField = collection.getIndexField(indexfieldName); AutocompleteServices autocompleteServices = ConstellioSpringUtils.getAutocompleteServices(); NamedList<Object> choices = autocompleteServices.suggest(word, indexField); return choices.iterator(); } }; } else { valueTextField = new TextField("value", new Model(rule.getTextValue())); } valueTextField.add(new SimpleAttributeModifier("name", rule.getPrefix() + SearchRule.DELIM + TextSearchRule.PARAM_VALUE)); add(valueTextField); DropDownChoice searchMethodSelect = new DropDownChoice("searchMethod", new Model(rule.getSearchMethod()), Arrays.asList(TextSearchMethod.values()), new IChoiceRenderer() { @Override public String getIdValue(Object object, int index) { return ((TextSearchMethod) object).name(); } @Override public Object getDisplayValue(Object object) { return new StringResourceModel(((TextSearchMethod) object).name(), TextSearchRulePanel.this, null).getString(); } }); searchMethodSelect.add(new SimpleAttributeModifier("name", rule.getPrefix() + SearchRule.DELIM + TextSearchRule.PARAM_SEARCH_METHOD)); add(searchMethodSelect); }
From source file:com.doculibre.constellio.wicket.panels.search.SearchFormPanel.java
License:Open Source License
@SuppressWarnings({ "rawtypes", "unchecked" })
public SearchFormPanel(String id, final IModel simpleSearchModel) {
super(id);//from w w w .j a v a2s . c o m
searchForm = new WebMarkupContainer("searchForm", new CompoundPropertyModel(simpleSearchModel));
simpleSearchFormDiv = new WebMarkupContainer("simpleSearchFormDiv") {
@Override
public boolean isVisible() {
SimpleSearch search = (SimpleSearch) simpleSearchModel.getObject();
return search.getAdvancedSearchRule() == null;
}
};
advancedSearchFormDiv = new WebMarkupContainer("advancedSearchFormDiv") {
@Override
public boolean isVisible() {
SimpleSearch search = (SimpleSearch) simpleSearchModel.getObject();
return search.getAdvancedSearchRule() != null;
}
};
advancedSearchPanel = new AdvancedSearchPanel("advanceForm", simpleSearchModel);
searchForm.add(new AttributeModifier("action", new LoadableDetachableModel() {
@Override
protected Object load() {
PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class);
return urlFor(pageFactoryPlugin.getSearchResultsPage(), new PageParameters());
}
}));
hiddenFields = new ListView("hiddenFields", new LoadableDetachableModel() {
@Override
protected Object load() {
List<SimpleParam> hiddenParams = new ArrayList<SimpleParam>();
HiddenSearchFormParamsPlugin hiddenSearchFormParamsPlugin = PluginFactory
.getPlugin(HiddenSearchFormParamsPlugin.class);
if (hiddenSearchFormParamsPlugin != null) {
WebRequestCycle webRequestCycle = (WebRequestCycle) RequestCycle.get();
HttpServletRequest request = webRequestCycle.getWebRequest().getHttpServletRequest();
SimpleParams hiddenSimpleParams = hiddenSearchFormParamsPlugin.getHiddenParams(request);
for (String paramName : hiddenSimpleParams.keySet()) {
for (String paramValue : hiddenSimpleParams.getList(paramName)) {
hiddenParams.add(new SimpleParam(paramName, paramValue));
}
}
}
SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
SimpleSearch clone = simpleSearch.clone();
SearchInterfaceConfigServices searchInterfaceConfigServices = ConstellioSpringUtils
.getSearchInterfaceConfigServices();
SearchInterfaceConfig config = searchInterfaceConfigServices.get();
if (!config.isKeepFacetsNewSearch()) {
// Will be true if we just clicked on a delete link
// on the CurrentSearchPanel
if (!clone.isRefinedSearch()) {
clone.getSearchedFacets().clear();
clone.setCloudKeyword(null);
}
// We must click on a delete link on
// CurrentSearchPanel so that it is considered
// again as refined
clone.setRefinedSearch(false);
}
clone.initFacetPages();
List<String> ignoredParamNames = Arrays.asList("query", "searchType", "page", "singleSearchLocale");
SimpleParams searchParams = clone.toSimpleParams();
for (String paramName : searchParams.keySet()) {
if (!ignoredParamNames.contains(paramName) && !paramName.contains(SearchRule.ROOT_PREFIX)) {
List<String> paramValues = searchParams.getList(paramName);
for (String paramValue : paramValues) {
SimpleParam hiddenParam = new SimpleParam(paramName, paramValue);
hiddenParams.add(hiddenParam);
}
}
}
return hiddenParams;
}
}) {
@Override
protected void populateItem(ListItem item) {
SimpleParam hiddenParam = (SimpleParam) item.getModelObject();
if (hiddenParam.value != null) {
item.add(new SimpleAttributeModifier("name", hiddenParam.name));
item.add(new SimpleAttributeModifier("value", hiddenParam.value));
} else {
item.setVisible(false);
}
}
};
SearchInterfaceConfigServices searchInterfaceConfigServices = ConstellioSpringUtils
.getSearchInterfaceConfigServices();
SearchInterfaceConfig config = searchInterfaceConfigServices.get();
if (config.isSimpleSearchAutocompletion()
&& ((SimpleSearch) simpleSearchModel.getObject()).getAdvancedSearchRule() == null) {
AutoCompleteSettings settings = new AutoCompleteSettings();
settings.setCssClassName("simpleSearchAutoCompleteChoices");
IModel model = new Model(((SimpleSearch) simpleSearchModel.getObject()).getQuery());
WordsAndValueAutoCompleteRenderer render = new WordsAndValueAutoCompleteRenderer() {
@Override
protected String getTextValue(String word, Object value) {
return word;
}
};
queryField = new TextAndValueAutoCompleteTextField("query", model, String.class, settings, render) {
@Override
public String getInputName() {
return super.getId();
}
@Override
protected Iterator getChoicesForWord(String word) {
SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
String collectionName = simpleSearch.getCollectionName();
AutocompleteServices autocompleteServices = ConstellioSpringUtils.getAutocompleteServices();
RecordCollectionServices collectionServices = ConstellioSpringUtils
.getRecordCollectionServices();
RecordCollection collection = collectionServices.get(collectionName);
List<String> suggestions = autocompleteServices.suggestSimpleSearch(word, collection,
getLocale());
return suggestions.iterator();
}
@Override
protected boolean supportMultipleWords() {
return false;
}
};
} else {
queryField = new TextField("query") {
@Override
public String getInputName() {
return super.getId();
}
};
}
searchTypeField = new RadioGroup("searchType") {
@Override
public String getInputName() {
return super.getId();
}
};
IModel languages = new LoadableDetachableModel() {
protected Object load() {
Set<String> localeCodes = new HashSet<String>();
SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
RecordCollectionServices recordCollectionServices = ConstellioSpringUtils
.getRecordCollectionServices();
RecordCollection collection = recordCollectionServices.get(simpleSearch.getCollectionName());
List<Locale> searchableLocales = ConstellioSpringUtils.getSearchableLocales();
if (!collection.isOpenSearch()) {
localeCodes.add("");
if (!searchableLocales.isEmpty()) {
for (Locale searchableLocale : searchableLocales) {
localeCodes.add(searchableLocale.getLanguage());
}
} else {
IndexFieldServices indexFieldServices = ConstellioSpringUtils.getIndexFieldServices();
IndexField languageField = indexFieldServices.get(IndexField.LANGUAGE_FIELD, collection);
for (String localeCode : indexFieldServices.suggestValues(languageField)) {
localeCodes.add(localeCode);
}
}
} else {
localeCodes.add("");
if (!searchableLocales.isEmpty()) {
for (Locale searchableLocale : searchableLocales) {
localeCodes.add(searchableLocale.getLanguage());
}
} else {
for (Locale availableLocale : Locale.getAvailableLocales()) {
localeCodes.add(availableLocale.getLanguage());
}
}
}
List<Locale> locales = new ArrayList<Locale>();
for (String localeCode : localeCodes) {
locales.add(new Locale(localeCode));
}
Collections.sort(locales, new Comparator<Locale>() {
@Override
public int compare(Locale locale1, Locale locale2) {
Locale locale1Display;
Locale locale2Display;
SearchInterfaceConfig config = ConstellioSpringUtils.getSearchInterfaceConfigServices()
.get();
if (config.isTranslateLanguageNames()) {
locale1Display = locale2Display = getLocale();
} else {
locale1Display = locale1;
locale2Display = locale2;
}
List<Locale> searchableLocales = ConstellioSpringUtils.getSearchableLocales();
if (searchableLocales.isEmpty()) {
searchableLocales = ConstellioSpringUtils.getSupportedLocales();
}
Integer indexOfLocale1;
Integer indexOfLocale2;
if (locale1.getLanguage().equals(getLocale().getLanguage())) {
indexOfLocale1 = Integer.MIN_VALUE;
} else {
indexOfLocale1 = searchableLocales.indexOf(locale1);
}
if (locale2.getLanguage().equals(getLocale().getLanguage())) {
indexOfLocale2 = Integer.MIN_VALUE;
} else {
indexOfLocale2 = searchableLocales.indexOf(locale2);
}
if (indexOfLocale1 == -1) {
indexOfLocale1 = Integer.MAX_VALUE;
}
if (indexOfLocale2 == -1) {
indexOfLocale2 = Integer.MAX_VALUE;
}
if (!indexOfLocale1.equals(Integer.MAX_VALUE)
|| !indexOfLocale2.equals(Integer.MAX_VALUE)) {
return indexOfLocale1.compareTo(indexOfLocale2);
} else if (StringUtils.isBlank(locale1.getLanguage())) {
return Integer.MIN_VALUE;
} else {
return locale1.getDisplayLanguage(locale1Display)
.compareTo(locale2.getDisplayLanguage(locale2Display));
}
}
});
return locales;
}
};
IChoiceRenderer languageRenderer = new ChoiceRenderer() {
@Override
public Object getDisplayValue(Object object) {
Locale locale = (Locale) object;
String text;
if (locale.getLanguage().isEmpty()) {
text = (String) new StringResourceModel("all", SearchFormPanel.this, null).getObject();
} else {
Locale localeDisplay;
SearchInterfaceConfig config = ConstellioSpringUtils.getSearchInterfaceConfigServices().get();
if (config.isTranslateLanguageNames()) {
localeDisplay = getLocale();
} else {
localeDisplay = locale;
}
text = StringUtils.capitalize(locale.getDisplayLanguage(localeDisplay));
}
return text;
}
@Override
public String getIdValue(Object object, int index) {
return ((Locale) object).getLanguage();
}
};
IModel languageModel = new Model() {
@Override
public Object getObject() {
SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
Locale singleSearchLocale = simpleSearch.getSingleSearchLocale();
if (singleSearchLocale == null) {
SearchedFacet facet = simpleSearch.getSearchedFacet(IndexField.LANGUAGE_FIELD);
List<String> values = facet == null ? new ArrayList<String>() : facet.getIncludedValues();
singleSearchLocale = values.isEmpty() ? null : new Locale(values.get(0));
}
if (singleSearchLocale == null) {
singleSearchLocale = getLocale();
}
return singleSearchLocale;
}
@Override
public void setObject(Object object) {
Locale singleSearchLocale = (Locale) object;
SimpleSearch simpleSearch = (SimpleSearch) simpleSearchModel.getObject();
simpleSearch.setSingleSearchLocale(singleSearchLocale);
}
};
languageDropDown = new DropDownChoice("singleSearchLocale", languageModel, languages, languageRenderer) {
@Override
public String getInputName() {
return "singleSearchLocale";
}
@Override
public boolean isVisible() {
SearchInterfaceConfigServices searchInterfaceConfigServices = ConstellioSpringUtils
.getSearchInterfaceConfigServices();
SearchInterfaceConfig config = searchInterfaceConfigServices.get();
return config.isLanguageInSearchForm();
}
@Override
protected CharSequence getDefaultChoice(Object selected) {
return "";
};
};
searchButton = new Button("searchButton") {
@Override
public String getMarkupId() {
return super.getId();
}
@Override
public String getInputName() {
return super.getId();
}
};
String submitImgUrl = "" + urlFor(new ResourceReference(BaseConstellioPage.class, "images/ico_loupe.png"));
add(searchForm);
searchForm.add(simpleSearchFormDiv);
searchForm.add(advancedSearchFormDiv);
searchForm.add(hiddenFields);
queryField.add(new SetFocusBehavior(queryField));
addChoice(SimpleSearch.ALL_WORDS);
addChoice(SimpleSearch.AT_LEAST_ONE_WORD);
addChoice(SimpleSearch.EXACT_EXPRESSION);
simpleSearchFormDiv.add(queryField);
simpleSearchFormDiv.add(searchTypeField);
simpleSearchFormDiv.add(languageDropDown);
simpleSearchFormDiv.add(searchButton);
advancedSearchFormDiv.add(advancedSearchPanel);
searchButton.add(new SimpleAttributeModifier("src", submitImgUrl));
}
From source file:it.av.eatt.web.page.RistoranteSearchPanel.java
License:Apache License
/** * Constructor//ww w . j a v a2 s . co m * * @param id * @param dataProvider * @param dataTable * @param feedbackPanel */ public RistoranteSearchPanel(String id, final RistoranteSortableDataProvider dataProvider, final RistoranteDataTable<Ristorante> dataTable, final FeedbackPanel feedbackPanel) { super(id); Form<String> form = new Form<String>("searchForm", new CompoundPropertyModel(searchBean)); add(form); form.setOutputMarkupId(true); FormComponent<String> fc; // fc = new TextField<String>("searchData"); AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings(); autoCompleteSettings.setCssClassName("autocomplete-risto"); autoCompleteSettings.setAdjustInputWidth(false); fc = new searchBox("searchData", autoCompleteSettings, dataProvider.getRistoranteService()); form.add(fc); // event and throttle it down to once per second AjaxFormValidatingBehavior.addToAllFormComponents(form, "onkeyup", Duration.ONE_SECOND); form.add(new AjaxButton("ajax-button", form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form form) { try { String pattern = getRequest().getParameter("searchData"); dataProvider.fetchResults(pattern); } catch (JackWicketException e) { feedbackPanel.error(e.getMessage()); } target.addComponent(dataTable); } @Override protected void onError(AjaxRequestTarget target, Form form) { target.addComponent(dataTable); } }); }
From source file:it.av.youeat.web.page.manager.CommentsSearchPanel.java
License:Apache License
/** * Constructor/*w ww . j a v a 2 s. c om*/ * * @param id * @param dataProvider * @param dataTable * @param feedbackPanel */ public CommentsSearchPanel(String id, final CommentsSortableDataProvider dataProvider, final RistoranteDataTable<Comment> dataTable, final FeedbackPanel feedbackPanel) { super(id); Form<String> form = new Form<String>("searchForm", new CompoundPropertyModel(searchBean)); add(form); form.setOutputMarkupId(true); FormComponent<String> fc; // fc = new TextField<String>("searchData"); AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings(); autoCompleteSettings.setCssClassName("autocomplete-risto"); autoCompleteSettings.setAdjustInputWidth(false); fc = new SearchBox("searchData", autoCompleteSettings); form.add(fc); // event and throttle it down to once per second AjaxFormValidatingBehavior.addToAllFormComponents(form, "onkeyup", Duration.ONE_SECOND); form.add(new AjaxButton("ajax-button", form) { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { try { String pattern = getRequest().getPostParameters().getParameterValue("searchData").toString(); dataProvider.fetchResults(pattern); } catch (YoueatException e) { feedbackPanel.error(e.getMessage()); } target.addComponent(dataTable); } @Override protected void onError(AjaxRequestTarget target, Form form) { target.addComponent(dataTable); } }); }
From source file:it.av.youeat.web.panel.RistoranteSearchPanel.java
License:Apache License
/** * Constructor/*from ww w. j a v a2 s .co m*/ * * @param id * @param dataProvider * @param dataTable * @param feedbackPanel */ public RistoranteSearchPanel(String id, final RistoranteSortableDataProvider dataProvider, final RistoranteDataTable<Ristorante> dataTable, final FeedbackPanel feedbackPanel) { super(id); Form<String> form = new Form<String>("searchForm", new CompoundPropertyModel(searchBean)); add(form); form.setOutputMarkupId(true); FormComponent<String> fc; // fc = new TextField<String>("searchData"); AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings(); autoCompleteSettings.setCssClassName("autocomplete-risto"); autoCompleteSettings.setAdjustInputWidth(false); fc = new SearchBox("searchData", autoCompleteSettings); form.add(fc); // event and throttle it down to once per second AjaxFormValidatingBehavior.addToAllFormComponents(form, "onkeyup", Duration.ONE_SECOND); form.add(new AjaxButton("ajax-button", form) { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { try { String pattern = getRequest().getPostParameters().getParameterValue("searchData").toString(""); dataProvider.fetchResults(pattern, dataTable.getItemsPerPage()); } catch (YoueatException e) { feedbackPanel.error(e.getMessage()); } target.addComponent(dataTable); } @Override protected void onError(AjaxRequestTarget target, Form form) { target.addComponent(dataTable); } }); }
From source file:it.av.youeat.web.panel.SearchFriendPanel.java
License:Apache License
/** * Constructor//from ww w .j av a 2s . c om * * @param dataProvider * @param dataTable * @param id * @param feedbackPanel * @param loggedUser */ public SearchFriendPanel(final SearchUserFriendSortableDataProvider dataProvider, final AjaxFallbackDefaultDataTable dataTable, String id, final FeedbackPanel feedbackPanel, Eater loggedUser) { super(id); Form<String> form = new Form<String>("searchForm", new CompoundPropertyModel(searchBean)); add(form); form.setOutputMarkupId(true); FormComponent<String> fc; AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings(); autoCompleteSettings.setCssClassName("autocomplete-risto"); autoCompleteSettings.setAdjustInputWidth(false); fc = new SearchBox("searchData", loggedUser, autoCompleteSettings); //fc = new TextField<String>(); form.add(fc); // event and throttle it down to once per second AjaxFormValidatingBehavior.addToAllFormComponents(form, "onkeyup", Duration.ONE_SECOND); form.add(new AjaxButton("ajax-button", form) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form form) { String pattern = getRequest().getPostParameters().getParameterValue("searchData").toString(""); try { dataProvider.fetchResults(pattern); } catch (YoueatException e) { feedbackPanel.error(e.getMessage()); } target.addComponent(dataTable); } @Override protected void onError(AjaxRequestTarget target, Form form) { target.addComponent(dataTable); } }); }
From source file:ontopoly.components.AssociationFieldAutoCompleteTextField.java
License:Apache License
public AssociationFieldAutoCompleteTextField(String id, IModel<Topic> model, final RoleFieldModel valueFieldModel) { super(id);/* w w w .j a v a 2 s . c o m*/ AutoCompleteSettings opts = new AutoCompleteSettings(); opts.setCssClassName("ontopoly-autocompleter"); opts.setAdjustInputWidth(false); opts.setPreselect(true); this.textField = new AutoCompleteTextField<Topic>("autoComplete", model, Topic.class, new AbstractAutoCompleteRenderer<Topic>() { @Override protected String getTextValue(Topic o) { return TOPIC_CONVERTER.convertToString(o); } @Override protected void renderChoice(Topic o, Response response, String criteria) { response.write(o.getName()); } }, opts) { @Override public IConverter getConverter(Class<?> type) { if (Topic.class.equals(type)) { return new TopicConverter(); } else { return super.getConverter(type); } } @Override protected Iterator<Topic> getChoices(String input) { List<Topic> result = new ArrayList<Topic>( valueFieldModel.getRoleField().searchAllowedPlayers(input)); filterPlayers(result); Collections.sort(result, TopicComparator.INSTANCE); return result.iterator(); } @Override protected void onModelChanged() { super.onModelChanged(); Topic topic = getModelObject(); if (topic != null) { AssociationFieldAutoCompleteTextField.this.onTopicSelected(topic); } } }; add(textField); }