/// <include file='doc\DesignTimeTemplateParser.uex' path='docs/doc[@for="DesignTimeTemplateParser.ParseControl"]/*' />
        public static Control ParseControl(DesignTimeParseData data)
        {
            // DesignTimeTemplateParser is only meant for use within the designer
            InternalSecurityPermissions.UnmanagedCode.Demand();

            TemplateParser parser = new PageParser();

            parser.FInDesigner  = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;

            parser.Parse();

            ArrayList subBuilders = parser.RootBuilder.SubBuilders;

            if (subBuilders != null)
            {
                // Look for the first control builder
                IEnumerator en = subBuilders.GetEnumerator();

                for (int i = 0; en.MoveNext(); i++)
                {
                    object cur = en.Current;
                    if ((cur is ControlBuilder) && !(cur is CodeBlockBuilder))
                    {
                        // Instantiate the control
                        return((Control)((ControlBuilder)cur).BuildObject());
                    }
                }
            }

            return(null);
        }
        public static ITemplate ParseTemplate(DesignTimeParseData data)
        {
            TemplateParser NewParser = InitParser(data);

            NewParser.RootBuilder.Text = data.ParseText;
            return(NewParser.RootBuilder);
        }
        private static Control[] ParseControlsInternalHelper(DesignTimeParseData data, bool returnFirst)
        {
            TemplateParser parser = new PageParser {
                FInDesigner  = true,
                DesignerHost = data.DesignerHost,
                DesignTimeDataBindHandler = data.DataBindingHandler,
                Text = data.ParseText
            };

            parser.Parse();
            ArrayList list        = new ArrayList();
            ArrayList subBuilders = parser.RootBuilder.SubBuilders;

            if (subBuilders != null)
            {
                IEnumerator enumerator = subBuilders.GetEnumerator();
                for (int i = 0; enumerator.MoveNext(); i++)
                {
                    object current = enumerator.Current;
                    if ((current is ControlBuilder) && !(current is CodeBlockBuilder))
                    {
                        ControlBuilder   builder         = (ControlBuilder)current;
                        IServiceProvider serviceProvider = null;
                        if (data.DesignerHost != null)
                        {
                            serviceProvider = data.DesignerHost;
                        }
                        else
                        {
                            ServiceContainer container = new ServiceContainer();
                            container.AddService(typeof(IFilterResolutionService), new SimpleDesignTimeFilterResolutionService(data.Filter));
                            serviceProvider = container;
                        }
                        builder.SetServiceProvider(serviceProvider);
                        try
                        {
                            Control control = (Control)builder.BuildObject(data.ShouldApplyTheme);
                            list.Add(control);
                        }
                        finally
                        {
                            builder.SetServiceProvider(null);
                        }
                        if (!returnFirst)
                        {
                            continue;
                        }
                        break;
                    }
                    if (!returnFirst && (current is string))
                    {
                        LiteralControl control2 = new LiteralControl(current.ToString());
                        list.Add(control2);
                    }
                }
            }
            data.SetUserControlRegisterEntries(parser.UserControlRegisterEntries, parser.TagRegisterEntries);
            return((Control[])list.ToArray(typeof(Control)));
        }
Example #4
0
		public void Ctor3_Deny_Unrestricted ()
		{
			DesignTimeParseData dtpd = new DesignTimeParseData (null, "parseText", "filter");
			Assert.AreEqual ("filter", dtpd.Filter, "Filter");
			dtpd.ShouldApplyTheme = true;
			Assert.IsTrue (dtpd.ShouldApplyTheme, "ShouldApplyTheme");
			Assert.IsNull (dtpd.UserControlRegisterEntries, "UserControlRegisterEntries");
		}
 public static Control ParseControl(DesignTimeParseData data)
 {
     Control[] controlArray = ParseControlsInternal(data, true);
     if (controlArray.Length > 0)
     {
         return(controlArray[0]);
     }
     return(null);
 }
        public static Control ParseControl(DesignTimeParseData data) {
            Control[] parsedControls = ParseControlsInternal(data, true);

            if (parsedControls.Length > 0) {
                return parsedControls[0];
            }

            return null;
        }
