void TreeLessonsDragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.None;
            if (!e.Data.GetDataPresent(typeof(Word)))
            {
                return;
            }

            TreeNode node = treeLessons.GetNodeAt(treeLessons.PointToClient(new Point(e.X, e.Y)));

            if (node == null)
            {
                return;
            }

            TreeNodeColumn column = node as TreeNodeColumn;

            if (column == null || column.Tag == null)
            {
                return;
            }

            Word dragObject = (Word)e.Data.GetData(typeof(Word));

            lessonUnderMouseToDrop = (Lesson)column.Tag;
            if (dragObject.Entry.Lesson.Id == lessonUnderMouseToDrop.Id)
            {
                return;
            }

            e.Effect = DragDropEffects.Move;
        }
        protected override void Run()
        {
            treeLessons.BeginUpdate();
            try
            {
                treeLessons.Nodes.Clear();

                TreeNodeColumn root = new TreeNodeColumn(Strings.Lessons);
                treeLessons.Nodes.Add(root);

                using (ISession session = DataHelper.OpenSession())
                {
                    IList <Lesson> lessons = session.QueryOver <Lesson>()
                                             .Where(x => x.Theme == host.CurrentTheme).List();
                    foreach (Lesson lesson in lessons)
                    {
                        AddLessonNode(lesson);
                    }
                }

                UpdateAllCountEntries();
                treeLessons.SelectedNode = treeLessons.Nodes[0];
                treeLessons.Nodes[0].Expand();
            }
            finally
            {
                treeLessons.EndUpdate();
            }

            ShowWindow(host.Workbench, DockState.DockLeft);
        }
Example #3
0
        void TreeWordTypesDragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.None;
            if (!e.Data.GetDataPresent(typeof(Word)))
            {
                return;
            }

            TreeNode node = treeWordTypes.GetNodeAt(treeWordTypes.PointToClient(new Point(e.X, e.Y)));

            if (node == null)
            {
                return;
            }

            TreeNodeColumn column = node as TreeNodeColumn;

            if (column == null || column.Tag == null)
            {
                return;
            }

            Word dragObject = (Word)e.Data.GetData(typeof(Word));

            wordTypeUnderMouseToDrop = (WordType)column.Tag;
            if (dragObject.WordType.Id == wordTypeUnderMouseToDrop.Id)
            {
                return;
            }

            e.Effect = DragDropEffects.Link;
        }
Example #4
0
        void UpdateCountEntries(WordType wordType = null)
        {
            using (ISession session = DataHelper.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    Word   w = null;
                    Lesson l = null;
                    IQueryOver <Word, WordType> words =
                        session.QueryOver <Word>(() => w)
                        .JoinQueryOver(pr => pr.Entry)
                        .JoinQueryOver(pr => pr.Lesson, () => l)
                        .Where(() => l.Theme == host.CurrentTheme)
                        .JoinQueryOver(pr => w.WordType);
                    if (wordType != null)
                    {
                        words.And(() => w.WordType == wordType);
                    }

                    int count = words.RowCount();

                    TreeNodeColumn node =
                        wordType == null ?
                        (TreeNodeColumn)treeWordTypes.Nodes[0] :
                        GetNode(treeWordTypes.Nodes[0].Nodes, wordType);
                    node.FarText = count.ToString();
                }
            }
        }
        void AddLessonNode(Lesson lesson)
        {
            TreeNodeColumn node = new TreeNodeColumn(lesson.Name);

            node.Tag     = lesson;
            node.FarText = "0";
            treeLessons.Nodes[0].Nodes.Add(node);
        }
Example #6
0
        TreeNode AddWordTypeNode(TreeNodeCollection nodes, WordType wordType)
        {
            TreeNodeColumn node = new TreeNodeColumn(wordType.Name)
            {
                Tag = wordType
            };

            nodes.Add(node);
            UpdateCountEntries(wordType);
            return(node);
        }
Example #7
0
        TreeNodeColumn GetNode(TreeNodeCollection nodes, WordType wordType)
        {
            TreeNodeColumn result = null;

            foreach (TreeNodeColumn node in nodes)
            {
                if (((WordType)node.Tag).Id == wordType.Id)
                {
                    result = node;
                    break;
                }

                result = GetNode(node.Nodes, wordType);
                if (result != null)
                {
                    break;
                }
            }

            return(result);
        }
Example #8
0
        protected override void Run()
        {
            treeWordTypes.BeginUpdate();
            try
            {
                treeWordTypes.Nodes.Clear();

                TreeNodeColumn root = new TreeNodeColumn(Strings.WordTypes);
                treeWordTypes.Nodes.Add(root);
                UpdateCountEntries();
                CreateWordTypeNodes(treeWordTypes.Nodes[0].Nodes);

                treeWordTypes.SelectedNode = treeWordTypes.Nodes[0];
                treeWordTypes.Nodes[0].ExpandAll();
            }
            finally
            {
                treeWordTypes.EndUpdate();
            }

            ShowWindow(host.Workbench, DockState.DockLeft);
        }