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(); } }
/// <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(); } }