/// <summary>
        /// Checks if the client can do the command</summary>
        /// <param name="commandTag">Command</param>
        /// <returns>True if client can do the command</returns>
        bool ICommandClient.CanDoCommand(object commandTag)
        {
            bool canDo = false;

            if (commandTag is StandardCommand)
            {
                IViewingContext viewingContext = m_contextRegistry.GetActiveContext <IViewingContext>();

                switch ((StandardCommand)commandTag)
                {
                case StandardCommand.ViewFrameSelection:
                    ISelectionContext selectionContext = m_contextRegistry.GetActiveContext <ISelectionContext>();
                    if (viewingContext != null && selectionContext != null)
                    {
                        canDo = viewingContext.CanFrame(selectionContext.Selection);
                    }
                    break;

                case StandardCommand.ViewFrameAll:
                    IEnumerableContext enumerableContext = m_contextRegistry.GetActiveContext <IEnumerableContext>();
                    if (viewingContext != null && enumerableContext != null)
                    {
                        canDo = viewingContext.CanFrame(enumerableContext.Items);
                    }
                    break;
                }
            }

            return(canDo);
        }
Пример #2
0
 /// <summary>
 /// Frames the selection</summary>
 /// <param name="viewingContext">Active viewing context</param>
 /// <param name="items">Selected items</param>
 public void FrameSelection(IViewingContext viewingContext, IEnumerable<object> items)
 {
     if (viewingContext != null)
     {
         if (viewingContext.CanFrame(items))
             viewingContext.Frame(items);
     }
 }
 /// <summary>
 /// Frames the selection</summary>
 /// <param name="viewingContext">Active viewing context</param>
 /// <param name="items">Selected items</param>
 public void FrameSelection(IViewingContext viewingContext, IEnumerable <object> items)
 {
     if (viewingContext != null)
     {
         if (viewingContext.CanFrame(items))
         {
             viewingContext.Frame(items);
         }
     }
 }
Пример #4
0
        /// <summary>
        /// Since this application is really just a wrapper around 3 other editors, the scripting service
        /// needs to do some special handling for commonly named variables. </summary>
        /// <param name="container"></param>
        private static void InitializeScriptingVariables(CompositionContainer container)
        {
            try
            {
                ScriptingService scriptingService = container.GetExportedValue <ScriptingService>();
                if (scriptingService != null)
                {
                    scriptingService.RemoveVariable("editor");
                    StatechartEditorSample.Editor stateChartEditor = container.GetExportedValue <StatechartEditorSample.Editor>();
                    if (stateChartEditor != null)
                    {
                        scriptingService.SetVariable("stateChartEditor", stateChartEditor);
                    }
                    CircuitEditorSample.Editor circuitEditor = container.GetExportedValue <CircuitEditorSample.Editor>();
                    if (circuitEditor != null)
                    {
                        scriptingService.SetVariable("circuitEditor", circuitEditor);
                    }
                    FsmEditorSample.Editor fsmEditor = container.GetExportedValue <FsmEditorSample.Editor>();
                    if (fsmEditor != null)
                    {
                        scriptingService.SetVariable("fsmEditor", fsmEditor);
                    }

                    IContextRegistry contextRegistry = container.GetExportedValue <IContextRegistry>();
                    if (contextRegistry != null)
                    {
                        contextRegistry.ActiveContextChanged += delegate
                        {
                            //Note this assumes this is the last ActiveContextChanged listener to be called.
                            //Each of the Circuit/Fsm/StatechartEditors also set these variables
                            //(2 out of 3 will set them to null), so it is important this is the last listener invoked.
                            EditingContext editingContext = contextRegistry.ActiveContext.As <EditingContext>();
                            scriptingService.SetVariable("editingContext", editingContext);
                            IViewingContext viewContext = contextRegistry.GetActiveContext <IViewingContext>();
                            scriptingService.SetVariable("view", viewContext);
                        };
                    }
                }
            }
            catch { }
        }
Пример #5
0
 /// <summary>
 /// Frames items</summary>
 /// <param name="viewingContext">Active viewing context</param>
 /// <param name="items">Items to be framed</param>
 public void FrameAll(IViewingContext viewingContext, IEnumerable<object> items)
 {
     if (items != null &&
         viewingContext != null)
     {
         if (viewingContext.CanFrame(items))
             viewingContext.Frame(items);
     }
 }