예제 #1
0
    private void UpdateEntryValue(InfoPanelEntry entry)
    {
        if (!entry.sqm.HasValue)
        {
            ClearEntry(entry);
            return;
        }

        var   sufix = "";
        float area  = (float)(entry.sqm * selectedUnit.factor);

        if (area > 1e+12)
        {
            area *= 1e-12f;
            sufix = Translator.Get("trillion");
        }
        else if (area > 1e+9)
        {
            area *= 1e-9f;
            sufix = Translator.Get("billion");
        }
        else if (area > 1e+6)
        {
            area *= 1e-6f;
            sufix = Translator.Get("million");
        }

        entry.pair.SetValue(area.ToString("N") + " " + sufix + " " + selectedUnit.symbol);
        if (entry.pair.Disabled)
        {
            entry.pair.Disabled = false;
        }
    }
    //
    // Private Methods
    //

    private void ClearEntry(InfoPanelEntry entry)
    {
        entry.snapshotInfo.SetValue(Translator.Get("N/A"));
        if (!entry.snapshotInfo.Disabled)
        {
            entry.snapshotInfo.Disabled = true;
        }
    }
예제 #3
0
    public void AddEntry(string id, string keylabel)
    {
        // Hide "no data layers" message
        message.SetActive(false);

        var pair = Instantiate(itemPrefab, container, false);

        pair.SetKey(keylabel);

        var entry = new InfoPanelEntry
        {
            pair = pair,
        };

        entries.Add(id, entry);

        UpdateEntryValue(entry);
    }
    private void UpdateEntryValue(InfoPanelEntry entry)
    {
        if (!entry.sqm.HasValue)
        {
            ClearEntry(entry);
            return;
        }

        var   sufix = "";
        float area  = !isPercentage ?
                      (float)(entry.sqm * selectedUnit.factor) :
                      (float)(entry.sqm * selectedUnit.factor / selectedEntry?.sqm.Value);

        if (!isPercentage)
        {
            if (area > 1e+12)
            {
                area *= 1e-12f;
                sufix = Translator.Get("trillion");
            }
            else if (area > 1e+9)
            {
                area *= 1e-9f;
                sufix = Translator.Get("billion");
            }
            else if (area > 1e+6)
            {
                area *= 1e-6f;
                sufix = Translator.Get("million");
            }

            entry.snapshotInfo.SetValue(area.ToString("N") + " " + sufix + " " + selectedUnit.symbol);
        }
        else
        {
            entry.snapshotInfo.SetValue($"{(int)area} {selectedUnit.symbol} of {selectedEntry?.snapshotInfo.GetTitle()}");
        }

        if (entry.snapshotInfo.Disabled)
        {
            entry.snapshotInfo.Disabled = false;
        }
    }
    public void AddEntry(string id, string titlelabel, bool isSnapshot = false)
    {
        // Hide "no data layers" message
        message.SetActive(false);

        var info = Instantiate(itemPrefab, container, false);

        info.SetTitle(titlelabel);
        info.SetAsSnapshot(isSnapshot);

        var entry = new InfoPanelEntry
        {
            snapshotInfo = info,
        };

        entries.Add(id, entry);

        UpdateEntryValue(entry);
    }
    //
    // Event Methods
    //

    private void OnUnitsChanged(int value)
    {
        selectedUnit = units[value];

        isPercentage = value == (units.Length - 1);
        relativeToSnapshotPanel.SetActive(isPercentage);

        if (isPercentage)
        {
            string key = $"S{selectedRelativeSnapshotValue}";
            selectedEntry = entries.ContainsKey(key) ? entries[key] : entries.Values.First();
        }
        else
        {
            selectedEntry   = null;
            prevUnitsOption = value;
        }

        UpdateAll();
    }
    private void WriteContourInfo(InfoPanelEntry entry, TextWriter csv)
    {
        string value = entry.snapshotInfo.GetValue();

        csv.WriteLine("{0},{1}", entry.snapshotInfo.GetTitle().ToUpper(), CsvHelper.Escape(value));
    }