private void PopulateRowElementsWithValue(GameObject row, IFleetCmdItem cmd) {
        FleetReport fleetReport = cmd.GetUserReport();
        IIconInfo fleetIconInfo = cmd.IconInfo;
        D.Assert(fleetIconInfo != null);    // a fleet we are aware of should never have a null iconInfo
        var rowElements = row.GetSafeMonoBehavioursInImmediateChildrenOnly<GuiElement>();

        rowElements.ForAll(e => {
            switch (e.elementID) {
                case GuiElementID.None:
                    // do nothing as element will warn and correct
                    break;
                case GuiElementID.ItemNameLabel:
                    ConfigureNameElement(e, fleetReport);
                    break;
                case GuiElementID.Owner:
                    ConfigureOwnerElement(e, fleetReport);
                    break;
                case GuiElementID.Location:
                    ConfigureLocationElement(e, fleetReport);
                    break;
                case GuiElementID.Hero:
                    ConfigureHeroElement(e, fleetReport);
                    break;
                case GuiElementID.Size:
                    ConfigureSizeElement(e, fleetReport, fleetIconInfo);
                    break;
                case GuiElementID.Health:
                    ConfigureHealthElement(e, fleetReport);
                    break;
                case GuiElementID.SpeedLabel:
                    ConfigureMaxSpeedElement(e, fleetReport);
                    break;
                case GuiElementID.OffensiveStrength:
                    ConfigureOffensiveStrengthElement(e, fleetReport);
                    break;
                case GuiElementID.DefensiveStrength:
                    ConfigureDefensiveStrengthElement(e, fleetReport);
                    break;
                default:
                    throw new NotImplementedException(ErrorMessages.UnanticipatedSwitchValue.Inject(e.elementID));
            }
        });
    }