namespace UIWidgets.Examples
{
using UIWidgets;
using UnityEngine;
using UnityEngine.UI;
///
/// AutocompleteIconsHelper.
/// How to use AutocompleteIcons to select one item.
///
public class AutocompleteIconsHelper : MonoBehaviour, IUpgradeable
{
///
/// Autocomplete.
///
[SerializeField]
public AutocompleteIcons Autocomplete;
///
/// InputField.
///
[SerializeField]
[HideInInspector]
[System.Obsolete("Replaced with InputAdapter.")]
public InputField Input;
///
/// InputField.
///
[SerializeField]
public InputFieldAdapter InputAdapter;
[SerializeField]
ListViewIconsItemDescription item;
///
/// Selected item.
///
public ListViewIconsItemDescription Item
{
get
{
return item;
}
set
{
InputAdapter.text = item.Name;
item = value;
}
}
///
/// Adds listeners.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "HAA0603:Delegate allocation from a method group", Justification = "Required.")]
protected virtual void Start()
{
InputAdapter.onEndEdit.AddListener(ResetItem);
Autocomplete.OnOptionSelectedItem.AddListener(SetItem);
}
///
/// Remove listeners.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "HAA0603:Delegate allocation from a method group", Justification = "Required.")]
protected virtual void OnDestroy()
{
InputAdapter.onEndEdit.RemoveListener(ResetItem);
Autocomplete.OnOptionSelectedItem.RemoveListener(SetItem);
}
///
/// Reset item.
///
/// Input string.
protected virtual void ResetItem(string str)
{
item = null;
}
///
/// Set item.
///
/// Item.
protected virtual void SetItem(ListViewIconsItemDescription it)
{
item = Autocomplete.TargetListView.DataSource[0];
Autocomplete.TargetListView.DataSource.Clear();
}
///
/// Upgrade this instance.
///
public virtual void Upgrade()
{
#pragma warning disable 0612, 0618
Utilities.GetOrAddComponent(Input, ref InputAdapter);
#pragma warning restore 0612, 0618
}
#if UNITY_EDITOR
///
/// Validate this instance.
///
protected virtual void OnValidate()
{
Compatibility.Upgrade(this);
}
#endif
}
}