**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Web / System.Web.UI / Utils.cs
bloba7f706de79e5a2d81c5c03b54344990ade3157d4
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 /**
23 * Namespace: System.Web.UI
24 * Class: Utils
26 * Author: Gaurav Vaish
27 * Maintainer-> gvaish@iitk.ac.in
28 * Implementation: yes
29 * Contact: <gvaish@iitk.ac.in>
30 * Status: ??%
32 * (C) Gaurav Vaish (2001)
35 using System;
36 using System.Collections;
37 using System.Web;
38 using System.Reflection;
40 namespace System.Web.UI
42 internal class Utils
44 internal static object InvokeMethod(MethodInfo info, object obj, object[] parameters)
46 object retVal = null;
47 try
49 retVal = info.Invoke(obj, parameters);
50 } catch(TargetInvocationException tie)
52 throw tie.InnerException;
54 return retVal;
57 internal static string GetClientValidatedEvent(Page page)
59 return "if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();";
62 internal static string GetClientValidatedPostBack(Control control)
64 return (" { if (typeof(Page_ClientValidate) != 'function' || Page_ClientValidate()) " +
65 control.Page.GetPostBackEventReference(control) +
66 " } " );
69 [MonoTODO]
70 internal static string GetScriptLocation(HttpContext context)
72 IDictionary dict = context.GetConfig("system.web/webControls")
73 as IDictionary;
74 string loc = null;
75 if(dict != null)
77 loc = dict["clientScriptsLocation"] as string;
79 if(loc == null)
81 throw new HttpException("Missing_clientScriptsLocation");
83 if(loc.IndexOf("{0}") > 0)
85 //FIXME: Version Number of the ASP.Net should come into play.
86 //Like if ASP 1.0 and 1.1 both are installed, the script
87 // locations are in /aspnet_client/system_web/1_0_3705_0/
88 // and /aspnet_client/system_web/1_1_4322/
89 // (these entries are from my machine
90 // So, first I should get this Version Info from somewhere
91 loc = String.Format(loc, "system_web");
93 return loc;