예제 #1
0
        public GUIInspector()
        {
            InitializeComponent();

            settings       = new Settings();
            strategyMgr    = new StrategyManager();
            grantTrees     = new GeneratedGrantTrees();
            treeOperations = new TreeOperation(strategyMgr, grantTrees);

            // Setzen des Eventmanager
            List <Strategy> possibleEventManager = settings.getPossibleEventManager();

            strategyMgr.setSpecifiedEventStrategy(possibleEventManager[0].className);
            List <Strategy> possibleOperationSystems = settings.getPossibleOperationSystems();
            String          cUserOperationSystemName = possibleOperationSystems[0].userName; // muss dynamisch ermittelt werden

            strategyMgr.setSpecifiedOperationSystem(Settings.strategyUserNameToClassName(cUserOperationSystemName));
            IOperationSystemStrategy operationSystemStrategy = strategyMgr.getSpecifiedOperationSystem();
            List <Strategy>          possibleTrees           = settings.getPossibleTrees();

            strategyMgr.setSpecifiedTree(possibleTrees[0].className);
            ITreeStrategy <OSMElements.OSMElement> treeStrategy = strategyMgr.getSpecifiedTree();
            List <Strategy> possibleFilter  = Settings.getPossibleFilters();
            String          cUserFilterName = possibleFilter[0].userName; // der Filter muss dynamisch ermittelt werden

            strategyMgr.setSpecifiedFilter(Settings.strategyUserNameToClassName(cUserFilterName));
            strategyMgr.getSpecifiedFilter().setGeneratedGrantTrees(grantTrees);
            strategyMgr.getSpecifiedFilter().setTreeOperation(treeOperations);
            IFilterStrategy filterStrategy = strategyMgr.getSpecifiedFilter();

            strategyMgr.setSpecifiedGeneralTemplateUi(settings.getPossibleUiTemplateStrategies()[0].className);
            strategyMgr.getSpecifiedGeneralTemplateUi().setGeneratedGrantTrees(grantTrees);
            strategyMgr.getSpecifiedGeneralTemplateUi().setTreeOperation(treeOperations);
            strategyMgr.setSpecifiedBrailleDisplay(settings.getPossibleBrailleDisplays()[0].className); // muss dynamisch ermittelt werden

            #region setzen der neuen (Juni 2017) Event Interfaces
            strategyMgr.setSpecifiedEventAction(settings.getPossibleEventAction()[0].className);
            strategyMgr.getSpecifiedEventAction().setGrantTrees(grantTrees);
            strategyMgr.getSpecifiedEventAction().setTreeOperation(treeOperations);
            strategyMgr.setSpecifiedEventManager(settings.getPossibleEventManager2()[0].className);
            strategyMgr.setSpecifiedEventProcessor(settings.getPossibleEventProcessor()[0].className);
            strategyMgr.getSpecifiedEventProcessor().setGrantTrees(grantTrees);
            strategyMgr.getSpecifiedEventProcessor().setTreeOperations(treeOperations);
            #endregion


            strategyMgr.setSpecifiedExternalScreenreader(settings.getPossibleExternalScreenreaders()[0].className);
            strategyMgr.setSpecifiedBrailleConverter(settings.getPossibleBrailleConverter()[0].className);

            filteredTreeOutput.SelectedItemChanged += new RoutedPropertyChangedEventHandler <object>(filteredTreeOutput_SelectedItemChanged);
            guiFunctions         = new GuiFunctions(strategyMgr, grantTrees, treeOperations);
            root                 = new TreeViewItem();
            NodeButton.IsEnabled = false;
            SaveButton.IsEnabled = false;
            filteredPropRoot     = new GuiFunctions.MyViewModel();
        }
