Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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;
                }
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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;
        }
Exemple #5
0
        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;
        }
Exemple #6
0
        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;
        }