示例#1
0
        public static LuaSandbox CreateSandbox(Lua thread, string initialDirectory)
        {
            var sandbox = new LuaSandbox();

            SandboxForThread.Add(thread, sandbox);
            sandbox.SetSandboxCurrentDirectory(initialDirectory);
            return(sandbox);
        }
示例#2
0
 public Object GetPerElementData(Object Item, Func <Object, Object> NewFunc)
 {
     lock (_extendedData)
     {
         if (_extendedData.TryGetValue(Item, out Object result))
         {
             //we got a result- return it.
             return(result);
         }
         else
         {
             Object generatedinstance = NewFunc(Item);
             _extendedData.Add(Item, generatedinstance);
             return(generatedinstance);
         }
     }
 }
        /// <summary>
        /// Returns an existing or creates a new view model for the specified search hit.
        /// </summary>
        /// <param name="searchHit">Search hit for which a view model should be returned, or created.</param>
        /// <param name="parent">Parent enumerable</param>
        /// <returns>Created or existing view model.</returns>
        public static SearchHitViewModel GetOrCreateSearchHitViewModel(Engine.Interfaces.ISearchHit searchHit, ObservableEnumerable parent)
        {
            SearchHitViewModel viewModel = null;

            if (!mViewModels.TryGetValue(searchHit, out viewModel))
            {
                viewModel = new SearchHitViewModel(searchHit, parent);
                mViewModels.Add(searchHit, viewModel);
            }
            return(viewModel);
        }
示例#4
0
        /// <summary> Creates a new owned log source. Note that any given object can only have one owned TraceSource.</summary>
        /// <param name="name">The name of the Log.</param>
        /// <param name="owner">The object owning the log. This is used to enable OpenTAP to emit log messages on behalf of the owner object. </param>
        /// <returns>The created Log.</returns>
        public static TraceSource CreateSource(string name, object owner)
        {
            if (owner == null)
            {
                throw new ArgumentNullException("owner");
            }
            var source = CreateSource(name);

            source.Owner = owner;
            lock (addlock)
            {
                ownedTraceSources.Remove(owner);
                ownedTraceSources.Add(owner, source); // in this version of .NET there is no Update method...
            }
            return(source);
        }
示例#5
0
            public object WatchForChangesOnLayout(VisualElement visualElement, Action action)
            {
                if (action == null)
                {
                    return(null);
                }

                var view        = Platform.Android.Platform.GetRenderer(visualElement);
                var androidView = view?.View;

                if (androidView == null || !androidView.IsAlive())
                {
                    return(null);
                }

                var listener = new DualScreenGlobalLayoutListener(action, androidView);

                var table = new System.Runtime.CompilerServices.ConditionalWeakTable <AView, DualScreenGlobalLayoutListener>();

                androidView.ViewTreeObserver.AddOnGlobalLayoutListener(listener);
                table.Add(androidView, listener);
                return(table);
            }