package com.constellio.app.ui.framework.components.fields.autocomplete; import java.util.List; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.application.ConstellioUI; import com.constellio.app.ui.framework.data.RecordTextInputDataProvider; import com.constellio.app.ui.pages.base.SessionContext; public class RecordAutocompleteField extends BaseAutocompleteField<String> { public RecordAutocompleteField(String schemaTypeCode) { this(schemaTypeCode, false); } public RecordAutocompleteField(String schemaTypeCode, boolean writeAccess) { super(new RecordAutocompleteSuggestionsProvider(schemaTypeCode, writeAccess)); init(); } public RecordAutocompleteField(AutocompleteSuggestionsProvider<String> suggestionsProvider) { super(suggestionsProvider); init(); } private void init() { // setItemConverter(new RecordIdToCaptionConverter()); } private static class RecordAutocompleteSuggestionsProvider implements AutocompleteSuggestionsProvider<String> { private static final int BUFFER_SIZE = 100; private RecordTextInputDataProvider suggestionsProvider; private RecordAutocompleteSuggestionsProvider(String schemaTypeCode, boolean writeAccess) { ConstellioFactories constellioFactories = ConstellioFactories.getInstance(); SessionContext sessionContext = ConstellioUI.getCurrentSessionContext(); this.suggestionsProvider = new RecordTextInputDataProvider(constellioFactories, sessionContext, schemaTypeCode, writeAccess); } @Override public List<String> suggest(String text) { return suggestionsProvider.getData(text, 0, BUFFER_SIZE); } @Override public int getBufferSize() { return BUFFER_SIZE; } } }