Exemple #1
0
        private CtxmData GetWorkCtxmDataView(CtxmCode code)
        {
            CtxmData ctxm    = new CtxmData(code);
            CtxmData ctxmDef = DefCtxmData[code];

            //存在するものをコピーしていく。編集メニューは常に個別設定が有効になる。
            if (Settings.Instance.MenuSet.IsManualAssign.Contains(code) == true || code == CtxmCode.EditChgMenu)
            {
                CtxmSetting ctxmEdited = Settings.Instance.MenuSet.ManualMenuItems.FindData(code);
                if (ctxmEdited == null)
                {
                    //編集サブメニューの場合は、初期無効アイテムを削除したデフォルトセッティングを返す。
                    return(code != CtxmCode.EditChgMenu ? ctxmDef.DeepClone() : GetDefaultChgSubMenuCtxmData());
                }

                ctxmEdited.Items.ForEach(setMenuString =>
                {
                    CtxmItemData item1 = ctxmDef.Items.Find(item => item.Header == setMenuString);
                    if (item1 != null)
                    {
                        ctxm.Items.Add(item1.DeepClone());
                    }
                });
            }
            else
            {
                ctxmDef.Items.ForEach(item1 =>
                {
                    if (MC.WorkCmdOptions[item1.Command].IsMenuEnabled == true)
                    {
                        ctxm.Items.Add(item1.DeepClone());
                    }
                });
            }

            //セパレータの整理
            SweepSeparators(ctxm);

            return(ctxm);
        }