// Show Window / Close Dialog
        //------------------------------------------------------------------------
        public static object ShowDialog(apEditor editor, apAnimClip targetAnimClip, FUNC_ADD_TIMELINE funcResult)
        {
            CloseDialog();

            if (editor == null || editor._portrait == null || editor._portrait._controller == null)
            {
                return(null);
            }

            EditorWindow             curWindow = EditorWindow.GetWindow(typeof(apDialog_AddAnimTimeline), true, "Select Timeline Type", true);
            apDialog_AddAnimTimeline curTool   = curWindow as apDialog_AddAnimTimeline;

            object loadKey = new object();

            if (curTool != null && curTool != s_window)
            {
                int width  = 250;
                int height = 400;
                s_window          = curTool;
                s_window.position = new Rect((editor.position.xMin + editor.position.xMax) / 2 - (width / 2),
                                             (editor.position.yMin + editor.position.yMax) / 2 - (height / 2),
                                             width, height);
                s_window.Init(editor, loadKey, targetAnimClip, funcResult);

                return(loadKey);
            }
            else
            {
                return(null);
            }
        }
        // Init
        //------------------------------------------------------------------------
        public void Init(apEditor editor, object loadKey, apAnimClip targetAnimGroup, FUNC_ADD_TIMELINE funcResult)
        {
            _editor         = editor;
            _loadKey        = loadKey;
            _funcResult     = funcResult;
            _targetAnimClip = targetAnimGroup;

            _selectedLinkData = null;
            _linkDataList.Clear();

            //타임라인을 검색해보자

            //리스트에 들어가는건 한글로 바꾸기 힘들 수 있다.

            //_linkDataList.Add(new LinkableData(apAnimClip.LINK_TYPE.ControlParam, "Control Parameters", -1, _editor.ImageSet.Get(apImageSet.PRESET.Anim_WithControlParam)));
            AddLinkableData(apAnimClip.LINK_TYPE.ControlParam, "Control Parameters", -1);            //"Control Parameters"
            //AddLinkableData(apAnimClip.LINK_TYPE.Bone, "Bones", -1);

            List <apModifierBase> modifiers = _targetAnimClip._targetMeshGroup._modifierStack._modifiers;

            for (int i = 0; i < modifiers.Count; i++)
            {
                apModifierBase curMod = modifiers[i];

                if (!curMod.IsAnimated)
                {
                    continue;
                }

                //"Modifier : "
                AddLinkableData(apAnimClip.LINK_TYPE.AnimatedModifier, "Modifier : " + curMod.DisplayName, curMod._uniqueID);
            }
        }