void SetupProductionGroupButton(ProductionTypeButtonWidget button)
        {
            if (button == null)
                return;

            Action<bool> selectTab = reverse =>
            {
                if (tabs.QueueGroup == button.ProductionGroup)
                    tabs.SelectNextTab(reverse);
                else
                    tabs.QueueGroup = button.ProductionGroup;
            };

            button.IsDisabled = () => tabs.Groups[button.ProductionGroup].Tabs.Count == 0;
            button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift));
            button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
            button.IsHighlighted = () => tabs.QueueGroup == button.ProductionGroup;

            var chromeName = button.ProductionGroup.ToLowerInvariant();
            var icon = button.Get<ImageWidget>("ICON");
            icon.GetImageName = () => button.IsDisabled() ? chromeName + "-disabled" :
                tabs.Groups[button.ProductionGroup].Alert ? chromeName + "-alert" : chromeName;
        }