コード例 #1
0
 // ------------------------------
 // private
 // ------------------------------
 private void RemoveTagOnly(MemoTag tag)
 {
     tag.ClearMemos();
     tag.SuperTag = null;
     tag.ClearSubTags();
     _container.Remove(tag);
 }
コード例 #2
0
        // ------------------------------
        // private
        // ------------------------------
        private static void AddNodeRecursively(
            MemoTag tag, int imageIndex, TreeNodeCollection parentCol, HashSet <MemoTag> targets, HashSet <MemoTag> addeds
            )
        {
            if (addeds.Contains(tag))
            {
                return;
            }
            if (targets != null && !targets.Contains(tag))
            {
                return;
            }

            var node = new TreeNodeEx(tag.Name);

            node.Tag = tag;
            if (imageIndex > -1)
            {
                node.ImageIndex         = imageIndex;
                node.SelectedImageIndex = imageIndex;
            }
            parentCol.Add(node);
            addeds.Add(tag);

            foreach (var child in tag.SubTags)
            {
                AddNodeRecursively(child, imageIndex, node.Nodes, targets, addeds);
            }
        }
コード例 #3
0
        public void UpdateAdded(MemoTag tag)
        {
            _tree.BeginUpdate();

            var node = new TreeNodeEx(tag.Name);

            node.Tag                = tag;
            node.ImageIndex         = _tagImageIndex;
            node.SelectedImageIndex = _tagImageIndex;

            if (tag.SuperTag == null)
            {
                _root.Nodes.Add(node);
            }
            else
            {
                var parentNode = GetNode(tag.SuperTag);
                if (parentNode != null)
                {
                    parentNode.Nodes.Add(node);
                }
            }

            _tree.EndUpdate();
        }
コード例 #4
0
        protected virtual void OnMemoTagRemoving(MemoTag removing)
        {
            var handler = MemoTagRemoving;

            if (handler != null)
            {
                handler(this, new MemoTagEventArgs(removing));
            }
        }
コード例 #5
0
        protected virtual void OnMemoTagAdded(MemoTag added)
        {
            var handler = MemoTagAdded;

            if (handler != null)
            {
                handler(this, new MemoTagEventArgs(added));
            }
        }
コード例 #6
0
        // ------------------------------
        // protected
        // ------------------------------
        protected virtual void OnMemoTagChanged(MemoTag changed, DetailedPropertyChangedEventArgs cause)
        {
            var handler = MemoTagChanged;

            if (handler != null)
            {
                handler(this, new MemoTagChangedEventArgs(changed, cause));
            }
        }
コード例 #7
0
        public void RemoveTag(MemoTag tag)
        {
            var subs = tag.SubTags.ToArray();

            foreach (var sub in subs)
            {
                RemoveTag(sub);
            }
            RemoveTagOnly(tag);
        }
コード例 #8
0
ファイル: TagTree.cs プロジェクト: rajeshwarn/MochaNote
 // ------------------------------
 // private
 // ------------------------------
 private TreeNode SelectMemoTag(MemoTag tag)
 {
     foreach (var node in new TreeNodeIterator(this))
     {
         if (node.Tag == tag)
         {
             SelectedNode = node;
             return(node);
         }
     }
     return(null);
 }
コード例 #9
0
ファイル: TagSelector.cs プロジェクト: rajeshwarn/MochaNote
        private void SetTagChecked(MemoTag tag, bool value)
        {
            var ite = new TreeNodeIterator(_tagTreeView);

            foreach (var node in ite)
            {
                if (tag == node.Tag)
                {
                    node.Checked = value;
                }
            }
        }
コード例 #10
0
ファイル: MessageUtil.cs プロジェクト: rajeshwarn/MochaNote
        public static bool ConfirmTagRemoval(MemoTag tag)
        {
            if (tag == null)
            {
                return(false);
            }

            var facade   = MemopadApplication.Instance;
            var settings = facade.Settings;

            if (!settings.ConfirmTagRemoval)
            {
                return(true);
            }

            var msg    = "\"" + tag.Name + "\"を削除してよろしいですか?";
            var result = MessageBox.Show(msg, "タグの削除の確認", MessageBoxButtons.YesNo);

            return(result != DialogResult.No);
        }
コード例 #11
0
        public void UpdateRemoving(MemoTag tag)
        {
            _tree.BeginUpdate();

            var removed = default(TreeNode);

            foreach (var node in new TreeNodeIterator(_root))
            {
                if (node.Tag == tag)
                {
                    removed = node;
                }
            }
            if (removed != null)
            {
                removed.Remove();
            }

            _tree.EndUpdate();
        }
コード例 #12
0
        public void UpdateChanged(MemoTag tag)
        {
            _tree.BeginUpdate();

            foreach (var node in new TreeNodeIterator(_root))
            {
                if (node.Tag == tag)
                {
                    if (node.Text != tag.Name)
                    {
                        node.Text = tag.Name;
                        _tree.Sort();
                    }
                    if (
                        node.Parent.Tag != tag.SuperTag &&
                        !(node.Parent == _root && tag.SuperTag == null)
                        )
                    {
                        node.Remove();
                        if (tag.SuperTag == null)
                        {
                            _root.Nodes.Add(node);
                        }
                        else
                        {
                            var parentNode = GetNode(tag.SuperTag);
                            if (parentNode != null)
                            {
                                parentNode.Nodes.Add(node);
                            }
                        }
                    }
                }
            }

            _tree.EndUpdate();
        }
コード例 #13
0
 // ========================================
 // constructor
 // ========================================
 public MemoTagChangedEventArgs(MemoTag tag, DetailedPropertyChangedEventArgs cause)
     : base(tag)
 {
     _cause = cause;
 }
コード例 #14
0
 // ========================================
 // constructor
 // ========================================
 public MemoTagEventArgs(MemoTag tag)
 {
     _tag = tag;
 }