private void doUpdateDisplayContents(String userText) {
		if (internallyDrivenUpdate) {
			internallyDrivenUpdate = false;
			return;
		}

		currentMatchingText = userText;
		List<T> data = getMatchingData(userText);

		// use a custom model here so that we don't create a copy of the data
		list.setModel(new AbstractListModel<T>() {
			@Override
			public int getSize() {
				return data.size();
			}

			@Override
			public T getElementAt(int i) {
				return data.get(i);
			}
		});

		// adjust the display based upon the list contents
		if (data.isEmpty()) {
			updateDisplayLocation(false);
			return;
		}

		setSelectedItems();

		int index = dataModel.getIndexOfFirstMatchingEntry(data, userText);
		if (index < 0) {
			// make sure that something is selected
			list.setSelectedIndex(0);
			list.ensureIndexIsVisible(0);
		}
		else {
			list.setSelectedIndex(index);
			list.ensureIndexIsVisible(index);
		}

		updateDisplayLocation(true);
	}
Overridden to allow for the setting of text without showing the completion window.  This
is useful for setting the current value to be edited before the using initiates editing.

@param text The text to set on this text field.
Ghidra/Framework/Docking/src/main/java/docking/widgets/DropDownTextField.java