/// <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); }
/// <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); } } }
/// <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 { } }
/// <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); } }