public LibraryItem RemoveItemFromLibrary(uint id) { LibraryItem li = MainForm.CurrentLibrary[id]; if (li != null) { TreeNode tn = null; FindNode(symbolTree.Nodes, id, ref tn); if (tn != null && tn is LibraryTreeNode) { LibraryTreeNode liv = (LibraryTreeNode)tn; MainForm.CurrentLibrary.RemoveLibraryItem(liv.item); Console.WriteLine("remove " + liv.item.DefinitionId); tn.Remove(); } li.LibraryPath = ""; } RefreshCurrentNode(); uint[] uis = MainForm.CurrentLibrary.FindAllUsagesOfDefinition(id); UsageIdentifier[] removed = MainForm.CurrentStage.RemoveInstancesByIdGlobal(uis); MainForm.CurrentStage.InvalidateAll(); return(li); }
void symbolTree_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { symbolTree.LabelEdit = false; if (e.Node is LibraryTreeNode && e.Label != null && e.Label != "") { LibraryTreeNode liv = (LibraryTreeNode)e.Node; if (liv.item.Name != e.Label) { liv.item.Name = e.Label; MainForm.CurrentStage.HasSaveableChanges = true; } } }
public TreeNode AddItemToLibrary(LibraryItem li) { TreeNodeCollection nodes = GetFolder(li.LibraryPath); if (li.Name == null) { li.Name = MainForm.CurrentLibrary.GetNextDefaultName(); } int imageIndex = GetImageIndex(li); LibraryTreeNode ltn = new LibraryTreeNode(li, imageIndex, imageIndex); ltn.Name = li.Name; nodes.Add(ltn); li.LibraryPath = (ltn.Parent != null) ? ltn.Parent.FullPath : ""; return(ltn); }
public void OnKeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Delete: if (selectedItem != null && selectedItem is LibraryTreeNode) { LibraryTreeNode ltn = (LibraryTreeNode)selectedItem; MainForm.CurrentStage.CommandStack.Do( new DeleteItemsFromLibraryCommand(new uint[] { ltn.item.DefinitionId })); } break; case Keys.L: if ((ModifierKeys & Keys.Control) == Keys.Control) { MainForm.Instance.ShowLibraryView(sender, e); } break; } }
public bool InsertNode(LibraryTreeNode node, string path, int index) { bool result = false; TreeNodeCollection parentNodes = symbolTree.Nodes; int lastIndex = path.LastIndexOf(symbolTree.PathSeparator); if (lastIndex > -1) { string rootPath = path.Substring(0, lastIndex); TreeNode[] targ = symbolTree.Nodes.Find(rootPath, true); if (targ.Length > 0 && targ[0].Nodes.Count >= index) { parentNodes = targ[0].Nodes; } } if (parentNodes != null) { parentNodes.Insert(index, node); result = true; } return(result); }