天津23维预案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
2.7 KiB

2 years ago
using UnityEngine;
using UnityEngine.UI;
using System;
using UIWidgets;
namespace UIWidgetsSamples {
/// <summary>
/// ListViewIcons item component.
/// </summary>
public class TileViewComponentSample : ListViewItem {
/// <summary>
/// The icon.
/// </summary>
[SerializeField]
public Image Icon;
/// <summary>
/// The text.
/// </summary>
[SerializeField]
public Text Name;
/// <summary>
/// The capital.
/// </summary>
[SerializeField]
public Text Capital;
/// <summary>
/// The area.
/// </summary>
[SerializeField]
public Text Area;
/// <summary>
/// The population.
/// </summary>
[SerializeField]
public Text Population;
/// <summary>
/// The density.
/// </summary>
[SerializeField]
public Text Density;
/// <summary>
/// Set icon native size.
/// </summary>
public bool SetNativeSize = true;
/// <summary>
/// TileView.
/// </summary>
public TileViewSample Tiles;
/// <summary>
/// Current item.
/// </summary>
public TileViewItemSample Item;
/// <summary>
/// Duplicate current item in TileView.DataSource.
/// </summary>
public void Duplicate()
{
Tiles.DataSource.Add(Item);
}
/// <summary>
/// Remove current item from TileView.DataSource.
/// </summary>
public void Remove()
{
Tiles.DataSource.RemoveAt(Index);
}
/// <summary>
/// Sets component data with specified item.
/// </summary>
/// <param name="item">Item.</param>
public void SetData(TileViewItemSample item)
{
Item = item;
if (Item==null)
{
if (Icon!=null)
{
Icon.sprite = null;
}
if (Name!=null)
{
Name.text = string.Empty;
}
if (Capital!=null)
{
Capital.text = string.Empty;
}
if (Area!=null)
{
Area.text = string.Empty;
}
if (Population!=null)
{
Population.text = string.Empty;
}
if (Density!=null)
{
Density.text = string.Empty;
}
}
else
{
if (Icon!=null)
{
Icon.sprite = Item.Icon;
}
if (Name!=null)
{
Name.text = Item.Name;
}
if (Capital!=null)
{
Capital.text = "Capital: " + Item.Capital;
}
if (Area!=null)
{
Area.text = "Area: " + Item.Area.ToString("N0") + " sq. km";
}
if (Population!=null)
{
Population.text = "Population: " + Item.Population.ToString("N0");
}
if (Density!=null)
{
var density = Item.Area==0 ? "n/a" : Mathf.CeilToInt(((float)Item.Population) / Item.Area).ToString("N") + " / sq. km";
Density.text = "Density: " + density;
}
}
if (Icon!=null)
{
if (SetNativeSize)
{
Icon.SetNativeSize();
}
//set transparent color if no icon
Icon.color = (Icon.sprite==null) ? Color.clear : Color.white;
}
}
}
}