コード例 #1
0
        public string ConvertMockupToXaml(MockupControl control)
        {
            var code = string.Empty;

            code = Utility.PerformReplacements(Template.Template, control);

            try
            {
                // Add attributes for the mockup control properties
                var tag = XElement.Parse(code);

                if (control.ControlProperties.ContainsKey("text"))
                {
                    string textValue = control.ControlProperties["text"];
                    if (!string.IsNullOrEmpty(textValue))
                    {
                        textValue = Uri.UnescapeDataString(textValue);
                        var listItems = new List <string>(textValue.Split('\n'));
                        foreach (var listItem in listItems)
                        {
                            // Add the listItem to the listbox control.
                            var xListItem = new XElement("ComboBoxItem");
                            xListItem.SetAttributeValue("Content", listItem);
                            tag.Add(xListItem);
                        }
                    }
                }

                return(tag.ToString());
            }
            catch
            {
                return(code);
            }
        }
コード例 #2
0
        public string ConvertMockupToXaml(MockupControl control)
        {
            var code = string.Empty;

            code = Utility.PerformReplacements(Template.Template, control);

            try
            {
                // Add attributes for the mockup control properties
                var tag = XElement.Parse(code);
                return(tag.ToString());
            }
            catch
            {
                return(code);
            }
        }
コード例 #3
0
ファイル: DataGrid.cs プロジェクト: aydjay/MockupToXaml
        public string ConvertMockupToXaml(MockupControl control)
        {
            var code = string.Empty;


            try
            {
                if (control.ControlProperties.ContainsKey("text"))
                {
                    string textValue = control.ControlProperties["text"];
                    if (!string.IsNullOrEmpty(textValue))
                    {
                        textValue = Uri.UnescapeDataString(textValue);
                        createFauxData(textValue);
                    }
                }

                code = Utility.PerformReplacements(Template.Template, control);

                // Add attributes for the mockup control properties
                var tag = XElement.Parse(code);

                // Check to see if this tag needs a namespace prefix.
                if (Template.Namespace.Contains("xmlns:"))
                {
                    if (Template.Namespace.Contains("="))
                    {
                        var eqOffset = Template.Namespace.IndexOf('=');
                        var prefix   = Template.Namespace.Substring(0, eqOffset).Replace("xmlns:", "");

                        var tagXml = tag.ToString();

                        tagXml = tagXml.Replace("<", string.Format("<{0}:", prefix));
                        // correct the ending tags.. as the previous line hoarks them up.
                        tagXml = tagXml.Replace(string.Format("<{0}:/", prefix), string.Format("</{0}:", prefix));
                        return(tagXml);
                    }
                }

                return(tag.ToString());
            }
            catch
            {
                return(code);
            }
        }
コード例 #4
0
ファイル: CheckBox.cs プロジェクト: aydjay/MockupToXaml
        public string ConvertMockupToXaml(MockupControl control)
        {
            var code = string.Empty;

            code = Utility.PerformReplacements(Template.Template, control);

            try
            {
                // Add attributes for the mockup control properties
                var tag = XElement.Parse(code);
                Utility.ProcessProperty(tag, "Content", "text", control);

                if (control.ControlProperties.ContainsKey("state"))
                {
                    CheckBoxStateEnum result;
                    Enum.TryParse(control.ControlProperties["state"], true, out result);

                    switch (result)
                    {
                    case CheckBoxStateEnum.Selected:
                        tag.SetAttributeValue("IsChecked", true);
                        break;

                    case CheckBoxStateEnum.Disabled:
                        tag.SetAttributeValue("IsEnabled", false);
                        break;

                    case CheckBoxStateEnum.DisabledSelected:
                        tag.SetAttributeValue("IsEnabled", false);
                        tag.SetAttributeValue("IsChecked", true);
                        break;

                    default:
                        tag.SetAttributeValue("Content", "Unsupported Checkbox State");
                        break;
                    }
                }

                return(tag.ToString());
            }
            catch
            {
                return(code);
            }
        }
コード例 #5
0
        private string getXaml(MockupControl control)
        {
            var    templateName = control.ControlTypeId.Replace(':', '_');
            string templateFilename;

            var uri         = new Uri(Assembly.GetEntryAssembly().CodeBase);
            var exeBasePath = Path.GetDirectoryName(uri.LocalPath);

            if (File.Exists(string.Format("{1}\\Templates\\{0}.xml", templateName, exeBasePath)))
            {
                templateFilename = string.Format("{1}\\Templates\\{0}.xml", templateName, exeBasePath);
            }
            else
            {
                templateFilename = exeBasePath + "\\Templates\\unknown.xml";
            }

            var template = MockupTemplate.LoadFromXML(templateFilename);


            var converterAssembly = Assembly.LoadFile(Path.Combine(exeBasePath, "MockupToXaml.Converters.dll"));
            var converter         = (IMockupControlConverter)converterAssembly.CreateInstance(template.ConverterClassName);

            converter.Template = template;

            var code = converter.ConvertMockupToXaml(control);

            if (!NamespaceHeader.Contains(converter.Template.Namespace))
            {
                NamespaceHeader += converter.Template.Namespace + "\r\n";
            }

            if (!string.IsNullOrEmpty(converter.Template.Resource))
            {
                ResourceHeader += converter.Template.Resource + "\r\n";
            }

            return(code);
        }