00001 /* 00002 NPlot - A charting library for .NET 00003 00004 Web.PlotSurface2d.cs 00005 Copyright (C) 2003 00006 Matt Howlett, Paolo Pierini 00007 00008 Redistribution and use of NPlot or parts there-of in source and 00009 binary forms, with or without modification, are permitted provided 00010 that the following conditions are met: 00011 00012 1. Re-distributions in source form must retain at the head of each 00013 source file the above copyright notice, this list of conditions 00014 and the following disclaimer. 00015 00016 2. Any product ("the product") that makes use NPlot or parts 00017 there-of must either: 00018 00019 (a) allow any user of the product to obtain a complete machine- 00020 readable copy of the corresponding source code for the 00021 product and the version of NPlot used for a charge no more 00022 than your cost of physically performing source distribution, 00023 on a medium customarily used for software interchange, or: 00024 00025 (b) reproduce the following text in the documentation, about 00026 box or other materials intended to be read by human users 00027 of the product that is provided to every human user of the 00028 product: 00029 00030 "This product includes software developed as 00031 part of the NPlot library project available 00032 from: http://www.nplot.com/" 00033 00034 The words "This product" may optionally be replace with 00035 the actual name of the product. 00036 00037 ------------------------------------------------------------------------ 00038 00039 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00040 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00041 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00042 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00043 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00044 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00045 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00046 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00047 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00048 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00049 00050 */ 00051 00052 using System; 00053 using System.Drawing; 00054 using System.Drawing.Imaging; 00055 using System.IO; 00056 using System.Web.UI; 00057 using System.Web.UI.WebControls; 00058 using System.ComponentModel; 00059 using NPlot; 00060 00061 namespace NPlot 00062 { 00063 00064 namespace Web 00065 { 00066 namespace Design 00067 { 00068 00072 public class PlotSurface2D : System.Web.UI.Design.ControlDesigner 00073 { 00074 00079 public override string GetDesignTimeHtml() 00080 { 00081 00082 // Extremely simple design time rendering! 00083 // will work on something better sooner or later. 00084 // This acts as a placeholder. 00085 Web.PlotSurface2D plot = (Web.PlotSurface2D)Component; 00086 00087 int xs = Convert.ToInt32(plot.Width.Value); 00088 if ( xs < 1 ) return ""; 00089 int ys = Convert.ToInt32(plot.Height.Value); 00090 if ( ys < 1 ) return ""; 00091 00092 StringWriter sw = new StringWriter(); 00093 HtmlTextWriter output= new HtmlTextWriter(sw); 00094 output.AddAttribute("border",plot.BorderWidth.ToString()); 00095 output.AddAttribute("borderColor",plot.BorderColor.ToKnownColor().ToString()); 00096 output.AddAttribute("cellSpacing","0"); 00097 output.AddAttribute("cellPadding","0"); 00098 output.AddAttribute("width",xs.ToString()); 00099 output.RenderBeginTag("table "); 00100 output.RenderBeginTag("tr"); 00101 output.AddAttribute("vAlign","center"); 00102 output.AddAttribute("align","middle"); 00103 output.AddAttribute("height",ys.ToString()); 00104 output.RenderBeginTag("td"); 00105 output.RenderBeginTag("P"); 00106 output.Write("PlotSurface2D:" + plot.Title); 00107 output.RenderEndTag(); 00108 output.RenderEndTag(); 00109 output.RenderEndTag(); 00110 output.RenderEndTag(); 00111 output.Flush(); 00112 return sw.ToString(); 00113 00114 } 00115 00116 } 00117 00118 } 00119 00120 } 00121 }