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); }