private void HandleEmulatorRightClick(EmulatorTreeNode selectedNode)
        {
            Emulator emu = selectedNode.Emulator;
            mLogger.Info(String.Format("Handling emulator right click on emulator {0}", emu.ToString()));
            ContextMenuStrip ctxMenu = new ContextMenuStrip();
            ToolStripMenuItem modifyEmulator = new ToolStripMenuItem(String.Format("Modify {0}",emu.Name));
            modifyEmulator.Click += (sender, args) => ModifyEmulator_Click(selectedNode, null);
            ToolStripMenuItem addNewPath = new ToolStripMenuItem(String.Format("Add New Rom Path To {0}", emu.Name));
            addNewPath.Click += (sender, args) => AddNewPathToEmulator_Click(selectedNode, null);
            ToolStripMenuItem deleteEmulator = new ToolStripMenuItem(String.Format("Delete {0}", emu.Name));
            deleteEmulator.Click += (sender, args) => DeleteEmulator_Click(selectedNode.Emulator, null);

            ctxMenu.Items.Add(modifyEmulator);
            ctxMenu.Items.Add(addNewPath);
            ctxMenu.Items.Add(deleteEmulator);
            treeEmulatorView.ContextMenuStrip = ctxMenu;
        }
 private void AddNewPathToEmulator_Click(EmulatorTreeNode selectedNode, object p)
 {
     Emulator selectedEmulator = selectedNode.Emulator;
     
     using (RomPathManagementWindow mModifyPathsForm = new RomPathManagementWindow())
     {
         mModifyPathsForm.Initialize(selectedEmulator.Name);
         if (mModifyPathsForm.ShowDialog(this) == DialogResult.OK)
         {
             String path = mModifyPathsForm.RomPath;
             String associatedEmulator = mModifyPathsForm.EmulatorToUse;
             String extension = mModifyPathsForm.EmulatorExtension;
             mConfigurationComponent.AddRomPath(path, associatedEmulator, extension);
         }
     }
 }
        private void redrawTreeView()
        {
            treeEmulatorView.Nodes.Clear();
            treeEmulatorView.Nodes.Add(getConfigFilename());
            TreeNode rootNode = treeEmulatorView.Nodes[0];
            
            foreach(Emulator emu in mLoadedEmulators)
            {
                TreeNode emulatorNode = new EmulatorTreeNode(emu);

                var associatedPaths = mLoadedPaths.Where(f => f.AssociatedEmulator == emu.Name);
                foreach(RomPath path in associatedPaths)
                {
                    List<String> resolvedFiles = mPathResolver.ResolvePaths(path.FolderPath,path.RomExtension);
                    foreach(String file in resolvedFiles)
                    {
                        emulatorNode.Nodes.Add(new PathTreeNode(file,path));
                    }
                }

                rootNode.Nodes.Add(emulatorNode);
            }
        }