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)); } }); }