Example #7
0
		public void Ctor2_Deny_Unrestricted ()
		{
			DesignTimeParseData dtpd = new DesignTimeParseData (null, "parseText");
			dtpd.DataBindingHandler = new EventHandler (Handler);
			Assert.IsNotNull (dtpd.DataBindingHandler, "DataBindingHandler");
			Assert.IsNull (dtpd.DesignerHost, "DesignerHost");
			dtpd.DocumentUrl = String.Empty;
			Assert.AreEqual (String.Empty, dtpd.DocumentUrl, "DocumentUrl");
			Assert.AreEqual ("parseText", dtpd.ParseText, "ParseText");
		}
		public static Control ParseControl (DesignTimeParseData data)
		{
			TemplateParser NewParser = InitParser (data);
			NewParser.RootBuilder.Text = data.ParseText;
			if (NewParser.RootBuilder.Children == null)
				return null;
			foreach (ControlBuilder builder in NewParser.RootBuilder.Children)
				return (Control) builder.CreateInstance ();
			return null;
		}
		private static TemplateParser InitParser (DesignTimeParseData data)
		{
			// TODO create the parser and set data
			TemplateParser NewParser = new PageParser(); // see FIXME in PageParser
			// = data.DesignerHost;
			// = data.DataBindingHandler;
			// = data.ParseText;
			// Parse data
			return NewParser;
		}
        public static Control ParseControl(DesignTimeParseData data)
        {
            Control[] parsedControls = ParseControlsInternal(data, true);

            if (parsedControls.Length > 0)
            {
                return(parsedControls[0]);
            }

            return(null);
        }
Example #11
0
        static TemplateParser InitParser(DesignTimeParseData data)
        {
            // TODO create the parser and set data
            TemplateParser NewParser = new PageParser();             // see FIXME in PageParser

            // = data.DesignerHost;
            // = data.DataBindingHandler;
            // = data.ParseText;
            // Parse data
            return(NewParser);
        }
 internal static Control[] ParseControlsInternal(DesignTimeParseData data, bool returnFirst) {
     try {
         // Make the DesignerHost available only for the duration for this call
         if (data.DesignerHost != null) {
             TargetFrameworkUtil.DesignerHost = data.DesignerHost;
         }
         return ParseControlsInternalHelper(data, returnFirst);
     } finally {
         // Remove reference to the DesignerHost so that it cannot be used outside
         // of this call.
         TargetFrameworkUtil.DesignerHost = null;
     }
 }
        public static ITemplate ParseTemplate(DesignTimeParseData data)
        {
            TemplateParser parser = new PageParser {
                FInDesigner  = true,
                DesignerHost = data.DesignerHost,
                DesignTimeDataBindHandler = data.DataBindingHandler,
                Text = data.ParseText
            };

            parser.Parse();
            parser.RootBuilder.Text = data.ParseText;
            parser.RootBuilder.SetDesignerHost(data.DesignerHost);
            return(parser.RootBuilder);
        }
