public void Show()
        {
            GUILayout.BeginVertical();
            try {
                GUILayout.BeginHorizontal();
                GUILayout.Label("パーツカラー", uiParams.lStyleB, titleWidth, titleHeight);
                GUILayout.EndHorizontal();

                var maid = holder.CurrentMaid;
                if (maid == null)
                {
                    return;
                }
                if (maid.IsBusy)
                {
                    GUILayout.Space(100);
                    GUILayout.Label("変更中...", uiParams.lStyleB);
                    GUILayout.Space(uiParams.colorRect.height - 105);
                    return;
                }

                scrollViewPosition = GUILayout.BeginScrollView(scrollViewPosition,
                                                               GUILayout.Width(uiParams.colorRect.width),
                                                               GUILayout.Height(viewHeight));
                try {
                    if (!editPartColors.Any())
                    {
                        for (var pcEnum = MaidParts.PARTS_COLOR.NONE + 1; pcEnum < MaidParts.PARTS_COLOR.MAX; pcEnum++)
                        {
                            var part = maid.Parts.GetPartsColor(pcEnum);
                            editPartColors.Add(new EditParts(ref part, presetMgr));
                        }
                    }

                    for (var pcEnum = MaidParts.PARTS_COLOR.NONE + 1; pcEnum < MaidParts.PARTS_COLOR.MAX; pcEnum++)
                    {
                        var part = maid.Parts.GetPartsColor(pcEnum);
                        var idx  = (int)pcEnum;
                        var epc  = editPartColors[idx];

                        GUILayout.BeginHorizontal();
                        try {
                            if (GUILayout.Button(pcEnum.ToString(), uiParams.lStyleB))
                            {
                                epc.expand = !epc.expand;
                            }

                            var label = part.m_bUse ? "未使用" : "使用中";
                            GUILayout.Label(label, uiParams.lStyleRS);
                        } finally {
                            GUILayout.EndHorizontal();
                        }
                        if (!epc.expand)
                        {
                            continue;
                        }

                        if (part.m_nShadowRate != epc.shadowRate.val)
                        {
                            epc.shadowRate.Set(part.m_nShadowRate);
                        }
                        if (sliderHelper.DrawValueSlider("影率", epc.shadowRate))
                        {
                            part.m_nShadowRate = epc.shadowRate.val;
                            maid.Parts.SetPartsColor(pcEnum, part);
                            epc.SetParts(part);
                        }

                        if (epc.HasMainChanged(ref part))
                        {
                            epc.SetMain(part);
                        }
                        if (epc.HasShadowChanged(ref part))
                        {
                            epc.SetShadow(part);
                        }
                        if (part.m_nMainContrast != epc.c.val)
                        {
                            epc.c.Set(part.m_nMainContrast);
                        }
                        if (sliderHelper.DrawValueSlider("主C", epc.c))
                        {
                            part.m_nMainContrast = epc.c.val;
                            maid.Parts.SetPartsColor(pcEnum, part);
                            epc.SetParts(part);
                        }

                        if (part.m_nShadowContrast != epc.shadowC.val)
                        {
                            epc.shadowC.Set(part.m_nShadowContrast);
                        }
                        if (sliderHelper.DrawValueSlider("影C", epc.shadowC))
                        {
                            part.m_nShadowContrast = epc.shadowC.val;
                            maid.Parts.SetPartsColor(pcEnum, part);
                            epc.SetParts(part);
                        }

                        if (sliderHelper.DrawColorSlider("主色", ref epc.main, SliderHelper.DEFAULT_PRESET, ref epc.mainExpand, epc.mainPicker))
                        {
                            epc.ReflectMain();
                            maid.Parts.SetPartsColor(pcEnum, epc.parts);
                        }

                        if (sliderHelper.DrawColorSlider("影色", ref epc.shadow, SliderHelper.DEFAULT_PRESET, ref epc.shadowExpand, epc.shadowPicker))
                        {
                            epc.ReflectShadow();
                            maid.Parts.SetPartsColor(pcEnum, epc.parts);
                        }
                    }
                } finally {
                    GUI.EndScrollView();
                }
            } finally {
                GUILayout.EndVertical();
            }
        }