/// <summary>
		/// Открывает диалог и обрабатывает блокировку подсказки для элементов сводной таблицы
		/// </summary>
		/// <param name="dlg"></param>
		void ShowDialog(ModalDialog dlg)
		{
			if (dlg != null)
			{
				// На время убираем контекстное меню сводной таблицы
				PivotGrid.UseContextMenu = false;
				// На время убираем всплывающую подсказку
				PivotGrid.TooltipManager.IsPaused = true;
				dlg.Show();
				dlg.DialogClosed -= new EventHandler<DialogResultArgs>(ModalDialog_DialogClosed);
				dlg.DialogClosed += new EventHandler<DialogResultArgs>(ModalDialog_DialogClosed);
			}
		}
        void CellsControl_PerformControlAction(object sender, ControlActionEventArgs<CellInfo> e)
        {
            switch (e.Action)
            {
                case ControlActionType.ShowMDX:
                    UpdateEntry entry = new UpdateEntry(e.UserData);
                    try
                    {
                        entry.OldValue = e.UserData.CellDescr.Value.Value.ToString();
                    }
                    catch { }

                    UpdateEntry change = PivotGrid.LocalChanges.FindChange(e.UserData);
                    if (change != null)
                    {
                        entry.NewValue = change.NewValue;
                    }

                    GetDataSourceInfo(entry);
                    break;
                case ControlActionType.ShowProperties:
                    ModalDialog dlg = new ModalDialog() {Width = 400, Height = 300, DialogStyle = ModalDialogStyles.OK };
                    CellPropertiesControl properties = new CellPropertiesControl();
                    properties.Initialize(e.UserData);
                    dlg.Content = properties;
                    dlg.Caption = Localization.CellPropertiesDialog_Caption;
                    Panel panel = GetRootPanel(this);
                    if (panel != null)
                    {
                        panel.Children.Add(dlg.Dialog.PopUpControl);
                    }
                    // На время убираем контекстное меню сводной таблицы
                    dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
                    PivotGrid.UseContextMenu = false;
                    dlg.Show();
                    break;
                case ControlActionType.ValueDelivery:
                    ShowValueDeliveryDialog(e.UserData);
                    break;
                case ControlActionType.ValueCopy:
                    ShowValueCopyDialog(e.UserData);
                    break;
                case ControlActionType.Copy:
                    CopyCellsToClipboard(e.UserData);
                    break;
                case ControlActionType.Paste:
                    PasteCellsFromClipboard(e.UserData);
                    break;
                case ControlActionType.DrillThrough:
                    DrillThroughCell(e.UserData);
                    break;
            }
        }
        void m_PreviewButton_Click(object sender, RoutedEventArgs e)
        {
            ModalDialog dlg = new ModalDialog();
            dlg.MinHeight = 300;
            dlg.MinWidth = 400;
            dlg.Height = 500;
            dlg.Width = 600;
            dlg.Caption = Localization.ValueCopyDialog_Caption;
            dlg.DialogOk += new EventHandler<DialogResultArgs>(ValueCopyDialog_OkButtonClick);

            ValueCopyControl CopyControl = new ValueCopyControl();
            CopyControl.CubeName = CubeName;
            CopyControl.ConnectionID = Connection;
            CopyControl.GetOlapDataLoader += new EventHandler<GetIDataLoaderArgs>(CopyControl_GetOlapDataLoader);
            CopyControl.LogManager = this.LogManager;
            CopyControl.Initialize(m_CopyControl.GetCopySettings());
            dlg.Content = CopyControl;

            dlg.Show();
        }
 void ShowMemberAttributes(MemberData member)
 {
     if (member != null)
     {
         ModalDialog dlg = new ModalDialog() { Width = 400, Height = 300, DialogStyle = ModalDialogStyles.OK };
         MemberPropertiesControl properties = new MemberPropertiesControl();
         properties.Initialize(member);
         dlg.Content = properties;
         dlg.Caption = Localization.CustomPropertiesDialog_Caption;
         Panel panel = GetRootPanel(this);
         if (panel != null)
         {
             panel.Children.Add(dlg.Dialog.PopUpControl);
         }
         // На время убираем контекстное меню сводной таблицы
         dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
         PivotGrid.UseContextMenu = false;
         dlg.Show();
     }
 }
 void MembersArea_PerformControlAction(object sender, ControlActionEventArgs<MemberInfo> e)
 {
     switch (e.Action)
     {
         case ControlActionType.ShowMDX:
             GetDataSourceInfo(null);
             break;
         case ControlActionType.ShowProperties:
             ModalDialog dlg = new ModalDialog() { Width = 400, Height = 300, DialogStyle = ModalDialogStyles.OK };
             MemberPropertiesControl properties = new MemberPropertiesControl();
             properties.Initialize(e.UserData);
             dlg.Content = properties;
             dlg.Caption = Localization.MemberPropertiesDialog_Caption;
             Panel panel = GetRootPanel(this);
             if (panel != null)
             {
                 panel.Children.Add(dlg.Dialog.PopUpControl);
             }
             // На время убираем контекстное меню сводной таблицы
             dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
             PivotGrid.UseContextMenu = false;
             dlg.Show();
             break;
         case ControlActionType.ShowAttributes:
             ShowMemberAttributes(e.UserData);
             break;
     }
 }
        void ShowDataSourceInfo(DataSourceInfoArgs args)
        {
            if (args != null)
            {
                ModalDialog dlg = new ModalDialog();
                dlg.Caption = Localization.DataSourceInfoDialog_Caption;
                dlg.MinHeight = 300;
                dlg.MinWidth = 400;
                dlg.Height = 400;
                dlg.Width = 500;

                DataSourceInfoControl DSInfo = new DataSourceInfoControl();
                dlg.Content = DSInfo;
                DSInfo.UpdateScriptVisibility = PivotGrid.CanEdit;
                DSInfo.Initialize(args);

                // На время убираем контекстное меню сводной таблицы
                dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
                PivotGrid.UseContextMenu = false;

                dlg.Show();
            }
        }
        protected virtual void ShowValueDeliveryDialog(CellInfo cell)
        {
            if (m_CSDescr != null && cell != null && cell.IsUpdateable)
            {
                // Если в кэше есть изменения, то нужно спросить об их сохранении
                if (UseChangesCashe && PivotGrid.LocalChanges.Count > 0)
                {
                    MessageBox.Show(Localization.PivotGrid_SaveCachedChanges, Localization.MessageBox_Warning, MessageBoxButton.OK);
                    return;
                }

                ModalDialog dlg = new ModalDialog();
                dlg.MinHeight = 300;
                dlg.MinWidth = 400;
                dlg.Height = 500;
                dlg.Width = 600;
                dlg.Caption = Localization.ValueDeliveryDialog_Caption;
                dlg.DialogOk += new EventHandler<DialogResultArgs>(ValueDeliveryDialog_OkButtonClick);

                ValueDeliveryControl DeliveryControl = new ValueDeliveryControl();
                DeliveryControl.CubeName = m_CSDescr.CubeName;
                DeliveryControl.ConnectionID = m_CSDescr.Connection.ConnectionID;
                DeliveryControl.LoadMembers += new EventHandler<QueryEventArgs>(DeliveryControl_LoadMembers);
                DeliveryControl.Initialize(cell);
                dlg.Content = DeliveryControl;

                // На время убираем контекстное меню сводной таблицы
                dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
                PivotGrid.UseContextMenu = false;

                dlg.Show();
            }
        }
        protected virtual void ShowValueCopyDialog(CellInfo cell)
        {
            if (m_CSDescr != null && cell != null && cell.IsUpdateable)
            {
                // Если в кэше есть изменения, то нужно спросить об их сохранении
                if (UseChangesCashe && PivotGrid.LocalChanges.Count > 0)
                {
                    MessageBox.Show(Localization.PivotGrid_SaveCachedChanges, Localization.MessageBox_Warning, MessageBoxButton.OK);
                    return;
                }

                IDictionary<String, MemberWrap> slice = new Dictionary<String, MemberWrap>();
                IDictionary<String, MemberInfo> tuple = cell.GetTuple();
                foreach (String hierarchyUniqueName in tuple.Keys)
                {
                    slice.Add(hierarchyUniqueName, new MemberWrap(tuple[hierarchyUniqueName]));
                }

                ModalDialog dlg = new ModalDialog();
                dlg.MinHeight = 300;
                dlg.MinWidth = 400;
                dlg.Height = 500;
                dlg.Width = 600;
                dlg.Caption = Localization.ValueCopyDialog_Caption;
                dlg.DialogOk += new EventHandler<DialogResultArgs>(ValueCopyDialog_OkButtonClick);

                ValueCopyControl CopyControl = new ValueCopyControl();
                CopyControl.CubeName = m_CSDescr.CubeName;
                CopyControl.ConnectionID = m_CSDescr.Connection.ConnectionID;
                CopyControl.LoadMetaData += new EventHandler(ValueCopyControl_LoadMetaData);
                CopyControl.GetOlapDataLoader += new EventHandler<GetIDataLoaderArgs>(CopyControl_GetMetadataLoader);
                CopyControl.LogManager = this.LogManager;
                CopyControl.Initialize(slice, cell.Value);
                dlg.Content = CopyControl;

                // На время убираем контекстное меню сводной таблицы
                dlg.DialogClosed += new EventHandler<DialogResultArgs>(Dlg_DialogClosed);
                PivotGrid.UseContextMenu = false;

                dlg.Show();
            }
        }