private void saveallToolStripMenuItem_Click(object sender, EventArgs e) { if (!Properties.Settings.Default.ReadOnly) { try { Cursor.Current = Cursors.WaitCursor; ExplorerNodeBase selectedNode = Explorer.SelectedNode as ExplorerNodeBase; if (selectedNode == null) { return; } this.toolStripStatusLabel.Text = SPMLocalization.GetString("Saving_All_Changes"); foreach (ExplorerNodeBase node in ChangedNodes.Keys) { node.Update(); node.Setup(); } ChangedNodes.Clear(); UpdateMenu(selectedNode); this.toolStripStatusLabel.Text = SPMLocalization.GetString("Changes_Saved"); } finally { Cursor.Current = Cursors.Default; } } }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (!Properties.Settings.Default.ReadOnly) { try { Cursor.Current = Cursors.WaitCursor; ExplorerNodeBase node = Explorer.SelectedNode as ExplorerNodeBase; if (node == null) { return; } this.toolStripStatusLabel.Text = SPMLocalization.GetString("Saving_Changes"); if (ChangedNodes.ContainsKey(node)) { node.Update(); node.Setup(); ChangedNodes.Remove(node); } UpdateMenu(node); this.toolStripStatusLabel.Text = SPMLocalization.GetString("Changes_Saved"); } finally { Cursor.Current = Cursors.Default; } } }
void Grid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { if (!CancelActive) { ExplorerNodeBase node = (ExplorerNodeBase)Explorer.SelectedNode; if (node == null) { return; } Hashtable propertyItems = null; if (!ChangedPropertyItems.ContainsKey(node)) { propertyItems = new Hashtable(); ChangedPropertyItems[node] = propertyItems; } else { propertyItems = ChangedPropertyItems[node]; } propertyItems[e.ChangedItem] = e; ChangedNodes[node] = true; UpdateMenu(node); } }
public void UpdateMenu(ExplorerNodeBase node) { toolStripSave.Enabled = ChangedNodes.ContainsKey(node); toolStripSaveAll.Enabled = ChangedNodes.Count > 0; toolStripCancel.Enabled = ChangedNodes.Count > 0; toolStripRefresh.Enabled = true; saveallToolStripMenuItem.Enabled = ChangedNodes.Count > 0; saveToolStripMenuItem.Enabled = ChangedNodes.ContainsKey(node); cancelToolStripMenuItem.Enabled = ChangedNodes.Count > 0; refreshToolStripMenuItem.Enabled = true; }
private void cancelToolStripMenuItem_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; CancelActive = true; ExplorerNodeBase selectedNode = Explorer.SelectedNode as ExplorerNodeBase; this.toolStripStatusLabel.Text = SPMLocalization.GetString("Cancel_All_Modifications"); foreach (ExplorerNodeBase node in ChangedNodes.Keys) { Hashtable propertyItem = ChangedPropertyItems[node]; foreach (PropertyValueChangedEventArgs pvEventArgs in propertyItem.Values) { PropertyDescriptor pd = pvEventArgs.ChangedItem.PropertyDescriptor; Type nodeType = node.Tag.GetType(); FieldInfo myField = nodeType.GetField(pd.Name, BindingFlags.Instance | BindingFlags.Public); if (myField != null) { myField.SetValue(node.Tag, pvEventArgs.OldValue); } else { PropertyInfo myProperty = nodeType.GetProperty(pd.Name, BindingFlags.Instance | BindingFlags.Public); if (myProperty != null) { myProperty.SetValue(node.Tag, pvEventArgs.OldValue, null); } } } ChangedPropertyItems.Remove(node); } foreach (TabPage page in tabControl.TabPages) { if (page is TabPropertyPage) { ((TabPropertyPage)page).Grid.Refresh(); } } ChangedNodes.Clear(); UpdateMenu(selectedNode); //this.toolStripStatusLabel.Text = "All modifications has been canceled"; CancelActive = false; Cursor.Current = Cursors.Default; }
private void ExplorerClick(ExplorerNodeBase node) { Cursor.Current = Cursors.WaitCursor; this.toolStripStatusLabel.Text = node.ToolTipText; UpdateMenu(node); ArrayList nodeColl = new ArrayList(node.GetTabPages()); int i = 0; while (i < tabControl.TabPages.Count) { TabPage page = tabControl.TabPages[i]; if (nodeColl.Contains(page)) { i++; } else { tabControl.TabPages.Remove(page); } } foreach (TabPage page in nodeColl) { if (!tabControl.Contains(page)) { tabControl.TabPages.Add(page); } } //tabControl.Update(); Cursor.Current = Cursors.Default; }