private void OKBtn_Click(object sender, EventArgs e) { if ((m_tree.CurrentNode is DataNode) && ((DataNode)m_tree.CurrentNode).NodeType == TreeNodeType.Tmplt) { this.TmpltId = ((TmpltNode)m_tree.CurrentNode).Element.Id; //如果传入的父元素为空,则父频道为网站根节点 if (_parentEle == null) { _parentEle = ((ElementNode)m_tree.SelectTreeRootChanNode).Element as FolderXmlElement; PageType = (PageType)((int)((TmpltNode)m_tree.CurrentNode).Element.TmpltType); } ///检查是否有重名 //if (File.Exists(Path.Combine(_parentEle.AbsoluteFilePath, NameTextBox.Text + Utility.Const.PageFileExt))) //{ // MessageService.Show("此文件已存在,请重新命名。"); // NameTextBox.SelectAll(); // NameTextBox.Focus(); // return; //} SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument; PageSimpleExXmlElement pageEle = doc.CreatePage(_parentEle.Id, PageType, NameTextBox.Text, TmpltId); this.NewPageId = pageEle.Id; this.DialogResult = DialogResult.OK; Close(); } else { MessageService.Show("请选择模板!"); } }
public NewHomePageForm(FolderXmlElement parentEle, PageType pageType) { InitializeComponent(); this.Text = "新建索引页面"; // 初始化树:只加入频道 _parentEle = parentEle; m_tree = new MyTreeView(); m_tree.TreeMode = TreeMode.SelectTmplt; m_tree.SelectTmpltType = pageType; m_tree.LoadTreeData(); m_tree.HideSelection = false; m_tree.Dock = DockStyle.Fill; TreePanel.Controls.Add(m_tree); if (parentEle == null) { parentEle = (FolderXmlElement)((ElementNode)m_tree.SelectTreeRootChanNode).Element; } NameTextBox.Text = XmlUtilService.CreateIncreasePageTitle(parentEle, PageType.Home); OKBtn.Enabled = false; m_tree.AfterSelect += new TreeViewEventHandler(m_tree_AfterSelect); }
private void SearchAndProcess(FolderXmlElement channelRootEle) { foreach (AnyXmlElement anyXmlEle in channelRootEle) { SimpleExIndexXmlElement simpleEle = anyXmlEle as SimpleExIndexXmlElement; switch (simpleEle.DataType) { case DataType.Resources: //直接将资源文件移动与此; 还不够妥当todo: if (simpleEle.IsModified) { DirectoryInfo dic = new DirectoryInfo(resStartPath); dic.MoveTo(resToPath); } break; case DataType.TmpltFolder: case DataType.Folder: case DataType.Channel: SearchAndProcess((FolderXmlElement)simpleEle); break; case DataType.Tmplt: buildFile.BuildTmpltFile(simpleEle); break; case DataType.Page: buildFile.BuildPageFile(simpleEle); break; } } }//private
private void OKBtn_Click(object sender, EventArgs e) { SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument; ///不创建模板 if (!newTmpltCheckBox.Checked) { if ((m_tree.CurrentNode is DataNode) && ((DataNode)m_tree.CurrentNode).NodeType == TreeNodeType.Tmplt) { if (_parentEle == null)//如果传入的父元素为空,则父频道为网站根节点 { _parentEle = ((ElementNode)m_tree.SelectTreeRootChanNode).Element as FolderXmlElement; } PageSimpleExXmlElement pageEle = doc.CreatePage(_parentEle, PageType.Home, NameTextBox.Text, ((TmpltNode)m_tree.CurrentNode).Element.Id); NewPageId = pageEle.Id; } else { MessageService.Show("请选择模板!"); return; } } ///创建页面同时创建模板 else { KeyValuePair <string, string> keyvalue = doc.CreateHome(_parentEle, NameTextBox.Text); NewPageId = keyvalue.Value; } this.DialogResult = DialogResult.OK; Close(); }
/// <summary> /// 新建页面 /// </summary> /// <param name="m_tree"></param> /// <param name="myType"></param> public void NewPage(FolderXmlElement parentEle, PageType myType) { if (myType != PageType.Home) { NewPageForm newPage = new NewPageForm(parentEle, myType); if (newPage.ShowDialog() == DialogResult.OK) { ///建完页面后打开页面 WorkDocumentType workDocumentType = WorkDocumentType.None; if (myType == PageType.General) { workDocumentType = WorkDocumentType.HtmlDesigner; } else { workDocumentType = WorkDocumentType.Edit; } Service.Workbench.OpenWorkDocument(workDocumentType, newPage.NewPageId); } } else { NewHomePageForm newPage = new NewHomePageForm(parentEle, myType); if (newPage.ShowDialog() == DialogResult.OK) { ///建完页面后打开页面 Service.Workbench.OpenWorkDocument(WorkDocumentType.HomePage, newPage.NewPageId); } } }
public MyListFolderItem(FolderXmlElement element, MyListItem parantFolder) : base(element) { _element = element; this.Text = _element.Title; ListShowView = View.LargeIcon; _myItemParnt = parantFolder; BreviaryMap = true; //缩略图 }
public static string GetIndexPath(string channleGuid) { FolderXmlElement channleEle = ToHtmlSdsiteService.SdsiteXmlDocument.GetFolderElementById(channleGuid); PageSimpleExXmlElement pageEle = ToHtmlSdsiteService.SdsiteXmlDocument.GetPageElementById(channleEle.DefaultPageId); if (pageEle != null) { return(pageEle.OwnerFolderElement.RelativeUrl + pageEle.FileName + Utility.Const.ShtmlFileExt); } return(string.Empty); }
/// <summary> /// 处理网站的主方法 /// </summary> /// <param name="sdPath">.sdsite的文件夹路径如zha\zhangling\projectname</param> /// <param name="projName">.sdsite的名projName</param> public bool ExecuteSdsite(string partPath, string projName) { try { string sdPath = AnyFilePath.GetTempFolderAbsolutePath(partPath) + projName + ".sdsite"; //打开网站 SdsiteDocument = new SdsiteXmlDocument(sdPath); SdsiteDocument.Load(); _dealwithFileOrFolder = new DealWithFileOrFolder(); _dealwithFileOrFolder.SdsitesPath = partPath; #region add by zhangling on 2008年6月23日 //得到项目的创建时间 string _createTime = SdsiteDocument.DocumentElement.GetAttribute("createTime"); DateTime dt; if (DateTime.TryParse(_createTime, out dt)) { _projCreateTime = DateTime.Parse(_createTime); } _projCreateTime = dt; //得到项目的发布时间 string _pubTime = SdsiteDocument.DocumentElement.GetAttribute("pubTime"); DateTime _publishDt; if (DateTime.TryParse(_pubTime, out _publishDt)) { _publishTime = DateTime.Parse(_pubTime); } _publishTime = _publishDt; #endregion FolderXmlElement channelRootEle = SdsiteDocument.RootChannel; //做相应处理 SearchAndProcess(channelRootEle); ///移动.sdsite ///modified by zhangling on 2008年6月12日 string sourceFilePath = AnyFilePath.GetTempFolderAbsolutePath(partPath) + projName + ".sdsite"; string targetFilePath = AnyFilePath.GetSdsitesFolderAbsolutePath(partPath) + projName + ".sdsite"; FileService.FileMove(sourceFilePath, targetFilePath); //删除时出错 FolderService.FolderDelete(AnyFilePath.GetTempFolderAbsolutePath(partPath)); return(true); } catch (Exception ex) { ExceptionService.WriteExceptionLog(ex); return(false); } }
/// <summary> /// 新建模板 /// </summary> /// <param name="m_tree"></param> /// <param name="myType"></param> public void NewTmplt(FolderXmlElement parentEle, TmpltType myType) { //获得父频道节点,父模板文件夹节点 //((BaseFolderElementNode)CurrentNode).Element, NewTmpltSetupForm tmpltForm = new NewTmpltSetupForm(parentEle, myType); if (tmpltForm.ShowDialog() == DialogResult.OK) { TmpltSimpleExXmlElement tmpltEle = Service.Sdsite.CurrentDocument.CreateTmplt(parentEle, myType, tmpltForm.TmpltTitle, false, tmpltForm.TmpltWidth, tmpltForm.TmpltHeight, tmpltForm.BackImage); Service.Workbench.OpenWorkDocument(WorkDocumentType.TmpltDesigner, tmpltEle.Id); } }
public void ShowResult() { PageTypeList = new List <PageType>(); PageList = new List <PageSimpleExXmlElement>(); if (this.conGeneral.Checked) { PageTypeList.Add(PageType.General); } if (this.conHr.Checked) { PageTypeList.Add(PageType.Hr); } if (this.conInviteBidding.Checked) { PageTypeList.Add(PageType.InviteBidding); } if (this.conKnowledge.Checked) { PageTypeList.Add(PageType.Knowledge); } if (this.conProduct.Checked) { PageTypeList.Add(PageType.Product); } if (this.conProject.Checked) { PageTypeList.Add(PageType.Project); } string channelID = string.Empty; if (((ElementNode)chanTree.CurrentNode).Element.DataType == DataType.Channel) { channelID = ((BaseFolderElementNode)this.chanTree.CurrentNode).Element.Id; FolderXmlElement folderEle = Service.Sdsite.CurrentDocument.GetFolderElementById(channelID); foreach (PageSimpleExXmlElement pageEle in folderEle.SelectNodes("//channel[@id='" + channelID + "']//page")) { foreach (PageType pagetype in PageTypeList) { if (pagetype == pageEle.PageType) { PageList.Add(pageEle); break; } } } } State.ChannelId = channelID; State.PageTypeListAll = PageTypeList; }
private void TreeNodeSelected() { ClearCheackValue(); if (chanTree.CurrentNode != null) { if (((ElementNode)chanTree.CurrentNode).Element.DataType == DataType.Channel) { FolderXmlElement ele = ((BaseFolderElementNode)chanTree.CurrentNode).Element; foreach (PageSimpleExXmlElement pageEle in ele.SelectNodes("child::page")) { IsChecked(pageEle); } } } }
/// <summary> /// 当发送频道请求情况下,产生该频道下的列表(文件夹,频道,页面) /// </summary> internal static string GetChannelContent(string channelGuid) { try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<body></body>"); FolderXmlElement channeEle = ToHtmlSdsiteService.SdsiteXmlDocument.GetFolderElementById(channelGuid); if (string.IsNullOrEmpty(channeEle.DefaultPageId)) { foreach (AnyXmlElement anyEle in channeEle.ChildNodes) { if (anyEle.Name != "siteShowItem") { SimpleExIndexXmlElement pageEle = anyEle as SimpleExIndexXmlElement; if (pageEle.Name != "resources" && pageEle.Name != "tmpltRootFolder" && pageEle.IsDeleted == false) { //如果包含主页,则跳转到主页 XmlElement xmlEle = xmlDoc.CreateElement("div"); XmlElement linkEle = xmlDoc.CreateElement("a"); if (pageEle.Name == "channel" || pageEle.Name == "folder") { linkEle.SetAttribute("href", pageEle.OwnerFolderElement.RelativeUrl); } else { linkEle.SetAttribute("href", pageEle.RelativeUrl); } linkEle.InnerXml += pageEle.FileName; xmlEle.AppendChild(linkEle); xmlDoc.DocumentElement.AppendChild(xmlEle); return(string.Format(ConstService.HTMLUTF8Head, channeEle.Title) + xmlDoc.InnerXml + ConstService.HTMLUTF8END); } } } } else { return("<html><head>" + ConstService.UTF8 + "<meta http-equiv=\"refresh\" content=\"0;URL=http://127.0.0.1:" + Perviewer.Port + channeEle.RelativeUrl + "index.shtml\"></head></html>"); } } catch (Exception e) { ExceptionService.CreateException(e); return(ConstService.BAD); } return("该频道(文件夹)下无内容显示!"); }
public NewPageForm(FolderXmlElement parentEle, PageType pageType) { PageType = pageType; InitializeComponent(); Label label1 = new Label(); label1.AutoSize = true; label1.Location = new Point(24, 6); label1.Name = "label1"; label1.Size = new System.Drawing.Size(41, 12); label1.TabIndex = 0; panel3.Controls.Add(label1); // 初始化树:只加入频道 _parentEle = parentEle; m_tree = new MyTreeView(); m_tree.MultiSelect = true; m_tree.TreeMode = TreeMode.SelectTmplt; m_tree.SelectTmpltType = PageType; m_tree.LoadTreeData(); m_tree.HideSelection = false; if (parentEle != null) { TreeNode parentNode = GetFirstTmpltNode(); if (parentNode != null && parentNode.Nodes.Count > 0) { m_tree.CurrentNode = (BaseTreeNode)parentNode.Nodes[0]; } } m_tree.Dock = DockStyle.Fill; m_tree.ExpandAll(); TreePanel.Controls.Add(m_tree); label1.Text = "新建一个页面,请选择一个将要关联的模板!!"; if (parentEle == null) { parentEle = (FolderXmlElement)((ElementNode)m_tree.SelectTreeRootChanNode).Element; } NameTextBox.Text = XmlUtilService.CreateIncreasePageTitle(parentEle, pageType); OKBtn.Enabled = false; m_tree.SelectedNodesChanged += new EventHandler(m_tree_SelectedNodesChanged); }
/// <summary> /// 加载文件夹 /// </summary> private void LoadChildFolderNode() { foreach (XmlNode node in Element.ChildNodes) { if (node is FolderXmlElement) { FolderXmlElement folderEle = (FolderXmlElement)node; ///若是频道或模板文件夹,则跳过 if (folderEle is ChannelSimpleExXmlElement) { continue; } AddElementNode(folderEle); } } }
private void ProcessSelectFolder(TreeNode BaseFolderElementNode) { foreach (TreeNode node in BaseFolderElementNode.Nodes) { if (node is BaseFolderElementNode) { FolderXmlElement ele = ((BaseFolderElementNode)node).Element; foreach (string id in SelectesChannelIDList) { if (id == ele.Id) { //node.ForeColor = Color.Green; folderList.Add(node as BaseFolderElementNode); } } ProcessSelectFolder(node); } } }
//显示所有包括子节点 private void ShowPageForAll() { if (this.conShowChildNode.Checked) { ClearCheackValue(); string channelID = string.Empty; if ((ElementNode)chanTree.CurrentNode == null) { return; } if (((ElementNode)chanTree.CurrentNode).Element.DataType == DataType.Channel) { channelID = ((BaseFolderElementNode)this.chanTree.CurrentNode).Element.Id; FolderXmlElement folderEle = Service.Sdsite.CurrentDocument.GetFolderElementById(channelID); foreach (PageSimpleExXmlElement pageEle in folderEle.SelectNodes("//channel[@id='" + channelID + "']//page")) { IsChecked(pageEle); } } } }
/// <summary> /// 设为首页 /// </summary> /// <param name="myTree"></param> internal void SetAsIndexPage() { ///先将之前的默认页的Node的字体恢复普通 PageNode defaultPageNode = ((ChannelFolderNode)this.CurrentNode.Parent).GetDefaultPageNode(); if (defaultPageNode != null) { defaultPageNode.NodeFont = null; } ///将当前选择的页面的Node加粗 CurrentNode.BoldFont(); ///设置默认页 SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument; FolderXmlElement folderEle = ((BaseFolderElementNode)CurrentNode.Parent).Element; string pageID = ((PageNode)CurrentNode).Element.Id; folderEle.DefaultPageId = pageID; doc.Save(); }
/// <summary> /// 通过频道的url返回频道的GUID,没有则返回空 /// </summary> internal static string GetChannelRequestGuid(string index, ToHtmlHelper thh) { //如果为空返回根节点的Guid if (string.IsNullOrEmpty(index) || index == "//") { return("00000000"); } try { FolderXmlElement folderXmlEle = (FolderXmlElement)thh.SdsiteXmlDocument.GetElementById("00000000"); //url = DelFirstPath(url.Substring(1)); index = index.Substring(0, index.Length - 1); string channelName = GetLastPath(index); string url = DelLastPathName(index); //遍历所有要得到频道的父频道,找到其真实的父频道 while (!string.IsNullOrEmpty(url)) { string folder = GetFirstPath(url); folderXmlEle = (FolderXmlElement)folderXmlEle.SelectSingleNode(string.Format("child::*[@fileName='{0}']", folder)); url = DelFirstPath(url); } //通过父频道返回所求频道的id SimpleExIndexXmlElement xmlEle = (SimpleExIndexXmlElement)folderXmlEle.SelectSingleNode(string.Format("child::channel[@fileName='{0}']|child::folder[@fileName='{0}']", channelName)); if (xmlEle != null) { return(xmlEle.Id); } else { return(null); } } catch (Exception e) { ExceptionService.CreateException(e); return(null); } }
private void AddTmpltFolder(FolderXmlElement Folder) { foreach (var node in Folder.ChildNodes) { if (node is FolderXmlElement) { //有可能要加其ID 如果该文件夹有模板,并且删除该文件夹,要根据这个删模板树的内容 FolderElementNode FolderNode = new FolderElementNode(node as FolderXmlElement); SetElementNode(FolderNode); AddTmpltFolder(node as FolderXmlElement); } else if (node is TmpltSimpleExXmlElement) { TmpltElementNode tmpltNode = new TmpltElementNode(node as TmpltSimpleExXmlElement); if ((TmpltFilter == TmpltTreeNodeType.none) || TmpltFilter == tmpltNode.CurrentNodeType) { SetElementNode(tmpltNode); AddRootNodeToTree(tmpltNode); } } } }
/// <summary> /// 新建文件夹 /// </summary> void NewResourcesFolder() { SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument; FolderXmlElement parentFolderEle = filePaths[pathNum] as FolderXmlElement; FolderXmlElement newFolderEle = doc.CreateFolder(parentFolderEle, XmlUtilService.CreateIncreaseFolderTitle(parentFolderEle)); Directory.CreateDirectory(newFolderEle.AbsoluteFilePath); MyFolderItem mylvi = new MyFolderItem(newFolderEle); listView.Items.Add(mylvi); KeyValuePair <string, Image> keyImg = GetImageAndKey(mylvi.Element.AbsoluteFilePath); if (!listView.SmallImageList.Images.ContainsKey(keyImg.Key)) { listView.SmallImageList.Images.Add(keyImg.Key, keyImg.Value); } mylvi.ImageKey = keyImg.Key; mylvi.Selected = true; mylvi.BeginEdit(); }
//SdsiteXmlDocument sdsiteDocument; /// <summary> /// 开始生成网站 /// </summary> /// <returns></returns> public bool StartBuild(string partPath, string projName) { string sdPath = AnyFilePath.GetSdsitesFolderAbsolutePath(partPath); string buildPath = AnyFilePath.GetWebAbsolutePath(partPath); toHtmlHelperObj = new ToHtmlHelper(sdPath, buildPath); resStartPath = sdPath + @"Root\" + @"Resource"; resToPath = buildPath + @"\Resource"; buildFile = new BuildFile(); buildFile.SdsiteDocument = toHtmlHelperObj.SdsiteXmlDocument; buildFile.ToHtmlHelperObj = toHtmlHelperObj; FolderXmlElement channelRootEle = toHtmlHelperObj.SdsiteXmlDocument.RootChannel; //string sdPath = AnyFilePath.GetSdsitesFolderAbsolutePath(partPath) + projName + ".sdsite"; ////打开网站 //this.sdsiteDocument = new SdsiteXmlDocument(sdPath); //this.sdsiteDocument.Load(); //buildFile = new BuildFile(); //buildFile.SdsiteDocument = this.sdsiteDocument; //buildFile.BuildFilePath = partPath; //FolderXmlElement channelRootEle = this.sdsiteDocument.RootChannel; try { SearchAndProcess(channelRootEle); return(true); } catch (Exception Ex) { ExceptionService.WriteExceptionLog(Ex); return(false); } }
/// <summary> /// 构造函数 /// </summary> public NewTmpltSetupForm(FolderXmlElement parentFolder, TmpltType type) { this._parentFolder = parentFolder; InitializeComponent(); PenSize = 1; PenColor = Color.Black; TmpltType = type; _imageScale = (float)panelGraghics.Width / (float)panelGraghics.Height; if (_backImage != null) { textBoxWidth.Text = _backImage.Width.ToString(); textBoxHeight.Text = _backImage.Height.ToString(); } _defaultHeight = panelGraghics.Height; _defaultWidth = panelGraghics.Width; _pen = new Pen(PenColor, PenSize); _pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; textBoxTitle.Text = XmlUtilService.CreateIncreaseTmpltTitle(_parentFolder, type); string _newTmpltIsUseImg = Service.DesignData.GetValue("NewTmpltIsUseImg"); if (_newTmpltIsUseImg == null) { checkBoxChooseImage.Checked = true; Service.DesignData.SetValue("NewTmpltIsUseImg", true.ToString()); } else { checkBoxChooseImage.Checked = Utility.Convert.StringToBool(_newTmpltIsUseImg); } InitEvent(); Resetimage(); }
public FolderElementNode(FolderXmlElement element) : base(element) { }
public TmpltFolderNode(FolderXmlElement element) : base(element) { }
// add by zhangling on 2008年6月23日 2008年6月26日 加上了判断条件以统计相应的个数 private void SearchAndProcess(FolderXmlElement folderEle) { foreach (AnyXmlElement anyXmlEle in folderEle.ChildNodes) { SimpleExIndexXmlElement simpleEle = anyXmlEle as SimpleExIndexXmlElement; if (simpleEle != null) { switch (simpleEle.DataType) { case DataType.Channel: if (!simpleEle.IsDeleted) { _channelAmount = _channelAmount + 1; _includeFileAmount = _includeFileAmount + 1; } SearchAndProcess(simpleEle as FolderXmlElement); break; case DataType.Folder: if (simpleEle.FileName == "System" || !simpleEle.IsDeleted) { _includeFileAmount = _includeFileAmount + 1; } SearchAndProcess(simpleEle as FolderXmlElement); break; case DataType.TmpltFolder: case DataType.Resources: _includeFileAmount = _includeFileAmount + 1; SearchAndProcess(simpleEle as FolderXmlElement); break; case DataType.Tmplt: if (!simpleEle.IsDeleted) { _templetAmount = _templetAmount + 1; _includeFileAmount = _includeFileAmount + 1; } _dealwithFileOrFolder.DealWithFile(simpleEle); break; case DataType.Page: if (!simpleEle.IsDeleted) { _pageAmount = _pageAmount + 1; _includeFileAmount = _includeFileAmount + 1; } _dealwithFileOrFolder.DealWithFile(simpleEle); break; case DataType.File: if (!simpleEle.IsDeleted) { _resourceFileAmount = _resourceFileAmount + 1; _includeFileAmount = _includeFileAmount + 1; } _dealwithFileOrFolder.DealWithFile(simpleEle); break; default: break; } } } }
public ChannelFolderNode(FolderXmlElement element) : base(element) { }
public ResourceFolderNode(FolderXmlElement element) : base(element) { }
/// <summary> /// 加载项目 /// </summary> /// <param name="initPath"></param> void InitListView(SimpleExIndexXmlElement folderEle) { listView.Items.Clear(); SdsiteXmlDocument doc = Service.Sdsite.CurrentDocument; //加载子文件夹 foreach (XmlNode node in folderEle.ChildNodes) { if (node is FolderXmlElement) { FolderXmlElement folder = (FolderXmlElement)node; if (folder.IsDeleted) { continue; } MyFolderItem mylvi = new MyFolderItem(folder); string folderPath = folder.AbsoluteFilePath.Substring(0, folder.AbsoluteFilePath.Length - 1); mylvi.Text = Path.GetFileName(folderPath); mylvi.Text = folder.Title; listView.Items.Add(mylvi); } } //加载子文件 foreach (XmlNode node in folderEle.ChildNodes) { if (node is FileSimpleExXmlElement) { FileSimpleExXmlElement fileEle = (FileSimpleExXmlElement)node; MyFileItem myFileItem = new MyFileItem(fileEle); if (fileEle.IsDeleted) { continue; } myFileItem.Element = fileEle; myFileItem.Text = Path.GetFileName(fileEle.AbsoluteFilePath); myFileItem.Text = fileEle.Title; string exfile = Path.GetExtension(fileEle.AbsoluteFilePath).ToLower(); switch (FileType) { case MediaFileType.Pic: { if (exfile == ".jpg" || exfile == ".jpeg" /*|| exfile == ".png"*/ || exfile == ".gif") { myFileItem.ItemMediaType = MediaFileType.Pic; string valuestr = ""; if (!picFilter.TryGetValue(FilterComboBox.Text, out valuestr) || valuestr == "all") { listView.Items.Add(myFileItem); } else { if (exfile == valuestr) { listView.Items.Add(myFileItem); } } } break; } case MediaFileType.Flash: { if (exfile == ".swf") { myFileItem.ItemMediaType = MediaFileType.Flash; listView.Items.Add(myFileItem); } break; } case MediaFileType.Audio: { if (exfile == ".mp3" || exfile == ".mdi" || exfile == ".wma" || exfile == "*.wav") { myFileItem.ItemMediaType = MediaFileType.Audio; string valuestr = ""; if (!audioFilter.TryGetValue(FilterComboBox.Text, out valuestr) || valuestr == "all") { listView.Items.Add(myFileItem); } else { if (exfile == valuestr) { listView.Items.Add(myFileItem); } } } break; } case MediaFileType.Video: { if (exfile == ".rmvb" || exfile == ".rm" || exfile == ".avi" || exfile == ".wmv") { myFileItem.ItemMediaType = MediaFileType.Video; string valuestr = ""; if (!mediaFilter.TryGetValue(FilterComboBox.Text, out valuestr) || valuestr == "all") { listView.Items.Add(myFileItem); } else { if (exfile == valuestr) { listView.Items.Add(myFileItem); } } } break; } } } } //加载图标 foreach (MyItem lvitem in listView.Items) { string fullPath = lvitem.Element.AbsoluteFilePath; KeyValuePair <string, Image> keyImg = GetImageAndKey(fullPath); if (!listView.SmallImageList.Images.ContainsKey(keyImg.Key)) { listView.SmallImageList.Images.Add(keyImg.Key, keyImg.Value); } lvitem.ImageKey = keyImg.Key; } }
public MyFolderItem(FolderXmlElement element) : base(element) { _element = element; this.Text = _element.Title; }
/// <summary> /// 加载项目 /// </summary> /// <param name="initPath"></param> private void InitListView(MyListItem folderEle, ListViewEx listView, string FilterType) { listView.Items.Clear(); // listView.FolderName = folderEle.Element.AbsoluteFilePath; CreateHeader(listView); //列表头 //加载子文件夹 foreach (XmlNode node in folderEle._element.ChildNodes) { if (node is FolderXmlElement && !(node is TmpltFolderXmlElement) && !(node is ResourcesXmlElement)) { FolderXmlElement folder = (FolderXmlElement)node; if (folder.IsDeleted) { continue; } MyListFolderItem mylvi = new MyListFolderItem(folder, folderEle); if (mainTabControl.SelectedIndex != 0) { mylvi.BreviaryMap = false; } string folderPath = folder.AbsoluteFilePath.Substring(0, folder.AbsoluteFilePath.Length - 1); mylvi.Text = Path.GetFileName(folderPath); mylvi.Text = folder.Title; listView.Items.Add(mylvi); } } //加载子文件 InitListViewSubFile(folderEle._element.ChildNodes, listView, FilterType); if (folderEle.BreviaryMap && folderEle.ListShowView == View.LargeIcon) {//缩略图 listView.LargeImageList.Images.Clear(); listView.LargeImageList.ImageSize = new Size(96, 96); foreach (MyListItem lvitem in listView.Items) { // if (lvitem is MyFileItem1) { string fullPath = lvitem.Element.AbsoluteFilePath; lvitem.ImageIndex = listView.LargeImageList.Images.Add(listView.GetThumbNail(fullPath), Color.Transparent); } } } else { listView.LargeImageList.ImageSize = new Size(32, 32); //加载图标 foreach (MyListItem lvitem in listView.Items) { string fullPath = lvitem.Element.AbsoluteFilePath; KeyValuePair <string, Image> keyImg = GetImageAndKey(fullPath, GetSystemIconType.ExtensionSmall); if (!listView.SmallImageList.Images.ContainsKey(keyImg.Key)) { listView.SmallImageList.Images.Add(keyImg.Key, keyImg.Value); } KeyValuePair <string, Image> keyLargeImg = GetImageAndKey(fullPath, GetSystemIconType.ExtensionLarge); if (!listView.LargeImageList.Images.ContainsKey(keyLargeImg.Key)) { listView.LargeImageList.Images.Add(keyLargeImg.Key, keyLargeImg.Value); } lvitem.ImageKey = keyImg.Key; } } if (folderEle is MyListFolderItem) { listView.View = folderEle.ListShowView; } }