public VisualElement Build(InspectorContext <AndroidSettings> context) { var root = new VisualElement(); context.DoDefaultGui(root, nameof(AndroidSettings.PackageName)); context.DoDefaultGui(root, nameof(AndroidSettings.TargetArchitectures)); var minApiPopup = new PopupField <int>( ObjectNames.NicifyVariableName(nameof(AndroidSettings.MinAPILevel)), AndroidSettings.s_AndroidCodeNames.Keys.ToList(), 0, value => AndroidSettings.s_AndroidCodeNames[value], value => AndroidSettings.s_AndroidCodeNames[value]) { bindingPath = nameof(AndroidSettings.MinAPILevel) }; root.contentContainer.Add(minApiPopup); m_TargetApiPopup = new PopupField <int>( ObjectNames.NicifyVariableName(nameof(AndroidSettings.TargetAPILevel)), AndroidSettings.s_AndroidCodeNames.Keys.ToList(), 0, value => AndroidSettings.s_AndroidCodeNames[value], value => AndroidSettings.s_AndroidCodeNames[value]) { bindingPath = nameof(AndroidSettings.TargetAPILevel) }; root.contentContainer.Add(m_TargetApiPopup); return(root); }
/// <summary> /// Initializes this instance of the Glimpse runtime. /// </summary> /// <returns> /// <c>true</c> if system initialized successfully, <c>false</c> otherwise /// </returns> public bool Initialize() { CreateAndStartGlobalExecutionTimer(Configuration.FrameworkProvider.HttpRequestStore); var logger = Configuration.Logger; var policy = GetRuntimePolicy(RuntimeEvent.Initialize); if (policy == RuntimePolicy.Off) { return(false); } // Double checked lock to ensure thread safety. http://en.wikipedia.org/wiki/Double_checked_locking_pattern if (!IsInitialized) { lock (LockObj) { if (!IsInitialized) { var messageBroker = Configuration.MessageBroker; var tabsThatRequireSetup = Configuration.Tabs.Where(tab => tab is ITabSetup).Select(tab => tab); foreach (ITabSetup tab in tabsThatRequireSetup) { var key = CreateKey(tab); try { var setupContext = new TabSetupContext(logger, messageBroker, () => GetTabStore(key)); tab.Setup(setupContext); } catch (Exception exception) { logger.Error(Resources.InitializeTabError, exception, key); } } var inspectorContext = new InspectorContext(logger, Configuration.ProxyFactory, messageBroker, Configuration.TimerStrategy, Configuration.RuntimePolicyStrategy); foreach (var inspector in Configuration.Inspectors) { try { inspector.Setup(inspectorContext); logger.Debug(Resources.GlimpseRuntimeInitializeSetupInspector, inspector.GetType()); } catch (Exception exception) { logger.Error(Resources.InitializeInspectorError, exception, inspector.GetType()); } } PersistMetadata(); IsInitialized = true; } } } return(policy != RuntimePolicy.Off); }
protected override void OnUpdate(InspectorContext <GlobalObjectId> context) { var id = context.Data; var defaultId = new GlobalObjectId(); m_Field.SetValueWithoutNotify(id.assetGUID == defaultId.assetGUID ? null : GlobalObjectId.GlobalObjectIdentifierToObjectSlow(context.Data)); }
private void Inspect(InspectorContext context) { IEnumerable <IEntityInspector> inspectors = GetEntityInspectors(context.Entry); foreach (IEntityInspector inspector in inspectors) { inspector.Inspect(context); } }
public VisualElement Build(InspectorContext <DirectoryInfo> context) { m_TextField = new TextField(context.PrettyName); m_TextField.RegisterValueChangedCallback(evt => { context.Data = new DirectoryInfo(evt.newValue); }); return(m_TextField); }
protected override void OnChanged(InspectorContext <GUID> context, ChangeEvent <Object> evt) { if (null != evt.newValue && evt.newValue) { context.Data = new GUID(AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(evt.newValue))); } else { context.Data = default; } }
protected override void OnChanged(InspectorContext <GlobalObjectId> context, ChangeEvent <Object> evt) { if (null != evt.newValue && evt.newValue) { context.Data = GlobalObjectId.GetGlobalObjectIdSlow(evt.newValue); } else { context.Data = default; } }
void LoadModule(string path, InspectorContext context) { Dictionary <Assembly, string> instanciableTypes = new Dictionary <Assembly, string> (); Console.WriteLine("Loading {0}...", path); foreach (var file in Directory.EnumerateFiles(path, "*.dll")) { var fileName = Path.GetFileName(file); Console.WriteLine("[{0}] Found.", fileName); try { var assembly = Assembly.LoadFile(file); instanciableTypes.Add(assembly, file); } catch (Exception ex) { Console.WriteLine("[{0}] Error loading.", fileName); //Console.WriteLine(ex); } } foreach (var assemblyTypes in instanciableTypes) { try { var interfaceType = typeof(IInspectorTabModule); var types = assemblyTypes.Key.GetTypes() .Where(interfaceType.IsAssignableFrom); Console.WriteLine("[{0}] Loaded.", assemblyTypes.Value); foreach (var type in types) { Console.WriteLine("[{0}] Creating instance {1}", assemblyTypes.Key, type); try { if (Activator.CreateInstance(type) is IInspectorTabModule element) { context.Modules.Add(element); } } catch (Exception ex) { Console.WriteLine(ex); } Console.WriteLine("[{0}] Loaded", type); } } catch (Exception ex) { } } }
public VisualElement Build(InspectorContext <ClassicScriptingSettings> context) { var root = new VisualElement(); context.DoDefaultGui(root, nameof(ClassicScriptingSettings.ScriptingBackend)); context.DoDefaultGui(root, nameof(ClassicScriptingSettings.Il2CppCompilerConfiguration)); context.DoDefaultGui(root, nameof(ClassicScriptingSettings.UseIncrementalGC)); m_ScriptingBackend = root.Q <EnumField>(nameof(ClassicScriptingSettings.ScriptingBackend)); m_Il2CppCompilerConfiguration = root.Q <VisualElement>(nameof(ClassicScriptingSettings.Il2CppCompilerConfiguration)); return(root); }
public VisualElement Build(InspectorContext <BuildTarget> context) { m_TargetPopup = new PopupField <BuildTarget>(GetAvailableTargets(), 0, GetDisplayName, GetDisplayName) { label = context.PrettyName }; m_TargetPopup.RegisterValueChangedCallback(evt => { context.Data = evt.newValue; }); return(m_TargetPopup); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); BreezeConfig.RegisterBreeze(); Database.SetInitializer(new InspectorContext.ContextInitializer()); var context = new InspectorContext(); context.Database.Initialize(true); }
public void SetPropertiesOnConstruct() { var loggerMock = new Mock <ILogger>(); var factoryMock = new Mock <IProxyFactory>(); var brokerMock = new Mock <IMessageBroker>(); var timerMock = new Mock <IExecutionTimer>(); var context = new InspectorContext(loggerMock.Object, factoryMock.Object, brokerMock.Object, () => timerMock.Object, () => RuntimePolicy.On); Assert.NotNull(context); Assert.Equal(loggerMock.Object, context.Logger); Assert.Equal(factoryMock.Object, context.ProxyFactory); Assert.Equal(brokerMock.Object, context.MessageBroker); Assert.Equal(timerMock.Object, context.TimerStrategy()); }
void Initialize() { NSApplication.SharedApplication.SetAutomaticCustomizeTouchBarMenuItemEnabled(true); touchbar = new NSTouchBar(); service = ToolbarService.Current; context = InspectorContext.Current; if (context.Manager == null) { var inspectorDelegate = new MacInspectorDelegate(); inspectorDelegate.InitializeManager(context, service); } context.FocusedViewChanged += Context_FocusedViewChanged; }
public VisualElement Build(InspectorContext <T> context) { m_Field = new ObjectField(context.PrettyName) { allowSceneObjects = false }; var asset = context.Attributes.GetAttribute <AssetGuidAttribute>(); Assert.IsTrue(typeof(UnityEngine.Object).IsAssignableFrom(asset.Type)); m_Field.objectType = asset.Type; m_Field.RegisterValueChangedCallback(evt => OnChanged(context, evt)); return(m_Field); }
public void InitializeManager(InspectorContext context, ToolbarService service) { LoadModules(context); var over = new MacBorderedWindow(CGRect.Empty, NSColor.Green); var next = new MacBorderedWindow(CGRect.Empty, NSColor.Red); var previous = new MacBorderedWindow(CGRect.Empty, NSColor.Blue); var acc = new MacAccessibilityWindow(new CGRect(10, 10, 600, 700)); var ins = new InspectorWindow(this, new CGRect(10, 10, 600, 700));; var tool = new MacToolbarWindow(this, new CGRect(10, 10, 100, 700)); tool.ShowToolkit(false); var manager = new InspectorManager(this, over, next, previous, acc, ins, tool); context.Initialize(manager, false); service.SetDelegate(this); }
public void LoadModules(InspectorContext context) { var modules = InspectorContext.Current.ModulesDirectoryPath; Console.WriteLine("Loading modules from: {0}", modules); if (!Directory.Exists(modules)) { Console.WriteLine("Error: folder not found."); return; } var modulesDirectories = Directory.EnumerateDirectories(modules); Console.WriteLine("{0} module/s found.", modulesDirectories.Count()); foreach (var module in modulesDirectories) { LoadModule(module, context); } }
static bool TryGetDrawer <TValue>( InspectorVisitor <T> visitor, IProperty property, PropertyPath propertyPath, string propertyName, InspectorVisitLevel visitLevel) { var inspector = CustomInspectorDatabase.GetPropertyDrawer <TValue>(property); if (null == inspector) { return(false); } var proxy = new InspectorContext <TValue>(visitor.VisitorContext.Binding, property, propertyPath, propertyName, visitLevel); var customInspector = new CustomInspectorElement <TValue>(inspector, proxy); visitor.VisitorContext.Parent.contentContainer.Add(customInspector); inspector.Update(proxy); return(true); }
public static async Task Run(string solutionPath) { var buildHelper = new BuildHelper(); var solution = await buildHelper.OpenSolutionAsync(solutionPath); var context = await InspectorContext.Create(solution); var members = await MemberExtractorVisitor.GetMembers(context, solution); var filter = "ProcessOrder"; Console.WriteLine($"Find the sequence of methods calling '{filter}'\r\n"); var processOrderMethod = members .OfType <MethodDeclarationSyntax>() .Where(m => m.Identifier.ToString().Contains(filter)) .FirstOrDefault(); // walk the call graph upwards and find the "top" (not referenced) method(s) var topMembers = DeclarationUpVisitor.Start(context, processOrderMethod); var topMember = topMembers .OfType <MethodDeclarationSyntax>() .First(); Console.WriteLine($"The top method we walk down is '{topMember.Identifier.ToString()}'"); var sequence = CallSequenceVisitor2.Start(context, topMember, _ruleInterfaceIdentifier); var str = string.Join("\r\n", sequence.Select(s => "[" + string.Join(";", s) + "]")); Console.WriteLine(str); Console.WriteLine("\r\nPress any key to exit"); Console.ReadKey(); }
public InspectorVisitor(BindingContextElement root) { Context = new InspectorContext(root); }
public void Update(InspectorContext <BuildTarget> proxy) { m_TargetPopup.SetValueWithoutNotify(proxy.Data); }
public void Update(InspectorContext <DirectoryInfo> context) { m_TextField.SetValueWithoutNotify(context.Data.GetRelativePath()); }
public void Update(InspectorContext <AndroidSettings> context) { // Nothing to do. }
protected override void OnUpdate(InspectorContext <GUID> context) { m_Field.SetValueWithoutNotify(AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath(context.Data.ToString()))); }
protected abstract void OnUpdate(InspectorContext <T> context);
protected abstract void OnChanged(InspectorContext <T> context, ChangeEvent <UnityEngine.Object> evt);
public void Update(InspectorContext <T> context) { OnUpdate(context); }
public void Update(InspectorContext <ClassicScriptingSettings> context) { m_Il2CppCompilerConfiguration.SetEnabled((ScriptingImplementation)m_ScriptingBackend.value == ScriptingImplementation.IL2CPP); }