Example #14
0
        public static Control ParseControl(DesignTimeParseData data)
        {
            TemplateParser NewParser = InitParser(data);

            NewParser.RootBuilder.Text = data.ParseText;
            if (NewParser.RootBuilder.Children == null)
            {
                return(null);
            }
            foreach (ControlBuilder builder in NewParser.RootBuilder.Children)
            {
                return((Control)builder.CreateInstance());
            }
            return(null);
        }
 internal static Control[] ParseControlsInternal(DesignTimeParseData data, bool returnFirst)
 {
     try {
         // Make the DesignerHost available only for the duration for this call
         if (data.DesignerHost != null)
         {
             TargetFrameworkUtil.DesignerHost = data.DesignerHost;
         }
         return(ParseControlsInternalHelper(data, returnFirst));
     } finally {
         // Remove reference to the DesignerHost so that it cannot be used outside
         // of this call.
         TargetFrameworkUtil.DesignerHost = null;
     }
 }
        public static ITemplate ParseTemplate(DesignTimeParseData data)
        {
            TemplateParser parser = new PageParser();

            parser.FInDesigner  = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;
            parser.Parse();

            // Set the Text property of the TemplateBuilder to the input text
            parser.RootBuilder.Text = data.ParseText;
            parser.RootBuilder.SetDesignerHost(data.DesignerHost);
            return(parser.RootBuilder);
        }
 internal static Control[] ParseControlsInternal(DesignTimeParseData data, bool returnFirst)
 {
     Control[] controlArray;
     try
     {
         if (data.DesignerHost != null)
         {
             TargetFrameworkUtil.DesignerHost = data.DesignerHost;
         }
         controlArray = ParseControlsInternalHelper(data, returnFirst);
     }
     finally
     {
         TargetFrameworkUtil.DesignerHost = null;
     }
     return(controlArray);
 }
 public static ITemplate DeserializeTemplate(string text, IDesignerHost host)
 {
     if (host == null)
     {
         throw new ArgumentNullException("host");
     }
     if ((text == null) || (text.Length == 0))
     {
         return null;
     }
     string parseText = text;
     string directives = GetDirectives(host);
     if ((directives != null) && (directives.Length > 0))
     {
         parseText = directives + text;
     }
     DesignTimeParseData data = new DesignTimeParseData(host, parseText) {
         DataBindingHandler = GlobalDataBindingHandler.Handler
     };
     ITemplate template = null;
     lock (typeof(LicenseManager))
     {
         LicenseContext currentContext = LicenseManager.CurrentContext;
         try
         {
             LicenseManager.CurrentContext = new WebFormsDesigntimeLicenseContext(host);
             LicenseManager.LockContext(licenseManagerLock);
             template = DesignTimeTemplateParser.ParseTemplate(data);
         }
         catch (TargetInvocationException exception)
         {
             throw exception.InnerException;
         }
         finally
         {
             LicenseManager.UnlockContext(licenseManagerLock);
             LicenseManager.CurrentContext = currentContext;
         }
     }
     if ((template != null) && (template is TemplateBuilder))
     {
         ((TemplateBuilder) template).Text = text;
     }
     return template;
 }
        /// <include file='doc\DesignTimeTemplateParser.uex' path='docs/doc[@for="DesignTimeTemplateParser.ParseTemplate"]/*' />
        public static ITemplate ParseTemplate(DesignTimeParseData data)
        {
            // DesignTimeTemplateParser is only meant for use within the designer
            InternalSecurityPermissions.UnmanagedCode.Demand();

            TemplateParser parser = new PageParser();

            parser.FInDesigner  = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;

            parser.Parse();

            // Set the Text property of the TemplateBuilder to the input text
            parser.RootBuilder.Text = data.ParseText;

            return(parser.RootBuilder);
        }
 public static Control[] ParseControls(DesignTimeParseData data)
 {
     return(ParseControlsInternal(data, false));
 }
        public static ITemplate ParseTemplate(DesignTimeParseData data) {
            TemplateParser parser = new PageParser();

            parser.FInDesigner = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;
            parser.Parse();

            // Set the Text property of the TemplateBuilder to the input text
            parser.RootBuilder.Text = data.ParseText;
            parser.RootBuilder.SetDesignerHost(data.DesignerHost);
            return parser.RootBuilder;
        }
 internal static Control DeserializeControlInternal(string text, IDesignerHost host, bool applyTheme)
 {
     if (host == null)
     {
         throw new ArgumentNullException("host");
     }
     if ((text == null) || (text.Length == 0))
     {
         throw new ArgumentNullException("text");
     }
     string directives = GetDirectives(host);
     if ((directives != null) && (directives.Length > 0))
     {
         text = directives + text;
     }
     DesignTimeParseData data = new DesignTimeParseData(host, text, GetCurrentFilter(host)) {
         ShouldApplyTheme = applyTheme,
         DataBindingHandler = GlobalDataBindingHandler.Handler
     };
     Control control = null;
     lock (typeof(LicenseManager))
     {
         LicenseContext currentContext = LicenseManager.CurrentContext;
         bool flag = false;
         try
         {
             try
             {
                 if (!licenseManagerLockHeld)
                 {
                     LicenseManager.CurrentContext = new WebFormsDesigntimeLicenseContext(host);
                     LicenseManager.LockContext(licenseManagerLock);
                     licenseManagerLockHeld = true;
                     flag = true;
                 }
                 control = DesignTimeTemplateParser.ParseControl(data);
             }
             catch (TargetInvocationException exception)
             {
                 throw exception.InnerException;
             }
             return control;
         }
         finally
         {
             if (flag)
             {
                 LicenseManager.UnlockContext(licenseManagerLock);
                 LicenseManager.CurrentContext = currentContext;
                 licenseManagerLockHeld = false;
             }
         }
     }
     return control;
 }
        private static Control[] ParseControlsInternalHelper(DesignTimeParseData data, bool returnFirst)
        {
            TemplateParser parser = new PageParser();

            parser.FInDesigner  = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;
            parser.Parse();

            ArrayList parsedControls = new ArrayList();
            ArrayList subBuilders    = parser.RootBuilder.SubBuilders;

            if (subBuilders != null)
            {
                // Look for the first control builder
                IEnumerator en = subBuilders.GetEnumerator();

                for (int i = 0; en.MoveNext(); i++)
                {
                    object cur = en.Current;

                    if ((cur is ControlBuilder) && !(cur is CodeBlockBuilder))
                    {
                        // Instantiate the control
                        ControlBuilder controlBuilder = (ControlBuilder)cur;

                        System.Diagnostics.Debug.Assert(controlBuilder.CurrentFilterResolutionService == null);

                        IServiceProvider builderServiceProvider = null;

                        // If there's a designer host, use it as the service provider
                        if (data.DesignerHost != null)
                        {
                            builderServiceProvider = data.DesignerHost;
                        }
                        // If it doesn't exist, use a default ---- filter resolution service
                        else
                        {
                            ServiceContainer serviceContainer = new ServiceContainer();
                            serviceContainer.AddService(typeof(IFilterResolutionService), new SimpleDesignTimeFilterResolutionService(data.Filter));
                            builderServiceProvider = serviceContainer;
                        }

                        controlBuilder.SetServiceProvider(builderServiceProvider);
                        try {
                            Control control = (Control)controlBuilder.BuildObject(data.ShouldApplyTheme);
                            parsedControls.Add(control);
                        }
                        finally {
                            controlBuilder.SetServiceProvider(null);
                        }
                        if (returnFirst)
                        {
                            break;
                        }
                    }
                    // To preserve backwards compatibility, we don't add LiteralControls
                    // to the control collection when parsing for a single control
                    else if (!returnFirst && (cur is string))
                    {
                        LiteralControl literalControl = new LiteralControl(cur.ToString());
                        parsedControls.Add(literalControl);
                    }
                }
            }

            data.SetUserControlRegisterEntries(parser.UserControlRegisterEntries, parser.TagRegisterEntries);

            return((Control[])parsedControls.ToArray(typeof(Control)));
        }
 public static Control[] ParseControls(DesignTimeParseData data)
 {
     return(default(Control[]));
 }
		public void FixtureSetUp ()
		{
			dtpd = new DesignTimeParseData (null, "parseText");
		}
		public static Control[] ParseControls (DesignTimeParseData data)
		{
			throw new NotImplementedException ();
		}
		public static ITemplate ParseTemplate (DesignTimeParseData data)
		{
			TemplateParser NewParser = InitParser (data);
			NewParser.RootBuilder.Text = data.ParseText;
			return NewParser.RootBuilder;
		}
