PageRenderTime 81ms CodeModel.GetById 21ms RepoModel.GetById 3ms app.codeStats 0ms

/IZWebFileManager/Components/FileViewDetailsRender.cs

http://izwebfilemanager.googlecode.com/
C# | 216 lines | 157 code | 36 blank | 23 comment | 11 complexity | 0f27969d93fd1463fb1ac919302145ad MD5 | raw file
  1. // Copyright (C) 2006 Igor Zelmanovich <izwebfilemanager@gmail.com>
  2. //
  3. // This program is free software; you can redistribute it and/or modify
  4. // it under the terms of the GNU General Public License as published by
  5. // the Free Software Foundation; either version 2 of the License, or
  6. // (at your option) any later version.
  7. //
  8. // This program is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. // GNU General Public License for more details.
  12. //
  13. // You should have received a copy of the GNU General Public License
  14. // along with this program; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Text;
  19. using System.Web.UI.WebControls;
  20. using System.Web.UI;
  21. using System.Web;
  22. using System.IO;
  23. using System.Globalization;
  24. namespace IZ.WebFileManager.Components
  25. {
  26. class FileViewDetailsRender : FileViewRender
  27. {
  28. internal FileViewDetailsRender (FileView fileView) : base (fileView) { }
  29. internal override void RenderBeginList (System.Web.UI.HtmlTextWriter output) {
  30. BorderedPanel panel = new BorderedPanel ();
  31. panel.Page = fileView.Page;
  32. if (fileView.DetailsColumnHeaderStyle.HorizontalAlign == HorizontalAlign.NotSet)
  33. fileView.DetailsColumnHeaderStyle.HorizontalAlign = fileView.Controller.CurrentUICulture.TextInfo.IsRightToLeft ? HorizontalAlign.Right : HorizontalAlign.Left;
  34. panel.ControlStyle.CopyFrom (fileView.DetailsColumnHeaderStyle);
  35. output.AddAttribute (HtmlTextWriterAttribute.Cellpadding, "0");
  36. output.AddAttribute (HtmlTextWriterAttribute.Cellspacing, "0");
  37. output.AddAttribute (HtmlTextWriterAttribute.Border, "0");
  38. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  39. output.RenderBeginTag (HtmlTextWriterTag.Table);
  40. output.RenderBeginTag (HtmlTextWriterTag.Thead);
  41. output.RenderBeginTag (HtmlTextWriterTag.Tr);
  42. output.RenderBeginTag (HtmlTextWriterTag.Th);
  43. output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Name));
  44. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  45. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  46. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  47. output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Name");
  48. panel.RenderBeginTag (output);
  49. output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Name", "Name")));
  50. panel.RenderEndTag (output);
  51. output.RenderEndTag ();
  52. output.RenderBeginTag (HtmlTextWriterTag.Th);
  53. output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Size));
  54. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  55. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  56. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  57. output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Size");
  58. panel.RenderBeginTag (output);
  59. output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Size", "Size")));
  60. panel.RenderEndTag (output);
  61. output.RenderEndTag ();
  62. output.RenderBeginTag (HtmlTextWriterTag.Th);
  63. output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Type));
  64. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  65. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  66. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  67. output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Type");
  68. panel.RenderBeginTag (output);
  69. output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Type", "Type")));
  70. panel.RenderEndTag (output);
  71. output.RenderEndTag ();
  72. output.RenderBeginTag (HtmlTextWriterTag.Th);
  73. output.AddAttribute (HtmlTextWriterAttribute.Onclick, fileView.GetSortEventReference (SortMode.Modified));
  74. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  75. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  76. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  77. output.AddAttribute (HtmlTextWriterAttribute.Id, fileView.ClientID + "_Thead_Modified");
  78. panel.RenderBeginTag (output);
  79. output.Write (HttpUtility.HtmlEncode (controller.GetResourceString ("Date_Modified", "Date Modified")));
  80. panel.RenderEndTag (output);
  81. output.RenderEndTag ();
  82. output.RenderEndTag ();
  83. output.RenderEndTag ();
  84. output.AddStyleAttribute (HtmlTextWriterStyle.Overflow, "auto");
  85. output.RenderBeginTag (HtmlTextWriterTag.Tbody);
  86. }
  87. internal override void RenderEndList (System.Web.UI.HtmlTextWriter output) {
  88. output.RenderEndTag ();
  89. output.RenderEndTag ();
  90. }
  91. internal override void RenderItem (HtmlTextWriter output, FileViewItem item) {
  92. output.RenderBeginTag (HtmlTextWriterTag.Tr);
  93. // Name Collumn
  94. if (fileView.Sort == SortMode.Name)
  95. fileView.DetailsSortedColumnStyle.AddAttributesToRender (output);
  96. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingLeft, "6px");
  97. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingRight, "6px");
  98. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingBottom, "1px");
  99. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  100. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  101. output.RenderBeginTag (HtmlTextWriterTag.Td);
  102. fileView.RenderItemBeginTag (output, item);
  103. output.AddAttribute (HtmlTextWriterAttribute.Border, "0");
  104. output.AddAttribute (HtmlTextWriterAttribute.Cellpadding, "0");
  105. output.AddAttribute (HtmlTextWriterAttribute.Cellspacing, "0");
  106. output.RenderBeginTag (HtmlTextWriterTag.Table);
  107. output.RenderBeginTag (HtmlTextWriterTag.Tr);
  108. output.RenderBeginTag (HtmlTextWriterTag.Td);
  109. output.AddStyleAttribute (HtmlTextWriterStyle.Width, FileManagerController.SmallImageWidth.ToString (CultureInfo.InstalledUICulture));
  110. output.AddStyleAttribute (HtmlTextWriterStyle.Height, FileManagerController.SmallImageHeight.ToString (CultureInfo.InstalledUICulture));
  111. output.AddStyleAttribute (HtmlTextWriterStyle.BackgroundImage, item.SmallImage);
  112. if (item.Hidden)
  113. fileView.Controller.HiddenItemStyle.AddAttributesToRender (output);
  114. output.RenderBeginTag (HtmlTextWriterTag.Div);
  115. output.RenderEndTag ();
  116. output.RenderEndTag ();
  117. output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
  118. output.RenderBeginTag (HtmlTextWriterTag.Td);
  119. output.AddAttribute (HtmlTextWriterAttribute.Id, item.ClientID + "_Name");
  120. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  121. output.RenderBeginTag (HtmlTextWriterTag.Div);
  122. output.Write ("&nbsp;");
  123. RenderItemName (output, item);
  124. output.RenderEndTag ();
  125. output.RenderEndTag ();
  126. output.RenderEndTag ();
  127. output.RenderEndTag ();
  128. fileView.RenderItemEndTag (output);
  129. output.RenderEndTag ();
  130. // Size Collumn
  131. if (fileView.Sort == SortMode.Size)
  132. fileView.DetailsSortedColumnStyle.AddAttributesToRender (output);
  133. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingLeft, "6px");
  134. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingRight, "6px");
  135. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingBottom, "1px");
  136. output.AddStyleAttribute (HtmlTextWriterStyle.Direction, "ltr");
  137. output.AddStyleAttribute (HtmlTextWriterStyle.TextAlign, "right");
  138. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  139. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  140. output.RenderBeginTag (HtmlTextWriterTag.Td);
  141. output.Write (item.Size);
  142. output.RenderEndTag ();
  143. // Type Collumn
  144. if (fileView.Sort == SortMode.Type)
  145. fileView.DetailsSortedColumnStyle.AddAttributesToRender (output);
  146. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingLeft, "6px");
  147. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingRight, "6px");
  148. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingBottom, "1px");
  149. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  150. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  151. output.RenderBeginTag (HtmlTextWriterTag.Td);
  152. output.Write (HttpUtility.HtmlEncode (item.Type));
  153. output.RenderEndTag ();
  154. // Modified Collumn
  155. if (fileView.Sort == SortMode.Modified)
  156. fileView.DetailsSortedColumnStyle.AddAttributesToRender (output);
  157. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingLeft, "6px");
  158. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingRight, "6px");
  159. output.AddStyleAttribute (HtmlTextWriterStyle.PaddingBottom, "1px");
  160. output.AddStyleAttribute (HtmlTextWriterStyle.Cursor, "default");
  161. output.AddStyleAttribute (HtmlTextWriterStyle.WhiteSpace, "nowrap");
  162. output.RenderBeginTag (HtmlTextWriterTag.Td);
  163. output.Write (HttpUtility.HtmlEncode (item.Modified));
  164. output.RenderEndTag ();
  165. output.RenderEndTag ();
  166. }
  167. internal override void RenderBeginGroup (HtmlTextWriter output, GroupInfo group) {
  168. output.RenderBeginTag (HtmlTextWriterTag.Tr);
  169. output.AddAttribute (HtmlTextWriterAttribute.Colspan, "4");
  170. output.RenderBeginTag (HtmlTextWriterTag.Td);
  171. base.RenderBeginGroup (output, group);
  172. output.RenderEndTag ();
  173. output.RenderEndTag ();
  174. }
  175. //internal override void RenderEndGroup(HtmlTextWriter output, GroupInfo group)
  176. //{
  177. // base.RenderEndGroup(output, group);
  178. //}
  179. }
  180. }