/// <summary> /// Render CSS to position the entity /// </summary> private void RenderStyle(Draw.Diagram.Entity e, string defaultCss, HtmlTextWriter writer) { int width = e.Width; int height = e.Height; int top = e.Top; int left = e.Left; string css = (string.IsNullOrEmpty(e.StyleClass)) ? defaultCss : e.StyleClass; // handles the IE box model which adds border outside given dimensions if (e.BorderWidth == 1) { width -= 2; height -= 2; top--; left--; } // connector is boxes within boxes so handle box model again if (e is Draw.Diagram.Connector) { left -= 4; top -= 3; } writer.Write(" class=\"{0}\" style=\"position: absolute; ", css); writer.Write("width: {0}px; height: {1}px; ", width, height); writer.Write("top: {0}px; left: {1}px; z-index: {2};", top, left, e.Layer); if (!(e is Draw.Diagram.Connector)) { if (e.BorderWidth == 0) { writer.Write(" border: none;"); } writer.Write(" font-size: {0}px; line-height: {0}px;", e.LabelFontSize); } writer.Write("\""); }
/// <summary> /// Render entity label /// </summary> private void RenderLabel(Draw.Diagram.Entity e, HtmlTextWriter writer) { if (_wireDomEvents && e.HandleEvents) { // render EcmaScript to handle click on this entity writer.Write("<a onclick=\"Diagram.OnItemClick('{0}',", e.ID); writer.Write("[{0}],[{1}]);\" ", Draw.Diagram.Entity.IdList(e.ConnectedFrom), Draw.Diagram.Entity.IdList(e.ConnectedTo)); writer.Write("title=\"{0} {1}\">{2}</a>", e.TypeName, e.ID, e.HtmlLabel); } else if (!string.IsNullOrEmpty(e.ID)) { // show tooltip for this entity writer.Write("<acronym title=\"{0} {1}\">{2}</acronym>", e.TypeName, e.ID, e.HtmlLabel); } else { // render label alone writer.Write(e.HtmlLabel); } if (!string.IsNullOrEmpty(e.LabelSuffix)) { writer.Write("<span class=\"suffix\">"); writer.Write(e.LabelSuffix); writer.Write("</span>"); } }