Пример #1
0
        private void createScreenshotViews(string pathToTemplate)
        {
            XElement xmlDoc = XElement.Load(@pathToTemplate);

            if (xmlDoc.Element(VIEWCATEGORY_LAYOUTVIEW) == null)
            {
                return;
            }
            IEnumerable <XElement> uiElement =
                from el in xmlDoc.Element(VIEWCATEGORY_LAYOUTVIEW).Elements("Screenshot")
                select el;

            if (uiElement == null || !uiElement.Any())
            {
                return;
            }
            ATemplateUi generalUiInstance = new TemplateNode(strategyMgr, grantTrees, treeOperation);

            foreach (XElement element in uiElement)
            {
                TemplateScreenshotObject templateObject = xmlUiScreenshotToTemplateUiScreenshot(element);
                GeneralProperties        prop           = new GeneralProperties();
                prop.controlTypeFiltered = templateObject.connectedFilteredNodeControltype;
                List <Object> nodes = treeOperation.searchNodes.getNodesByProperties(grantTrees.filteredTree, prop);

                generalUiInstance.createUiScreenshotFromTemplate(templateObject, nodes);
            }
        }
Пример #2
0
        private TemplateUiObject CastScreenshotObject(TemplateScreenshotObject screenshotObject)
        {
            TemplateUiObject castedSO = new TemplateUiObject();

            castedSO.viewName = screenshotObject.viewName;
            castedSO.Screens  = screenshotObject.Screens;
            castedSO.osm      = screenshotObject.osm;

            return(castedSO);
        }
Пример #3
0
        /// <summary>
        /// Erstellt ausgehend von einem Template einen Knoten im Braille-Baum sowie dessen Beziehung
        /// </summary>
        /// <param name="screenshotObject">gibt die Eigenschaften für den Screenshot-Knoten an</param>
        /// <param name="nodes">gibt eine Liste aller Knoten des gefilterten Baums an von denen der Screenshot erstellt werden soll</param>
        public void createUiScreenshotFromTemplate(TemplateScreenshotObject screenshotObject, List <Object> nodes)
        {
            List <String> viewCategories = Settings.getPossibleTypesOfViews();

            if (viewCategories == null || viewCategories.Count > 2)
            {
                throw new Exception("Die ViewCategorien wurden in den Settings nicht (ausreichend) angegeben!");
            }
            //TODO: verschiedene Screens beachten
            //TODO: Baumbeziehung setzen
            foreach (Object node in nodes)
            {
                // viewCategories[1] = LayoutView
                createUiElementFromTemplate(node, CastScreenshotObject(screenshotObject));
            }
        }
Пример #4
0
        /// <summary>
        /// Converts a <see cref="XElement"/> of a screenshot to a <see cref="TemplateScreenshotObject"/>
        /// </summary>
        /// <param name="xmlElement">a <see cref="XElement"/> from the template file (XML)</param>
        /// <returns>the TemplateScreenshotObject</returns>
        private TemplateScreenshotObject xmlUiScreenshotToTemplateUiScreenshot(XElement xmlElement)
        {
            TemplateScreenshotObject templetObject = new TemplateScreenshotObject();
            Int32 result;

            result            = 0;
            templetObject.osm = new OSMElements.OSMElement();
            templetObject.osm.properties.controlTypeFiltered = "Screenshot";
            XElement position        = xmlElement.Element("Position");
            bool     isConvertHeight = Int32.TryParse(position.Element("Height").Value, out result);
            Rect     rect            = new Rect();

            rect.Height = isConvertHeight ? result : strategyMgr.getSpecifiedDisplayStrategy().getActiveDevice().height;
            bool isConvertWidth = Int32.TryParse(position.Element("Width").Value, out result);

            rect.Width = isConvertWidth ? result : strategyMgr.getSpecifiedDisplayStrategy().getActiveDevice().width;
            bool isConvert = Int32.TryParse(position.Element("StartX").Value, out result);

            rect.X    = isConvert ? result : (strategyMgr.getSpecifiedDisplayStrategy().getActiveDevice().width - rect.Width);
            isConvert = Int32.TryParse(position.Element("StartY").Value, out result);
            rect.Y    = isConvert ? result : (strategyMgr.getSpecifiedDisplayStrategy().getActiveDevice().height - rect.Height);
            if (!isConvertHeight)
            {
                rect.Height -= rect.Y;
            }
            if (!isConvertWidth)
            {
                rect.Width -= rect.X;
            }
            templetObject.osm.properties.boundingRectangleFiltered = rect;

            if (!xmlElement.Element("Screens").IsEmpty)
            {
                XElement screens = xmlElement.Element("Screens");
                templetObject.Screens = new List <string>();
                foreach (XElement s in screens.Elements("Screen"))
                {
                    templetObject.Screens.Add(s.Value);
                }
            }
            if (!xmlElement.Element("ConnectedFilteredNode").IsEmpty)
            {
                templetObject.connectedFilteredNodeControltype = xmlElement.Element("ConnectedFilteredNode").Value;
            }
            Double zoom = 0;

            if (!xmlElement.Element("Zoom").IsEmpty)
            {
                try
                {
                    Double resultZoom = XmlConvert.ToDouble(xmlElement.Element("Zoom").Value);
                    zoom = resultZoom < 0 ? 0 : (resultZoom > 3 ? 3 : resultZoom);
                }
                catch (ArgumentNullException e) { Debug.WriteLine("Exception at casting the zoom value: {0}", e); }
                catch (FormatException e) { Debug.WriteLine("Exception at casting the zoom value: {0}", e); }
                catch (OverflowException e) { Debug.WriteLine("Exception at casting the zoom value: {0}}", e); }
            }
            templetObject.osm.brailleRepresentation.zoom = zoom;
            int contrast = 0;

            if (!xmlElement.Element("Contrast").IsEmpty)
            {
                int resultcontrast;
                if (Int32.TryParse(xmlElement.Element("Contrast").Value, out resultcontrast))
                {
                    contrast = resultcontrast < 0 ? 0 : (resultcontrast > 255 ? 255 : resultcontrast);
                }
            }
            templetObject.osm.brailleRepresentation.contrast   = contrast;
            templetObject.osm.brailleRepresentation.typeOfView = VIEWCATEGORY_LAYOUTVIEW;
            //   braille.isScrollbarShow = Convert.ToBoolean(xmlElement.Element("ShowScrollbar").Value);
            templetObject.
            viewName = templetObject.Screens != null ? templetObject.Screens[0] : "all";     //TODO: besserer Name

            return(templetObject);
        }