public virtual void Init() { if (!IsReady) { SimpleWaitCursor wc = new SimpleWaitCursor(); try { _form.SetStatusText(String.Format("Loading {0} ...", _name)); Initializing = true; InitControls(); InitAssemblyPath(); } catch { _form.TabControl.SelectedTab = _form.DetailsTabPage; throw; } finally { wc.Dispose(); Initializing = false; _form.SetStatusText(null); } } }
void CheckBuiltInContextMenu() { if (this._contextMenuStrip == null) { ContextMenuStrip cms = new ContextMenuStrip(); _cutToolStripMenuItem = new ToolStripMenuItem("Cut", null, new EventHandler(CutMenuItem_Click)); cms.Items.Add(_cutToolStripMenuItem); _copyToolStripMenuItem = new ToolStripMenuItem("Copy", null, new EventHandler(CopyMenuItem_Click)); cms.Items.Add(_copyToolStripMenuItem); _pasteToolStripMenuItem = new ToolStripMenuItem("Paste", null, new EventHandler(PasteMenuItem_Click)); cms.Items.Add(_pasteToolStripMenuItem); cms.Items.Add(new ToolStripSeparator()); _selectAllToolStripMenuItem = new ToolStripMenuItem("Select All", null, new EventHandler(SelectAllMenuItem_Click)); cms.Items.Add(_selectAllToolStripMenuItem); cms.Items.Add(new ToolStripSeparator()); _commitToolStripMenuItem = new ToolStripMenuItem("Commit", null, new EventHandler(CommitMenuItem_Click), Keys.Control | Keys.S); cms.Items.Add(_commitToolStripMenuItem); _rollbackToolStripMenuItem = new ToolStripMenuItem("Rollback", null, new EventHandler(RollbackMenuItem_Click), Keys.Control | Keys.R); cms.Items.Add(_rollbackToolStripMenuItem); cms.Opening += new CancelEventHandler(ClassEditBinaryViewContextMenu_Opening); _contextMenuStrip = cms; } this._hexBox.ReadOnly = true; if (this._hexBox.ByteProvider == null) { this._hexBox.ContextMenuStrip = null; } else { this._hexBox.ContextMenuStrip = _contextMenuStrip; this._hexBox.ReadOnly = false; } if (!_hexBox.ReadOnly) { _form.SetStatusText("CTRL+S to commit, CTRL+R to rollback."); } }
void Commit() { var n = _form.TreeViewHandler.SelectedNode; var r = (Resource)n.Tag; if (r is EmbeddedResource) { var er = (EmbeddedResource)r; var detailType = (SimpleAssemblyExplorer.ClassEditResourceHandler.DetailTypes)_form.DetailsTabPage.Tag; var data = Encoding.Unicode.GetBytes(_textbox.Text); if (detailType == ClassEditResourceHandler.DetailTypes.TextResource) { var newEr = new EmbeddedResource(er.Name, er.Attributes, data); var ad = _form.TreeViewHandler.GetCurrentAssembly(); ad.MainModule.Resources.Remove(er); ad.MainModule.Resources.Add(newEr); n.Tag = newEr; } else if (detailType == ClassEditResourceHandler.DetailTypes.ResourcesRowAsText) { var row = _form.ResourceDataGrid.CurrentRow; string key = _form.ResourceHandler.GetNameCellValue(row); var newEr = _form.ResourceHandler.ReplaceResource(er, key, data); var ad = _form.TreeViewHandler.GetCurrentAssembly(); ad.MainModule.Resources.Remove(er); ad.MainModule.Resources.Add(newEr); n.Tag = newEr; var rowIndex = row.Index; _form.ResourceHandler.InitResource(newEr); row = _form.ResourceDataGrid.Rows[rowIndex]; _form.ResourceDataGrid.CurrentCell = row.Cells[0]; row.Selected = true; _form.ResourceDataGrid.FirstDisplayedScrollingRowIndex = rowIndex > 10 ? rowIndex - 10 : 0; } else { throw new NotImplementedException(); } } _form.SetStatusText("Changes committed."); }