Пример #1
0
        private void moveUpButton_Click(object sender, EventArgs e)
        {
            if (treeView.SelectedNode == null || !(treeView.SelectedNode.Tag is DBNode <T>))
            {
                return;
            }

            // grab the dbnode
            DBNode <T> node = treeView.SelectedNode.Tag as DBNode <T>;

            // and the collection it belongs to
            List <DBNode <T> > collection;

            if (node.Parent == null)
            {
                collection = _menu.RootNodes;
            }
            else
            {
                collection = node.Parent.Children;
            }

            // attempt to move the node in the collection and if successful reflect the change on the GUI
            if (collection.MoveUp(node, true))
            {
                if (node.Parent != null)
                {
                    node.Parent.Commit();
                }
                else
                {
                    _menu.Commit();
                }

                TreeNode treeNode = treeView.SelectedNode;

                TreeNodeCollection treeCollection;
                if (treeNode.Parent == null)
                {
                    treeCollection = treeView.Nodes;
                }
                else
                {
                    treeCollection = treeNode.Parent.Nodes;
                }

                int newIndex = treeCollection.IndexOf(treeNode) - 1;
                treeCollection.RemoveAt(newIndex + 1);
                treeCollection.Insert(newIndex, treeNode);

                treeView.SelectedNode = treeNode;
            }
        }
        public static void VerifyFilterMenu()
        {
            DBMenu <DBTrackInfo> menu = mvCentralCore.Settings.FilterMenu;

            if (menu.RootNodes.Count == 0)
            {
                int position = 1;

                DBNode <DBTrackInfo> unwatchedNode = new DBNode <DBTrackInfo>();
                unwatchedNode.Name        = "${UnwatchedmvCentral}";
                unwatchedNode.DynamicNode = false;
                unwatchedNode.Filter      = new DBFilter <DBTrackInfo>();
                DBCriteria <DBTrackInfo> criteria = new DBCriteria <DBTrackInfo>();
                criteria.Field    = DBField.GetFieldByDBName(typeof(DBUserMusicVideoSettings), "watched");
                criteria.Relation = DBRelation.GetRelation(typeof(DBTrackInfo), typeof(DBUserMusicVideoSettings), "");
                criteria.Operator = DBCriteria <DBTrackInfo> .OperatorEnum.EQUAL;
                criteria.Value    = "0";
                unwatchedNode.Filter.Criteria.Add(criteria);
                unwatchedNode.SortPosition = position++;
                unwatchedNode.DBManager    = mvCentralCore.DatabaseManager;
                menu.RootNodes.Add(unwatchedNode);

                DBNode <DBTrackInfo> genreNode = new DBNode <DBTrackInfo>();
                genreNode.DynamicNode         = true;
                genreNode.BasicFilteringField = DBField.GetFieldByDBName(typeof(DBTrackInfo), "genres");
                genreNode.Name         = "${Genre}";
                genreNode.DBManager    = mvCentralCore.DatabaseManager;
                genreNode.SortPosition = position++;
                menu.RootNodes.Add(genreNode);

                DBNode <DBTrackInfo> dateNode = new DBNode <DBTrackInfo>();
                dateNode.DynamicNode         = true;
                dateNode.BasicFilteringField = DBField.GetFieldByDBName(typeof(DBTrackInfo), "date_added");
                dateNode.Name         = "${DateAdded}";
                dateNode.DBManager    = mvCentralCore.DatabaseManager;
                dateNode.SortPosition = position++;
                menu.RootNodes.Add(dateNode);

                menu.Commit();
            }

            foreach (DBNode <DBTrackInfo> currNode in menu.RootNodes)
            {
                currNode.UpdateDynamicNode();
                currNode.Commit();
            }
        }
