private void PlotLineData()
    {
        currLineInspectionIndex = inspectorTool.lineInspectorPanel.lineInspector.CurrLineInspection;

        if (currLineInspectionIndex == -1)
        {
            return;
        }

        LinePS currPS = linePS[currLineInspectionIndex];

        foreach (var inspectorOutputItem in lineDO.itemslist)
        {
            InspectorOutputItemLabel inspectorOutputItemLabel = null;
            string itemName = inspectorOutputItem.name;

            if (lineDO.inspectorOutputItemLabels.ContainsKey(itemName))
            {
                inspectorOutputItemLabel = lineDO.inspectorOutputItemLabels[itemName];
            }
            else
            {
                inspectorOutputItemLabel = Instantiate(itemPrefab, linePSUIRef.container, false);

                inspectorOutputItemLabel.name = itemName;
                inspectorOutputItemLabel.SetName(itemName);
                inspectorOutputItemLabel.SetUnitsValue(inspectorOutputItem.units);
                inspectorOutputItemLabel.SetDotColor(inspectorOutputItem.dotColor);

                lineDO.inspectorOutputItemLabels.Add(itemName, inspectorOutputItemLabel);
            }

            float max    = inspectorOutputItem.maxVal,
                  min    = inspectorOutputItem.minVal,
                  median = inspectorOutputItem.medianVal,
                  mean   = inspectorOutputItem.meanVal,
                  sum    = inspectorOutputItem.sumVal;

            inspectorOutputItemLabel.SetMaxValue(max.ToString("#,##0.##"));
            inspectorOutputItemLabel.SetMedianValue(median.ToString("#,##0.##"));
            inspectorOutputItemLabel.SetMinValue(min.ToString("#,##0.##"));
            inspectorOutputItemLabel.SetMeanValue(mean.ToString("#,##0.##"));
            inspectorOutputItemLabel.SetSumValue(sum.ToString("#,##0.##"));

            PS.AddOrUpdateMetric(currPS.maxVal, itemName, max);
            PS.AddOrUpdateMetric(currPS.minVal, itemName, min);
            PS.AddOrUpdateMetric(currPS.medianVal, itemName, median);
            PS.AddOrUpdateMetric(currPS.meanVal, itemName, mean);
            PS.AddOrUpdateMetric(currPS.sumVal, itemName, sum);
        }
    }
    //
    // Unity Methods
    //

    private void Awake()
    {
        // Components
        var componentManager = ComponentManager.Instance;

        inspectorTool       = componentManager.Get <InspectorTool>();
        dataLayers          = componentManager.Get <DataLayers>();
        gridLayerController = inspectorTool.Map.GetLayerController <GridLayerController>();
        translator          = LocalizationManager.Instance;

        linePSUIRef.Init(translator);

        // Initialize dropdowns
        inspectorOutputDropdowns = new InspectorOutputDropdown[]
        {
            new InspectorOutputDropdown(linePSUIRef.summaryDropdown, PSO.LineSummaryOptions),
            new InspectorOutputDropdown(linePSUIRef.metricsDropdown, PSO.MetricsOptions)
        };
        InitDropdowns();

        // Initialize properties and summaries
        int maxInspectionCount = inspectorTool.maxInspectionCount;

        linePS = new LinePS[maxInspectionCount];
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            linePS[i] = new LinePS();
        }

        // Initialize listeners
        gridLayerController.OnShowGrid += OnShowGrid;
        LocalizationManager.Instance.OnLanguageChanged += OnLanguageChanged;
        linePSUIRef.summaryDropdown.onValueChanged.AddListener(UpdateLinePanel);
        linePSUIRef.computeCorrelationButton.onClick.AddListener(OnComputeCorrelationClicked);

        // Default panel display
        UpdateLinePanel(LinePS.SelectedLine);
    }
 public void SelectedNoDataLength(LinePropertiesAndSummaries linePS)
 {
     noDataLengthVal.text = (linePS.noDataLength * 100).ToString("0.##") + "%";
 }
 public void SelectedTotalLength(LinePropertiesAndSummaries linePS)
 {
     totalLengthVal.text = linePS.totalLength.ToString("#,##0.##") + " km";
 }