From da2ae631196dfa76d111bfd53d139a00a13f92d2 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Fri, 7 Jan 2011 18:19:26 +0000 Subject: [PATCH] Fix invalid cast exception when assigning a stylesheet to an XML file. --- .../Project/Src/AssignStylesheetCommand.cs | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs index 4884afde4c..89cb8cc1c3 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs @@ -24,8 +24,9 @@ namespace ICSharpCode.XmlEditor string stylesheetFileName = BrowseForStylesheetFile(); // Assign stylesheet. - if (stylesheetFileName != null) + if (stylesheetFileName != null) { xmlView.StylesheetFileName = stylesheetFileName; + } } } @@ -39,21 +40,29 @@ namespace ICSharpCode.XmlEditor AddInTreeNode node = AddInTree.GetTreeNode("/SharpDevelop/Workbench/FileFilter"); if (node != null) { + string xmlFileFilter = GetFileFilter(node, "Xml"); + string allFilesFilter = GetFileFilter(node, "AllFiles"); + string xslFileFilter = GetFileFilter(node, "Xsl"); - string xmlFileFilter = (string)node.BuildChildItem("Xml", null, null); - string allFilesFilter = (string)node.BuildChildItem("AllFiles", null, null); - string xslFileFilter = (string)node.BuildChildItem("Xsl", null, null); - - dialog.Filter = string.Concat(xslFileFilter, "|", xmlFileFilter, "|", allFilesFilter); + dialog.Filter = String.Join("|", xslFileFilter, xmlFileFilter, allFilesFilter); dialog.FilterIndex = 1; } - if (dialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (dialog.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { return dialog.FileName; } } return null; } + + static string GetFileFilter(AddInTreeNode node, string filterName) + { + FileFilterDescriptor fileFilter = node.BuildChildItem(filterName, null, null) as FileFilterDescriptor; + if (fileFilter != null) { + return fileFilter.ToString(); + } + return String.Empty; + } } }