private void cmDeleteFile_Click(object sender, EventArgs e) { if (dgvData.SelectedRows.Count < 1) { SimpleMessage.ShowInfo("Please select file."); return; } try { if (SimpleMessage.Confirm("Are you sure to delete selected file(s)?") == DialogResult.Yes) { string path = SimplePath.GetFullPath(treeView1.SelectedNode.FullPath); for (int i = 0; i < dgvData.SelectedRows.Count; i++) { string file = PathUtils.GetFileName(dgvData.SelectedRows[i], path); File.Delete(file); } TreeViewHandler.RefreshNode(treeView1.SelectedNode); } } catch (Exception ex) { SimpleMessage.ShowException(ex); } }
private void dgvData_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (dgvData.CurrentRow != null) { string file = PathUtils.GetFileName(dgvData.CurrentRow); if (PathUtils.IsAssembly(file)) { cmClassEditor_Click(sender, e); } } }
private void cmAssembly_Opening(object sender, CancelEventArgs e) { ContextMenuStrip cms = sender as ContextMenuStrip; //nothing selected if (dgvData.SelectedRows.Count < 1) { for (int i = 0; i < cms.Items.Count; i++) { cms.Items[i].Enabled = false; } return; } //common menus cms.Items["cmCopyInfo"].Enabled = true; cms.Items["cmOpenFolder"].Enabled = true; cms.Items["cmDeleteFile"].Enabled = true; //checking selected rows bool oneSelected = dgvData.SelectedRows.Count == 1; bool isAllExe = true; bool isAllAssembly = true; bool hasNetModule = false; for (int i = 0; i < dgvData.SelectedRows.Count; i++) { string fileName = PathUtils.GetFileName(dgvData.SelectedRows[i]); isAllExe = isAllExe && PathUtils.IsExe(fileName); isAllAssembly = isAllAssembly && PathUtils.IsAssembly(fileName); hasNetModule = hasNetModule || PathUtils.IsNetModule(fileName); } bool isAllIL = !isAllAssembly; //standard menus if (isAllAssembly) { cms.Items["cmDasm"].Enabled = true; if (hasNetModule) { cms.Items["cmDeobf"].Enabled = false; cms.Items["cmVerify"].Enabled = false; cms.Items["cmStrongName"].Enabled = false; } else { cms.Items["cmDeobf"].Enabled = true; cms.Items["cmVerify"].Enabled = true; cms.Items["cmStrongName"].Enabled = true; } cms.Items["cmClassEditor"].Enabled = true; //disable this just because Reflector cannot load *same* assembly files if (oneSelected && !hasNetModule) { cms.Items["cmRunMethod"].Enabled = true; } else { cms.Items["cmRunMethod"].Enabled = false; } } else { cms.Items["cmDasm"].Enabled = false; cms.Items["cmDeobf"].Enabled = false; cms.Items["cmVerify"].Enabled = false; cms.Items["cmStrongName"].Enabled = false; cms.Items["cmClassEditor"].Enabled = false; cms.Items["cmRunMethod"].Enabled = false; } if (isAllIL) { cms.Items["cmAsm"].Enabled = true; } else { cms.Items["cmAsm"].Enabled = false; } if (isAllExe && oneSelected) { cms.Items["cmProfiler"].Enabled = true; } else { cms.Items["cmProfiler"].Enabled = false; } foreach (ToolStripItem item in cms.Items) { ToolStripMenuItem mi = item as ToolStripMenuItem; if (mi == null || mi.Tag == null) { continue; } IMainPlugin plugin = mi.Tag as IMainPlugin; if (plugin == null) { continue; } MainPluginInfo pi = plugin.PluginInfo; if (pi.RowType == RowTypes.One && !oneSelected) { mi.Enabled = false; } else { if (pi.SourceType == SourceTypes.Any) { mi.Enabled = true; } else if (pi.SourceType == SourceTypes.Assembly && isAllAssembly) { mi.Enabled = true; } else if (pi.SourceType == SourceTypes.Executable && isAllExe) { mi.Enabled = true; } else if (pi.SourceType == SourceTypes.ILFile && isAllIL) { mi.Enabled = true; } else { mi.Enabled = false; } } } e.Cancel = false; }