Example usage for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteSettings setCssClassName

List of usage examples for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteSettings setCssClassName

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.ajax.markup.html.autocomplete AutoCompleteSettings setCssClassName.

Prototype

public AutoCompleteSettings setCssClassName(final String cssClassName) 

Source Link

Document

Sets an CSS class name to add to the autocompleter markup container

This makes it easier to have multiple autocompleters in your application with different style and layout.

Usage

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