Пример #1
0
        public void loadTemplateConnectionsForAllElements(String path = null)
        {
            if (path == null)
            {
                path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "TelmpalteAllUiElementsAsSymbol.xml");
            }
            if (!File.Exists(path))
            {
                Debug.WriteLine("Die XML exisitert nicht"); return;
            }
            XElement xmlDoc = XElement.Load(@path);
            //if (xmlDoc.Element("TemplateAllUiElements") == null) { return; } //TODO: hier gegen XSD validieren
            IEnumerable <XElement> uiElement = xmlDoc.Elements("UiConnection");

            if (uiElement == null || !uiElement.Any())
            {
                return;
            }
            foreach (XElement xmlElement in uiElement)
            {
                RendererUiElementConnector renderer = new RendererUiElementConnector();
                renderer.ControlType  = xmlElement.Element("ControllTypeFilteredUi").Value;
                renderer.RendererName = xmlElement.Element("RendererBraille").Value;
                renderer.SizeElement  = new RendererUiElementConnector.SizeUiElement(Int32.Parse(xmlElement.Element("Size").Element("Height").Value), Int32.Parse(xmlElement.Element("Size").Element("Width").Value));
                addRendererConnectionUnique(renderer);
            }
        }
Пример #2
0
        /// <summary>
        /// Adds all elements (of the subtree) as Sysmbols to the braille tree
        /// </summary>
        /// <param name="subtree">subtree to add as Symbols</param>
        /// <param name="lastRect">position of the last UI element which was added</param>
        /// <param name="idToIgnore">a list of all (ids of) elements which should NOT be added as symbol</param>
        public void addsAllElementsAsSymbols(object subtree, ref Rect lastRect, string[] idToIgnore = null)
        {
            ATemplateUi generalUiInstance = new TemplateNode(strategyMgr, grantTrees, treeOperation);
            RendererUiElementConnector defaultRendererUiConnector = new RendererUiElementConnector("Text", "Text", new RendererUiElementConnector.SizeUiElement(5, 21));

            foreach (Object node in strategyMgr.getSpecifiedTree().DirectChildrenNodes(subtree))
            {
                /* Prüfen, ob der Knoten Ignoriert werden soll
                 *    nicht ignorieren -> Kinder
                 * nur Kinder Zeichnen -> ControllType der Eltern beachten --> evtl. werden mehrere Kinder mit einmal dargestellt
                 */
                OSMElements.OSMElement osmNode = strategyMgr.getSpecifiedTree().GetData(node);
                if (idToIgnore == null || !idToIgnore.Contains(osmNode.properties.IdGenerated))
                {
                    RendererUiElementConnector connector = rendererUiElementConnectorContainsControltype(osmNode.properties.controlTypeFiltered);
                    if (connector == null && strategyMgr.getSpecifiedTree().HasChild(node))
                    {
                        //consider the children
                        addsAllElementsAsSymbols(node, ref lastRect, idToIgnore);
                    }
                    else
                    {
                        if (connector == null)
                        {
                            connector = defaultRendererUiConnector;
                        }
                        //TODO: use a diffenent template for every element type?
                        generalUiInstance.createUiElementFromTemplate(node, createTemplateObjectFromNode(node, connector, ref lastRect));//new type of view
                    }
                }
            }
        }
Пример #3
0
 /// <summary>
 /// Fügt den Renderer hinzu, falls für den ControllType schon ein Renderer existiert wird dieser gelöscht
 /// </summary>
 /// <param name="renderer"></param>
 public void addRendererConnectionUnique(RendererUiElementConnector renderer)
 {
     if (grandTrees.rendererUiElementConnection != null)
     {
         foreach (RendererUiElementConnector r in grandTrees.rendererUiElementConnection)
         {
             if (r.ControlType.Equals(renderer.ControlType))
             {
                 grandTrees.rendererUiElementConnection.Remove(r);
                 break;
             }
         }
         grandTrees.rendererUiElementConnection.Add(renderer);
     }
     else
     {
         List <RendererUiElementConnector> list = new List <RendererUiElementConnector>();
         list.Add(renderer);
         grandTrees.rendererUiElementConnection = list;
     }
 }
Пример #4
0
        private TemplateUiObject createTemplateObjectFromNode(Object nodeFiltered, RendererUiElementConnector connector, ref Rect rectLast, String screenName = null)
        {//TODO: a lot of assigned of variables are hard coded and only so because of testing
            OSMElements.OSMElement osmNodeFiltered = strategyMgr.getSpecifiedTree().GetData(nodeFiltered);
            TemplateUiObject       templObject     = new TemplateUiObject();
            List <String>          screens         = new List <string>();

            screens.Add(screenName == null ? "neuerScreen" : screenName);
            templObject.Screens  = screens;
            templObject.viewName = osmNodeFiltered.properties.IdGenerated;
            templObject.osm      = new OSMElements.OSMElement();
            //Attention: currently all elements are below the other
            rectLast.X      = 0;
            rectLast.Y      = rectLast.Height == 0 ? 0 : rectLast.Y + rectLast.Height + 1;
            rectLast.Height = connector.SizeElement.Height;
            rectLast.Width  = connector.SizeElement.Width;
            templObject.osm.properties.boundingRectangleFiltered = rectLast;
            templObject.osm.properties.controlTypeFiltered       = connector.RendererName;

            templObject.osm.brailleRepresentation.displayedGuiElementType = osmNodeFiltered.properties.nameFiltered != null ? "nameFiltered" : "valueFiltered";
            templObject.osm.brailleRepresentation.typeOfView = "blub";
            return(templObject);
        }