private void BuildDisplayMap()
        {
            string dateTimeFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;

            m_displayMapping = new Dictionary <Text, GetDisplayString>();

            if (modfileIdDisplay != null)
            {
                m_displayMapping.Add(modfileIdDisplay, (d) => d.modfileId.ToString());
            }
            if (modIdDisplay != null)
            {
                m_displayMapping.Add(modIdDisplay, (d) => d.modId.ToString());
            }
            if (dateAddedDisplay != null)
            {
                m_displayMapping.Add(dateAddedDisplay, (d) => ServerTimeStamp.ToLocalDateTime(d.dateAdded).ToString(dateTimeFormat));
            }
            if (fileNameDisplay != null)
            {
                m_displayMapping.Add(fileNameDisplay, (d) => d.fileName);
            }
            if (fileSizeDisplay != null)
            {
                m_displayMapping.Add(fileSizeDisplay, (d) => UIUtilities.ByteCountToDisplayString(d.fileSize));
            }
            if (MD5Display != null)
            {
                m_displayMapping.Add(MD5Display, (d) => d.MD5);
            }
            if (versionDisplay != null)
            {
                m_displayMapping.Add(versionDisplay, (d) => d.version);
            }
            if (changelogDisplay != null)
            {
                m_displayMapping.Add(changelogDisplay, (d) => d.changelog);
            }
            if (metadataBlobDisplay != null)
            {
                m_displayMapping.Add(metadataBlobDisplay, (d) => d.metadataBlob);
            }
            if (virusScanDateDisplay != null)
            {
                m_displayMapping.Add(virusScanDateDisplay, (d) => ServerTimeStamp.ToLocalDateTime(d.virusScanDate).ToString(dateTimeFormat));
            }
            if (virusScanStatusDisplay != null)
            {
                m_displayMapping.Add(virusScanStatusDisplay, (d) => d.virusScanStatus.ToString());
            }
            if (virusScanResultDisplay != null)
            {
                m_displayMapping.Add(virusScanResultDisplay, (d) => d.virusScanResult.ToString());
            }
            if (virusScanHashDisplay != null)
            {
                m_displayMapping.Add(virusScanHashDisplay, (d) => d.virusScanHash);
            }
        }
        private void PresentData()
        {
            float percentComplete = 0f;

            if (data.bytesTotal > 0)
            {
                percentComplete = (float)data.bytesReceived / (float)data.bytesTotal;
            }

            if (percentageText != null)
            {
                percentageText.text = (percentComplete * 100f).ToString("0.0") + "%";
            }
            if (progressBar != null)
            {
                progressBar.percentComplete = percentComplete;
            }

            if (bytesReceivedText != null)
            {
                bytesReceivedText.text = UIUtilities.ByteCountToDisplayString(data.bytesReceived);
            }

            if (bytesTotalText != null)
            {
                bytesTotalText.text = UIUtilities.ByteCountToDisplayString(data.bytesTotal);
            }

            if (bytesPerSecondText != null)
            {
                bytesPerSecondText.text = UIUtilities.ByteCountToDisplayString(data.bytesPerSecond) + "/s";
            }

            if (timeRemainingText != null)
            {
                // TODO(@jackson): Localize?
                TimeSpan remaining = TimeSpan.FromSeconds(0f);

                timeRemainingText.text = (remaining.TotalHours + ":"
                                          + remaining.Minutes + ":"
                                          + remaining.Seconds);
            }
        }