Пример #3
0
        /// <summary>
        /// Creates a node in a menu
        /// </summary>
        /// <param name="menu">Categories or Filters menu</param>
        /// <param name="name">Name of node to create</param>
        static void CreateNodeInMenu(DBMenu<DBMovieInfo> menu, string name)
        {
            var node = new DBNode<DBMovieInfo>();
            node.Name = name;

            var nodeSettings = new DBMovieNodeSettings();
            node.AdditionalSettings = nodeSettings;

            // Add node to the end
            node.SortPosition = menu.RootNodes.Count + 1;

            // Add to root node
            menu.RootNodes.Add(node);

            // Committing node to menu
            menu.Commit();
        }
        public static void VerifyCategoryMenu()
        {
            DBMenu <DBTrackInfo> menu = mvCentralCore.Settings.CategoriesMenu;

            if (menu.RootNodes.Count == 0)
            {
                int position = 1;

                DBNode <DBTrackInfo> allNode = new DBNode <DBTrackInfo>();
                allNode.Name         = "${AllmvCentral}";
                allNode.DynamicNode  = false;
                allNode.Filter       = new DBFilter <DBTrackInfo>();
                allNode.SortPosition = position++;
                allNode.DBManager    = mvCentralCore.DatabaseManager;
                menu.RootNodes.Add(allNode);

                DBNode <DBTrackInfo> unwatchedNode = new DBNode <DBTrackInfo>();
                unwatchedNode.Name        = "${UnwatchedMusicVideo}";
                unwatchedNode.DynamicNode = false;
                unwatchedNode.Filter      = new DBFilter <DBTrackInfo>();
                DBCriteria <DBTrackInfo> criteria = new DBCriteria <DBTrackInfo>();
                criteria.Field    = DBField.GetFieldByDBName(typeof(DBUserMusicVideoSettings), "watched");
                criteria.Relation = DBRelation.GetRelation(typeof(DBTrackInfo), typeof(DBUserMusicVideoSettings), "");
                criteria.Operator = DBCriteria <DBTrackInfo> .OperatorEnum.EQUAL;
                criteria.Value    = "0";
                unwatchedNode.Filter.Criteria.Add(criteria);
                unwatchedNode.SortPosition = position++;
                unwatchedNode.DBManager    = mvCentralCore.DatabaseManager;
                menu.RootNodes.Add(unwatchedNode);


                DBNode <DBTrackInfo> recentNode = new DBNode <DBTrackInfo>();
                recentNode.Name         = "${RecentlyAddedmvCentral}";
                recentNode.DynamicNode  = false;
                recentNode.Filter       = new DBFilter <DBTrackInfo>();
                recentNode.SortPosition = position++;
                recentNode.DBManager    = mvCentralCore.DatabaseManager;

                DBCriteria <DBTrackInfo> recentCriteria = new DBCriteria <DBTrackInfo>();
                recentCriteria.Field    = DBField.GetFieldByDBName(typeof(DBTrackInfo), "date_added");
                recentCriteria.Operator = DBCriteria <DBTrackInfo> .OperatorEnum.GREATER_THAN;
                recentCriteria.Value    = "-30d";
                recentNode.Filter.Criteria.Add(recentCriteria);

                DBMusicVideoNodeSettings additionalSettings = new DBMusicVideoNodeSettings();
                additionalSettings.UseDefaultSorting = false;
//                additionalSettings.SortField = SortingFields.DateAdded;
//                additionalSettings.SortDirection = SortingDirections.Descending;
                recentNode.AdditionalSettings = additionalSettings;

                menu.RootNodes.Add(recentNode);


                DBNode <DBTrackInfo> genreNode = new DBNode <DBTrackInfo>();
                genreNode.DynamicNode         = true;
                genreNode.BasicFilteringField = DBField.GetFieldByDBName(typeof(DBTrackInfo), "genres");
                genreNode.Name         = "${Genres}";
                genreNode.SortPosition = position++;
                genreNode.DBManager    = mvCentralCore.DatabaseManager;
                menu.RootNodes.Add(genreNode);

                menu.Commit();
            }

            foreach (DBNode <DBTrackInfo> currNode in menu.RootNodes)
            {
                currNode.UpdateDynamicNode();
                currNode.Commit();
            }
        }