public ToolboxChangedArgs(ChangeTypes changeType, ToolboxItem changedItem) { this.ChangeType = changeType; this.ChangedItem = changedItem; }
private void RefreshModules(object src, ProjectModifiedArgs args) { ProjectModule changedModule = args.ChangedModule; ToolboxItem changedItem = null; ProjectModule currentModule = window.CurrentModule; Transaction xn = new Transaction(); IProjectAccess proj = xn.RequestReadAccess(window.Project); using (xn.Start()) { Dictionary <ProjectModule, ToolboxModule> oldItems = new Dictionary <ProjectModule, ToolboxModule>(); List <ToolboxModule> newModules = new List <ToolboxModule>(); foreach (ToolboxModule item in modules) { oldItems[item.Module] = item; if (item.Module == changedModule) { changedItem = item; } } foreach (ProjectModule mod in proj.GetModules()) { string curName = proj.GetModuleName(mod); if (mod == currentModule) { curName = curName + "*"; } ToolboxModule nextItem; if (oldItems.TryGetValue(mod, out nextItem)) { if (nextItem.Name != curName) { nextItem.SetName(curName); } } else { nextItem = new ToolboxModule(mod, curName); } newModules.Add(nextItem); if (nextItem.Module == changedModule) { changedItem = nextItem; } } this.modules.Clear(); foreach (ToolboxModule item in newModules) { this.modules.Add(item); } } if (changedItem != null) { ToolboxChangedArgs.ChangeTypes changeType; bool found = true; switch (args.ChangeType) { case ProjectModifiedArgs.ChangeTypes.ModuleAdded: changeType = ToolboxChangedArgs.ChangeTypes.ItemAdded; break; case ProjectModifiedArgs.ChangeTypes.ModuleRemoved: changeType = ToolboxChangedArgs.ChangeTypes.ItemRemoved; break; case ProjectModifiedArgs.ChangeTypes.ModuleRenamed: changeType = ToolboxChangedArgs.ChangeTypes.ItemRenamed; break; default: changeType = ToolboxChangedArgs.ChangeTypes.ItemAdded; // unused value to trick compiler found = false; break; } if (found) { OnToolboxChanged(changeType, changedItem); } } }