Example #28
0
 public static Control[] ParseControls(DesignTimeParseData data)
 {
     throw new NotImplementedException();
 }
 public static Control[] ParseControls(DesignTimeParseData data) {
     return ParseControlsInternal(data, false);
 }
        private static Control[] ParseControlsInternalHelper(DesignTimeParseData data, bool returnFirst) {
            TemplateParser parser = new PageParser();
            parser.FInDesigner = true;
            parser.DesignerHost = data.DesignerHost;
            parser.DesignTimeDataBindHandler = data.DataBindingHandler;
            parser.Text = data.ParseText;
            parser.Parse();

            ArrayList parsedControls = new ArrayList();
            ArrayList subBuilders = parser.RootBuilder.SubBuilders;

            if (subBuilders != null) {
                // Look for the first control builder
                IEnumerator en = subBuilders.GetEnumerator();

                for (int i = 0; en.MoveNext(); i++) {
                    object cur = en.Current;

                    if ((cur is ControlBuilder) && !(cur is CodeBlockBuilder)) {
                        // Instantiate the control
                        ControlBuilder controlBuilder = (ControlBuilder)cur;

                        System.Diagnostics.Debug.Assert(controlBuilder.CurrentFilterResolutionService == null);

                        IServiceProvider builderServiceProvider = null;

                        // If there's a designer host, use it as the service provider
                        if (data.DesignerHost != null) {
                            builderServiceProvider = data.DesignerHost;
                        }
                        // If it doesn't exist, use a default ---- filter resolution service
                        else {
                            ServiceContainer serviceContainer = new ServiceContainer();
                            serviceContainer.AddService(typeof(IFilterResolutionService), new SimpleDesignTimeFilterResolutionService(data.Filter));
                            builderServiceProvider = serviceContainer;
                        }

                        controlBuilder.SetServiceProvider(builderServiceProvider);
                        try {
                            Control control = (Control)controlBuilder.BuildObject(data.ShouldApplyTheme);
                            parsedControls.Add(control);
                        }
                        finally {
                            controlBuilder.SetServiceProvider(null);
                        }
                        if (returnFirst) {
                            break;
                        }
                    }
                        // To preserve backwards compatibility, we don't add LiteralControls
                        // to the control collection when parsing for a single control
                    else if (!returnFirst && (cur is string)) {
                        LiteralControl literalControl = new LiteralControl(cur.ToString());
                        parsedControls.Add(literalControl);
                    }
                }
            }

            data.SetUserControlRegisterEntries(parser.UserControlRegisterEntries, parser.TagRegisterEntries);

            return (Control[])parsedControls.ToArray(typeof(Control));
        }
 public static Control[] ParseControls(DesignTimeParseData data)
 {
   return default(Control[]);
 }
 public static ITemplate ParseTemplate(DesignTimeParseData data)
 {
   return default(ITemplate);
 }
 public static ITemplate ParseTemplate(DesignTimeParseData data)
 {
     return(default(ITemplate));
 }
 public static Control ParseControl(DesignTimeParseData data)
 {
   return default(Control);
 }
 internal static Control[] DeserializeControlsInternal(string text, IDesignerHost host, List<Triplet> userControlRegisterEntries)
 {
     if (host == null)
     {
         throw new ArgumentNullException("host");
     }
     if ((text == null) || (text.Length == 0))
     {
         throw new ArgumentNullException("text");
     }
     string directives = GetDirectives(host);
     if ((directives != null) && (directives.Length > 0))
     {
         text = directives + text;
     }
     DesignTimeParseData data = new DesignTimeParseData(host, text, GetCurrentFilter(host)) {
         DataBindingHandler = GlobalDataBindingHandler.Handler
     };
     Control[] controlArray = null;
     lock (typeof(LicenseManager))
     {
         LicenseContext currentContext = LicenseManager.CurrentContext;
         try
         {
             LicenseManager.CurrentContext = new WebFormsDesigntimeLicenseContext(host);
             LicenseManager.LockContext(licenseManagerLock);
             controlArray = DesignTimeTemplateParser.ParseControls(data);
         }
         catch (TargetInvocationException exception)
         {
             throw exception.InnerException;
         }
         finally
         {
             LicenseManager.UnlockContext(licenseManagerLock);
             LicenseManager.CurrentContext = currentContext;
         }
     }
     if ((userControlRegisterEntries != null) && (data.UserControlRegisterEntries != null))
     {
         foreach (Triplet triplet in data.UserControlRegisterEntries)
         {
             userControlRegisterEntries.Add(triplet);
         }
     }
     return controlArray;
 }