Exemple #1
0
        private void UpdateTagTreeView(bool init)
        {
            var cond = _tagTextBox.Text;

            var oldChecked = GetCheckedTags().ToArray();

            Predicate <MemoTag> pred = null;

            if (!StringUtil.IsNullOrWhitespace(cond))
            {
                var names = cond.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                pred = tag => {
                    //if (names.Any(name => !StringUtil.IsNullOrWhitespace(name) && tag.FullName.IndexOf(name.Trim(), StringComparison.OrdinalIgnoreCase) > -1)) {
                    if (
                        names.Where(
                            name => !StringUtil.IsNullOrWhitespace(name)
                            ).All(
                            name => tag.FullName.IndexOf(name.Trim(), StringComparison.OrdinalIgnoreCase) > -1
                            )
                        )
                    {
                        return(true);
                    }
                    if (init)
                    {
                        return(_targetMemo != null && tag.Memos.Contains(_targetMemo));
                    }
                    else
                    {
                        return(oldChecked.Contains(tag));
                    }
                };
            }

            _tagTreeView.BeginUpdate();
            TreeViewUtil.UpdateTagTreeView(_tagTreeView, _facade.Workspace, pred);
            _tagTreeView.Sort();
            _tagTreeView.ExpandAll();
            _tagTreeView.EndUpdate();

            if (_tagTreeView.Nodes.Count > 0)
            {
                _tagTreeView.SelectedNode = _tagTreeView.Nodes[0];
            }

            if (_targetMemo != null)
            {
                if (!init)
                {
                    UpdateTagTreeViewChecked(oldChecked);
                }
            }
        }
Exemple #2
0
        // ========================================
        // method
        // ========================================
        // ------------------------------
        // public
        // ------------------------------
        public void UpdateTags()
        {
            var selectedNode = SelectedNode;
            var selectedObj  = selectedNode == null? null: selectedNode.Tag;

            BeginUpdate();
            Nodes.Clear();

            if (_isAllTagsEnabled)
            {
                _allTagsNode                    = Nodes.Add(AllTagsText);
                _allTagsNode.Tag                = AllTags;
                _allTagsNode.ImageIndex         = 1;
                _allTagsNode.SelectedImageIndex = 1;
            }

            if (_isUntaggedEnabled)
            {
                _untaggedNode                    = Nodes.Add(UntaggedText);
                _untaggedNode.Tag                = Untagged;
                _untaggedNode.ImageIndex         = 2;
                _untaggedNode.SelectedImageIndex = 2;
            }

            _tagRootNode                    = Nodes.Add(TagRootText);
            _tagRootNode.Tag                = TagRoot;
            _tagRootNode.ImageIndex         = 1;
            _tagRootNode.SelectedImageIndex = 1;

            TreeViewUtil.UpdateTagTreeView(_tagRootNode, _facade.Workspace);

            _tagRootNode.Expand();

            Sort();
            EndUpdate();

            SelectNode(selectedObj);

            OnUpdated();
        }