예제 #1
0
        public void Initialize()
        {
            _items.Clear();
            _stackGrid.Clear();

            foreach (var item in _statusBarItems)
            {
                AddStatusBarItem(item);
            }

            //添加默认状态栏项;
            //var defaultItem = CreateStatusBarTextItem(Constants.StatusBarItemDefault);
            //defaultItem.Margin = new Thickness(3, 0, 3, 0);
            //AddStatusBarItem(defaultItem, GridChildLength.Auto);


            //添加中间的空余项;
            //var indentItem = CreateStatusBarObjectItem(Constants.StatusBarItemIndent, null);
            //AddStatusBarItem(
            //    indentItem,
            //    new GridChildLength(new GridLength(1, GridUnitType.Star)),
            //    Contracts.StatusBar.Constants.StatusBarOrder_Indent
            //);

            CommonEventHelper.Publish <StatusBarInitializeEvent, IStatusBarService>(this);
            CommonEventHelper.PublishEventToHandlers <IStatusBarInitializeEventHandler, IStatusBarService>(this);
        }
예제 #2
0
        public static void RemoveDrawObjects(this ICanvasDataContext canvasDataContext, ICollection <DrawObject> drawObjects)
        {
            if (drawObjects == null)
            {
                throw new ArgumentNullException(nameof(drawObjects));
            }

            if (drawObjects.Count == 0)
            {
                return;
            }

            //激发即将移除事件;
            var removingArgs = new CanvasDrawObjectsRemovingEventArgs(drawObjects, canvasDataContext);

            CommonEventHelper.Publish <CanvasDrawObjectsRemovingEvent, CanvasDrawObjectsRemovingEventArgs>(removingArgs);
            CommonEventHelper.PublishEventToHandlers <ICanvasDrawObjectsRemovingEventHandler, CanvasDrawObjectsRemovingEventArgs>(removingArgs);
            //若指示取消或集合为空,则不继续执行;
            if (removingArgs.Cancel || removingArgs.RemovingDrawObjects.Count == 0)
            {
                return;
            }

            var removingGroups = removingArgs.RemovingDrawObjects.
                                 GroupBy(p => p.Parent as CanvasLayer).Where(p => p.Key != null).ToArray();

            void RemoveDrawObjects()
            {
                try {
                    foreach (var tuple in removingGroups)
                    {
                        tuple.Key.RemoveDrawObjects(tuple);
                    }
                }
                catch (Exception ex) {
                    LoggerService.WriteException(ex);
                    MsgBoxService.ShowError(ex.Message);
                }
            }

            void AddDrawObjects()
            {
                try {
                    foreach (var tuple in removingGroups)
                    {
                        tuple.Key.AddDrawObjects(tuple);
                    }
                }
                catch (Exception ex) {
                    LoggerService.WriteException(ex);
                    MsgBoxService.ShowError(ex.Message);
                }
            }

            RemoveDrawObjects();

            var action = new StandardEditTransaction(AddDrawObjects, RemoveDrawObjects);

            canvasDataContext.CommitTransaction(action);
        }
예제 #3
0
 public void Initialize()
 {
     try {
         CommonEventHelper.Publish <CanvasDataContextInitializingEvent, ICanvasDataContext>(CanvasDataContext);
         CommonEventHelper.PublishEventToHandlers <ICanvasDataContextInitializingEventHandler, ICanvasDataContext>(CanvasDataContext);
     }
     catch (Exception ex) {
         LoggerService.WriteException(ex);
     }
 }
예제 #4
0
        public void Initialize()
        {
            var dir = AppDomainService.ExecutingAssemblyDirectory;

            try {
                CommonEventHelper.Publish <SettingsServiceInitializeEvent, ISettingsService>(this);
                CommonEventHelper.PublishEventToHandlers <ISettingsServiceInitializeEventHandler, ISettingsService>(this);
            }
            catch (Exception ex) {
            }
        }
예제 #5
0
        /// <summary>
        /// Ribbon的Tab发生变化时激发事件;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RibbonMenu_SelectionChanged(object sender, RadSelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count == 0)
            {
                return;
            }

            if (!((e.AddedItems[0] as RadRibbonTab)?.DataContext is RibbonTabDataContext ribbonTabDataContext))
            {
                return;
            }

            var args = new SelectedRibbonTabChangedEventArgs(ribbonTabDataContext.RibbonTabMetaData);

            CommonEventHelper.Publish <SelectedRibbonTabChangedEvent, SelectedRibbonTabChangedEventArgs>(args);
            CommonEventHelper.PublishEventToHandlers <ISelectedRibbonTabChangedEventHandler, SelectedRibbonTabChangedEventArgs>(args);
        }
예제 #6
0
 private void Shell_Closing(object sender, CancelEventArgs e)
 {
     CommonEventHelper.Publish <ShellClosingEvent, CancelEventArgs>(e);
     CommonEventHelper.PublishEventToHandlers <IShellClosingEventHandler, CancelEventArgs>(e);
 }