/IZWebFileManager/Components/FileViewRender.cs
C# | 103 lines | 71 code | 10 blank | 22 comment | 6 complexity | fcc2079b89884f6f2b7c49646219ebb3 MD5 | raw file
- // Copyright (C) 2006 Igor Zelmanovich <izwebfilemanager@gmail.com>
- //
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; either version 2 of the License, or
- // (at your option) any later version.
- //
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.IO;
- using System.Web;
-
- namespace IZ.WebFileManager.Components
- {
- abstract class FileViewRender
- {
- //protected SortMode sort;
- //protected SortDirection sortDirection;
- protected FileManagerController controller;
- protected FileView fileView;
-
- protected FileViewRender (FileView fileView) {
- this.fileView = fileView;
- this.controller = fileView.Controller;
- //this.sort = fileView.Sort;
- //this.sortDirection = fileView.SortDirection;
- }
-
-
- internal virtual void RenderBeginList (HtmlTextWriter output) {
- }
- internal virtual void RenderEndList (HtmlTextWriter output) {
- }
-
- internal virtual void RenderBeginGroup (HtmlTextWriter output, GroupInfo group) {
- output.AddStyleAttribute ("clear", "both");
- output.AddStyleAttribute (HtmlTextWriterStyle.Width, "100%");
- output.RenderBeginTag (HtmlTextWriterTag.Div);
- output.Write (HttpUtility.HtmlEncode (group.Name));
- output.RenderEndTag ();
- }
- internal virtual void RenderEndGroup (HtmlTextWriter output, GroupInfo group) {
- }
-
- //internal virtual void RenderUpDirectory(HtmlTextWriter output, System.IO.DirectoryInfo dir)
- //{
- //}
- internal virtual void RenderItem (HtmlTextWriter output, FileViewItem item) {
- }
- internal static FileViewRender GetRender (FileView fileView) {
- switch (fileView.View) {
- case FileViewRenderMode.Details:
- return new FileViewDetailsRender (fileView);
- case FileViewRenderMode.Icons:
- return new FileViewIconsRender (fileView);
- case FileViewRenderMode.Thumbnails:
- if (fileView.Controller.SupportThumbnails)
- return new FileViewThumbnailsRender (fileView);
- return new FileViewIconsRender (fileView);
- default:
- return new FileViewDetailsRender (fileView);
- }
- }
-
- protected void RenderItemName (HtmlTextWriter output, FileViewItem item) {
- if (fileView.UseLinkToOpenItem) {
- string href = item.IsDirectory ?
- "javascript:WFM_" + fileView.Controller.ClientID + ".OnExecuteCommand(WFM_" + fileView.ClientID + ",\'0:0\')" :
- (VirtualPathUtility.AppendTrailingSlash (fileView.CurrentDirectory.VirtualPath) + item.FileSystemInfo.Name);
- if (!item.IsDirectory && !String.IsNullOrEmpty (fileView.LinkToOpenItemTarget))
- output.AddAttribute (HtmlTextWriterAttribute.Target, fileView.LinkToOpenItemTarget);
- output.AddAttribute (HtmlTextWriterAttribute.Href, href, true);
- output.AddAttribute (HtmlTextWriterAttribute.Class, fileView.LinkToOpenItemClass);
- output.RenderBeginTag (HtmlTextWriterTag.A);
- output.Write (HttpUtility.HtmlEncode (item.Name));
- output.RenderEndTag ();
- }
- else {
- output.Write (HttpUtility.HtmlEncode (item.Name));
- }
- }
- }
-
- public enum FileViewRenderMode
- {
- Icons,
- Details,
- Thumbnails
- }
-
- }