예제 #2
0
 /// <summary>
 /// Setzt die gewählte Betriebssystemklasse/-methoden (Windows, ...)
 /// </summary>
 /// <param name="operationSystemClassName">gibt den Namen der gewählten Betriebssystem-Klasse an (dieser muss in der Strategy.config vorhanden sein)</param>
 public void setSpecifiedOperationSystem(String operationSystemClassName)
 {
     try
     {
         Type type = Type.GetType(operationSystemClassName);
         specifiedOperationSystem = (IOperationSystemStrategy)Activator.CreateInstance(type, this);
     }
     catch (InvalidCastException ic)
     {
         throw new InvalidCastException("Fehler bei StrategyManager_setSpecifiedOperationSystem: " + ic.Message);
     }
     catch (ArgumentException ae)
     {
         throw new ArgumentException("Fehler bei StrategyManager_setSpecifiedOperationSystem: " + ae.Message);
     }
     catch (Exception e)
     {
         throw new Exception("Fehler bei StrategyManager_setSpecifiedOperationSystem: " + e.Message);
     }
 }
예제 #3
0
        private void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            IOperationSystemStrategy operationSystemStrategy = strategyMgr.getSpecifiedOperationSystem();

            ITreeStrategy <OSMElements.OSMElement> treeStrategy = strategyMgr.getSpecifiedTree();

            if (e.Key == Key.F1)
            {
                if (operationSystemStrategy.deliverCursorPosition())
                {
                    try
                    {
                        IFilterStrategy filterStrategy = strategyMgr.getSpecifiedFilter();
                        int             pointX;
                        int             pointY;
                        operationSystemStrategy.getCursorPoint(out pointX, out pointY);
                        Console.WriteLine("Pointx: " + pointX);
                        Console.WriteLine("Pointy: " + pointY);
                        OSMElements.OSMElement   osmElement = filterStrategy.getOSMElement(pointX, pointY);
                        System.Drawing.Rectangle rect       = operationSystemStrategy.getRect(osmElement);
                        if (osmElement.properties.isOffscreenFiltered == false)
                        {
                            operationSystemStrategy.paintRect(rect);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("An error occurred: '{0}'", ex);
                    }
                }
            }

            if (e.Key == Key.F5)
            {
                if (operationSystemStrategy.deliverCursorPosition())
                {
                    try
                    {
                        //Filtermethode
                        IntPtr          points         = operationSystemStrategy.getHWNDByCursorPosition();
                        List <Strategy> possibleFilter = Settings.getPossibleFilters();
                        if (strategyMgr.getSpecifiedFilter() == null)
                        {
                            // auslesen aus GUI.....
                            String cUserFilterName = possibleFilter[0].userName; // der Filter muss dynamisch ermittelt werden
                            strategyMgr.setSpecifiedFilter(Settings.strategyUserNameToClassName(cUserFilterName));
                            strategyMgr.getSpecifiedFilter().setGeneratedGrantTrees(grantTrees);
                            strategyMgr.getSpecifiedFilter().setTreeOperation(treeOperations);
                        }
                        guiFunctions.deleteGrantTrees();
                        IFilterStrategy filterStrategy = strategyMgr.getSpecifiedFilter();
                        Object          tree           = filterStrategy.filtering(operationSystemStrategy.getProcessHwndFromHwnd(filterStrategy.deliverElementID(points)));
                        grantTrees.filteredTree = tree;
                        filteredTreeOutput.Items.Clear();
                        root.Items.Clear();
                        root.Header = "Filtered - Tree";
                        guiFunctions.createTreeForOutput(tree, ref root);
                        SaveButton.IsEnabled = true;
                        filteredTreeOutput.Items.Add(root);
                        NodeButton.IsEnabled = false;

                        /* updatePropertiesTable(strategyMgr.getSpecifiedTree().GetData(strategyMgr.getSpecifiedTree().Child(tree)).properties.IdGenerated);
                         * ((TreeViewItem)filteredTreeOutput.Items[0]).IsSelected = true;
                         * ((TreeViewItem)filteredTreeOutput.Items[0]).IsExpanded = true;*/
                        GuiFunctions.clearTable(filteredTreeProp);
                    }

                    catch (Exception ex)
                    {
                        Console.WriteLine("An error occurred: '{0}'", ex);
                    }
                }
            }
        }