public bool TryCreateAnalyzerForBackend <T>(T backend, out IAnalyzableBackendAnalyzer analyzer) where T : IAnalyzableBackend { if (!analyzers.ContainsKey(backend.GetType())) { analyzer = null; return(false); } var foundAnalyzers = analyzers[backend.GetType()]; Type analyzerType; if (foundAnalyzers.Count > 1) { if (preferredAnalyzer.ContainsKey(backend.GetType())) { analyzerType = preferredAnalyzer[backend.GetType()]; } else { analyzer = null; return(false); } } else { analyzerType = foundAnalyzers.First(); } analyzer = CreateAndAttach(analyzerType, backend); activeAnalyzers.Add(analyzer); return(true); }
public bool TryCreateAnalyzerForBackend <T>(T backend, out IAnalyzableBackendAnalyzer analyzer) where T : IAnalyzableBackend { Type analyzerType; var backendType = backend.GetType(); if (preferredAnalyzer.ContainsKey(backendType)) { analyzerType = preferredAnalyzer[backendType]; } else { List <Tuple <Type, bool> > foundAnalyzers; if (!analyzers.TryGetValue(backendType, out foundAnalyzers) || foundAnalyzers.Count(x => x.Item2) > 1) { analyzer = null; return(false); } analyzerType = foundAnalyzers.First(x => x.Item2).Item1; } analyzer = CreateAndAttach(analyzerType, backend); activeAnalyzers.Add(analyzer); return(true); }
public void HideAnalyser(IAnalyzableBackendAnalyzer analyzer) { var guiAnalyzer = analyzer as IHasWidget; if(guiAnalyzer == null) { throw new ArgumentException("Wrong analyzer provided, expected object of type 'IHasGUIWidget'"); } Window win; if(openedWindows.TryGetValue(analyzer, out win)) { win.Close(); openedWindows.Remove(analyzer); } }
public void HideAnalyser(IAnalyzableBackendAnalyzer analyzer) { var guiAnalyzer = analyzer as IHasWidget; if (guiAnalyzer == null) { throw new ArgumentException("Wrong analyzer provided, expected object of type 'IHasGUIWidget'"); } Window win; if (openedWindows.TryGetValue(analyzer, out win)) { win.Close(); openedWindows.Remove(analyzer); } }
public void ShowAnalyser(IAnalyzableBackendAnalyzer analyzer, string name) { var guiWidget = analyzer as IHasWidget; if(guiWidget == null) { throw new ArgumentException("Wrong analyzer provided, expected object of type 'IHasGUIWidget'"); } var window = new Window(); window.Title = name; window.Height = 600; window.Width = 800; window.Content = guiWidget.Widget; openedWindows.Add(analyzer, window); window.Closed += (sender, e) => openedWindows.Remove(analyzer); window.Show(); }
public bool TryCreateAnalyzerForBackend <T>(T backend, string id, out IAnalyzableBackendAnalyzer analyzer) where T : IAnalyzableBackend { if (!analyzers.ContainsKey(backend.GetType())) { analyzer = null; return(false); } var foundAnalyzers = analyzers[backend.GetType()]; foreach (var found in foundAnalyzers) { if (TryCreateAndAttach(found, backend, a => a.Id == id, out analyzer)) { activeAnalyzers.Add(analyzer); return(true); } } analyzer = null; return(false); }
public void ShowAnalyser(IAnalyzableBackendAnalyzer analyzer, string name) { var guiWidget = analyzer as IHasWidget; if (guiWidget == null) { throw new ArgumentException("Wrong analyzer provided, expected object of type 'IHasGUIWidget'"); } var window = new Window(); window.Title = name; window.Height = 600; window.Width = 800; window.Content = guiWidget.Widget; openedWindows.Add(analyzer, window); window.Closed += (sender, e) => openedWindows.Remove(analyzer); window.Show(); }
private bool TryCreateAndAttach(Type analyzerType, object backend, Func <IAnalyzableBackendAnalyzer, bool> condition, out IAnalyzableBackendAnalyzer analyzer) { dynamic danalyzer = Activator.CreateInstance(analyzerType); if (condition(danalyzer)) { danalyzer.AttachTo((dynamic)backend); analyzer = (IAnalyzableBackendAnalyzer)danalyzer; return(true); } analyzer = null; return(false); }
public bool TryCreateAnalyzerForBackend <T>(T backend, string analyzerTypeName, out IAnalyzableBackendAnalyzer analyzer) where T : IAnalyzableBackend { if (!analyzers.ContainsKey(backend.GetType())) { analyzer = null; return(false); } var foundAnalyzers = analyzers[backend.GetType()]; var analyzerType = foundAnalyzers.FirstOrDefault(x => x.Item1.FullName == analyzerTypeName).Item1; if (analyzerType != null) { analyzer = CreateAndAttach(analyzerType, backend); activeAnalyzers.Add(analyzer); return(true); } analyzer = null; return(false); }