@Nonnull
	@Override
	public Node create(@Nonnull ConfigContainer container, @Nonnull ConfigValue<Language> value) {
		Map<String, Language> languageMap = Languages.all().stream()
				.collect(Collectors.toMap(Language::getName, Function.identity()));
		Observable<Language> observable = value.getObservable();
		ComboBox<Language> comboBox = new ComboBox<>();
		comboBox.setConverter(new ToStringConverter<>() {
			@Override
			public String toString(Language language) {
				return language.getName();
			}
		});
		comboBox.setCellFactory(c -> new ListCell<>() {
			@Override
			protected void updateItem(Language item, boolean empty) {
				super.updateItem(item, empty);
				if (empty || item == null) {
					setText(null);
				} else {
					setText(item.getName());
				}
			}
		});
		comboBox.getItems().addAll(Languages.all());
		comboBox.setValue(observable.getValue());
		comboBox.valueProperty().addListener((observableValue, oldValue, newValue) -> {
			observable.setValue(newValue);
		});
		return comboBox;
	}
Factory for general {@link Language} values.

@author Matt Coley
recaf-ui/src/main/java/software/coley/recaf/services/config/factories/ProcyonLanguageComponentFactory.java