protected override DisplayControl UIConfig(UIElement config, UIElement element)
        {
            if (element["@class"] != "caLineEdit")
            {
                return(null);
            }

            TextMonitorDisplay result = new TextMonitorDisplay
            {
                ChannelName = element["property?name=channel"]["string"],
                X           = element["property?name=geometry"]["rect"]["x"],
                Y           = element["property?name=geometry"]["rect"]["y"],
                Width       = element["property?name=geometry"]["rect"]["width"],
                Height      = element["property?name=geometry"]["rect"]["height"],
                Align       = "left",
                Precision   = -1,
                Exponential = false,
                ColorMode   = ColorMode.STATIC
            };

            if ((((string)element["property?name=alignement"]) ?? "").Contains("AlignRight"))
            {
                result.Align = "right";
            }
            else if ((((string)element["property?name=alignement"]) ?? "").Contains("AlignCenter"))
            {
                result.Align = "center";
            }

            if (element["property?name=foreground"] != null)
            {
                result.Color = element["property?name=foreground"]["color"].ToColor();
            }
            if (element["property?name=background"] != null)
            {
                result.BackgroundColor = element["property?name=background"]["color"].ToColor();
            }

            if (element["property?name=precision"] != null)
            {
                result.Precision = element["property?name=precision"]["number"];
            }

            if (element["property?name=formatType"] != null && (string)element["property?name=formatType"]["enum"] == "exponential")
            {
                result.Exponential = true;
            }
            if (element["property?name=colorMode"] != null && ((string)element["property?name=colorMode"]["enum"]).Contains("Alarm"))
            {
                result.ColorMode = Components.ColorMode.ALARM;
            }

            if (element["property?name=formatType"] != null && ((string)element["property?name=formatType"]).Contains("exponential"))
            {
                result.Exponential = true;
            }

            return(result);
        }
        protected override DisplayControl ADLConfig(ADLConfig config, ADLElement element)
        {
            if (element.Name != "text update")
            {
                return(null);
            }
            TextMonitorDisplay result = new TextMonitorDisplay
            {
                ChannelName = element["monitor"]["chan"],
                X           = element["object"]["x"],
                Y           = element["object"]["y"],
                Width       = element["object"]["width"],
                Height      = element["object"]["height"],
                Align       = "left",
                Precision   = -1,
                Exponential = false,
                ColorMode   = ColorMode.STATIC
            };

            if (element["align"] != null)
            {
                if (element["align"].Value.Contains("right"))
                {
                    result.Align = "right";
                }
                else if (element["align"].Value.Contains("centered"))
                {
                    result.Align = "center";
                }
            }

            if (element["limits"] != null && element["limits"]["precDefault"] != null)
            {
                result.Precision = element["limits"]["precDefault"];
            }
            if (element["format"] != null && element["format"].Value == "exponential")
            {
                result.Exponential = true;
            }
            if (element["monitor"] != null && element["monitor"]["clr"] != null)
            {
                result.Color = "#" + config["color map"]["colors"].Childs[int.Parse(element["monitor"]["clr"].Value)].Value;
            }
            if (element["monitor"] != null && element["monitor"]["bclr"] != null)
            {
                result.BackgroundColor = "#" + config["color map"]["colors"].Childs[int.Parse(element["monitor"]["bclr"].Value)].Value;
            }

            if (element["clrmod"] != null && element["clrmod"].Value == "alarm")
            {
                result.ColorMode = ColorMode.ALARM;
            }

            return(result);
        }