Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
 }
Beispiel #6
0
        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();
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }