public static UnifiedInvokeResult InvokeFunc <T> (ISynchronizeInvoke synchronizer, PythonFunction method) { Func <T> func = () => { return((T)PythonCalls.Call(method)); }; return(UnifiedSynchronizerAccess.Invoke(synchronizer, func, null)); }
public static void InvokeAction(ISynchronizeInvoke synchronizer, PythonFunction method) { Action action = () => { PythonCalls.Call(method); }; UnifiedSynchronizerAccess.Invoke(synchronizer, action, null); }
public static BlockEditorLogicBase GetGraphBlockEditorLogic(this ICoreObject block, IWorkingContext ViewWorkingContext = null, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = block.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } if (UsingSynchronizer.InvokeRequired) { return(UnifiedSynchronizerAccess.Invoke(UsingSynchronizer, new GetGraphBlockEditorLogicDelegate(GetGraphBlockEditorLogic), new object[3] { block, ViewWorkingContext, synchronizer }).InvokeResult as BlockEditorLogicBase); } GraphBlockEditorLogic pl = new GraphBlockEditorLogic(); if (ViewWorkingContext == null) { IWorkingContext iwc = block.GetWorkingContext(); pl.Attach(iwc); } else { pl.Attach(ViewWorkingContext); } pl.PostAttach(); try { pl.SetPayload(block); } catch (Exception ex) { Console.WriteLine(ex); } return(pl); }
public static BlockEditorControlBase GetPLView(this ICoreObject block, BlockEditorLogicBase logic, IWorkingContext ViewWorkingContext = null, LanguageServiceContainer serviceContainer = null, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = block.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } if (UsingSynchronizer.InvokeRequired) { return(UnifiedSynchronizerAccess.Invoke(UsingSynchronizer, new GetPLViewDelegate(GetPLView), new object[4] { block, ViewWorkingContext, serviceContainer, synchronizer }).InvokeResult as BlockEditorControlBase); } PLBlockEditorControlElement pl = new PLBlockEditorControlElement(); if (ViewWorkingContext == null) { IWorkingContext iwc = block.GetWorkingContext(); pl.Attach(iwc); } else { pl.Attach(ViewWorkingContext); } EditorPayload ep = new EditorPayload(block, ViewWorkingContext, serviceContainer); pl.SetPayload(ep); pl.SetDomainLogic(logic); logic.SetView(pl); logic.InitializationFinished(); return(pl); }
public static BlockEditorLogicBase GetPLBlockEditorLogic(this ICoreObject block, IWorkingContext ViewWorkingContext = null, LanguageServiceContainer serviceContainer = null, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = block.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } if (UsingSynchronizer.InvokeRequired) { return(UnifiedSynchronizerAccess.Invoke(UsingSynchronizer, new GetPLBlockEditorLogicDelegate(GetPLBlockEditorLogic), new object[4] { block, ViewWorkingContext, serviceContainer, synchronizer }).InvokeResult as BlockEditorLogicBase); } PLBlockEditorLogic pl = new PLBlockEditorLogic(EditorMode.Normal); IWorkingContext iwc = block.GetWorkingContext(); pl.Attach(iwc); //pl.Attach(ViewWorkingContext); pl.PostAttach(); EditorPayload ep = new EditorPayload(block, ViewWorkingContext, serviceContainer); pl.SetPayload(ep); //Reflector.RunInstanceMethodByName(pl, "CreateOnlineManager"); OnlineManagerBase OnlineManager = pl.OnlineManager; return(pl); }
public static BlockEditorControlBase GetGraphView(this ICoreObject block, IWorkingContext ViewWorkingContext = null, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = block.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } if (UsingSynchronizer.InvokeRequired) { return(UnifiedSynchronizerAccess.Invoke(UsingSynchronizer, new GetGraphViewDelegate(GetGraphView), new object[3] { block, ViewWorkingContext, synchronizer }).InvokeResult as BlockEditorControlBase); } GraphBlockEditorControl pl = new GraphBlockEditorControl(); IWorkingContext iwc = block.GetWorkingContext(); pl.Attach(iwc); BlockEditorLogicBase logic = block.GetGraphBlockEditorLogic(); pl.SetDomainLogic(logic); pl.SetPayload(block); pl.InitializationFinished(); pl.CreateVisuals(); return(pl); }
public static object RunInSynchronizer(ISynchronizeInvoke Synchronizer, Delegate method, params object[] args) { return(UnifiedSynchronizerAccess.Invoke(Synchronizer, method, args).InvokeResult); }