From: Gert D. <dri...@us...> - 2004-07-11 13:41:04
|
Update of /cvsroot/nant/nant/src/NDoc.Documenter.NAnt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21808 Modified Files: NAntDocumenter.cs NAntXsltUtilities.cs Log Message: create filter index page, document filters Index: NAntDocumenter.cs =================================================================== RCS file: /cvsroot/nant/nant/src/NDoc.Documenter.NAnt/NAntDocumenter.cs,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** NAntDocumenter.cs 3 Jul 2004 14:44:59 -0000 1.33 --- NAntDocumenter.cs 11 Jul 2004 13:40:55 -0000 1.34 *************** *** 45,49 **** private XslTransform _xsltTypeIndex; private XslTransform _xsltFunctionIndex; ! private XslTransform _xsltTypeDoc; private XslTransform _xsltFunctionDoc; private XmlDocument _xmlDocumentation; --- 45,50 ---- private XslTransform _xsltTypeIndex; private XslTransform _xsltFunctionIndex; ! private XslTransform _xsltFilterIndex; ! private XslTransform _xsltTypeDoc; private XslTransform _xsltFunctionDoc; private XmlDocument _xmlDocumentation; *************** *** 137,140 **** --- 138,142 ---- Directory.CreateDirectory(Path.Combine(OutputDirectory, "elements")); Directory.CreateDirectory(Path.Combine(OutputDirectory, "enums")); + Directory.CreateDirectory(Path.Combine(OutputDirectory, "filters")); } catch (Exception ex) { throw new DocumenterException("The output directories could not" *************** *** 195,198 **** --- 197,206 ---- TransformAndWriteResult(_xsltTypeIndex, indexArguments, "types/index.html"); + buildStepProgress += 10; + OnDocBuildingStep(buildStepProgress, "Creating Filter Index Page..."); + + // transform nant type index page transform + TransformAndWriteResult(_xsltFilterIndex, indexArguments, "filters/index.html"); + OnDocBuildingStep(buildStepProgress, "Creating Function Index Page..."); // transform nant function index page transform *************** *** 273,276 **** --- 281,287 ---- refTypeString = "Enum"; break; + case ElementDocType.Filter: + refTypeString = "Filter"; + break; default: refTypeString = "Other?"; *************** *** 367,370 **** --- 378,382 ---- _xsltTypeIndex = new XslTransform(); _xsltFunctionIndex = new XslTransform(); + _xsltFilterIndex = new XslTransform(); _xsltTypeDoc = new XslTransform(); _xsltFunctionDoc = new XslTransform(); *************** *** 374,377 **** --- 386,391 ---- MakeTransform(_xsltTypeIndex, "type-index.xslt"); OnDocBuildingProgress(40); + MakeTransform(_xsltFilterIndex, "filter-index.xslt"); + OnDocBuildingProgress(50); MakeTransform(_xsltFunctionIndex, "function-index.xslt"); OnDocBuildingProgress(60); *************** *** 402,406 **** DataTypeElement = 2, Element = 3, ! Enum = 4 } } --- 416,421 ---- DataTypeElement = 2, Element = 3, ! Enum = 4, ! Filter = 5 } } Index: NAntXsltUtilities.cs =================================================================== RCS file: /cvsroot/nant/nant/src/NDoc.Documenter.NAnt/NAntXsltUtilities.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** NAntXsltUtilities.cs 3 Jul 2004 14:44:59 -0000 1.20 --- NAntXsltUtilities.cs 11 Jul 2004 13:40:55 -0000 1.21 *************** *** 28,31 **** --- 28,32 ---- using NAnt.Core; using NAnt.Core.Attributes; + using NAnt.Core.Filters; namespace NDoc.Documenter.NAnt { *************** *** 112,116 **** _elementNames[id] = memberNode.Attributes["name"].Value; break; ! } } } --- 113,117 ---- _elementNames[id] = memberNode.Attributes["name"].Value; break; ! } } } *************** *** 285,291 **** } ! string returnName = cref.Substring(cref.LastIndexOf(".") + 1); ! //System.Console.WriteLine("GetName: {0} = {1}", cref, returnName); ! return returnName; } --- 286,290 ---- } ! return cref.Substring(cref.LastIndexOf(".") + 1); } *************** *** 359,362 **** --- 358,370 ---- } + // check if type is a filter + if (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(Filter).FullName + "']") != null) { + if (typeNode.SelectSingleNode("attribute[@name='" + typeof(ElementNameAttribute).FullName + "']") != null) { + return ElementDocType.Filter; + } else { + return ElementDocType.Element; + } + } + // check if type is an element if (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(Element).FullName + "']") != null) { *************** *** 393,396 **** --- 401,416 ---- /// <summary> + /// Determines whether the given cref points to a <c>datatype</c>. + /// </summary> + /// <param name="cref">The cref to check.</param> + /// <returns> + /// <see langword="true" /> if the given cref points to a <c>datatype</c>; + /// otherwise, <see langword="false" />. + /// </returns> + public bool IsFilter(string cref) { + return GetElementDocTypeByID(cref) == ElementDocType.Filter; + } + + /// <summary> /// Determines whether the given cref points to a <c>task</c>. /// </summary> *************** *** 422,431 **** return "<" + taskName + ">"; } ! // make sure the type has a ElementNameAttribute assigned to it XmlAttribute elementNameAttribute = typeNode.SelectSingleNode("attribute[@name='" + typeof(ElementNameAttribute).FullName + "']/property[@name='Name']/@value") as XmlAttribute; ! if (elementNameAttribute != null && ! (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(DataTypeBase).FullName + "']")!= null)) { ! return elementNameAttribute.Value; } --- 442,458 ---- return "<" + taskName + ">"; } ! // make sure the type has a ElementNameAttribute assigned to it XmlAttribute elementNameAttribute = typeNode.SelectSingleNode("attribute[@name='" + typeof(ElementNameAttribute).FullName + "']/property[@name='Name']/@value") as XmlAttribute; ! if (elementNameAttribute != null) { ! // check if we're dealing with a data type ! if (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(DataTypeBase).FullName + "']")!= null) { ! return "<" + elementNameAttribute.Value + ">"; ! } ! ! // check if we're dealing with a filter ! if (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(Filter).FullName + "']")!= null) { ! return "<" + elementNameAttribute.Value + ">"; ! } } *************** *** 461,467 **** /// </summary> /// <param name="propertyNode">The XmlNode to look for a name.</param> ! /// <returns>The <see cref="TaskNameAttribute.Name"/> if the attribute exists for the node.</returns> /// <remarks> ! /// The class is also checked to make sure it is derived from <see cref="Task"/> /// </remarks> internal static string GetTaskNameForType(XmlNode typeNode) { --- 488,494 ---- /// </summary> /// <param name="propertyNode">The XmlNode to look for a name.</param> ! /// <returns>The <see cref="TaskNameAttribute.Name" /> if the attribute exists for the node.</returns> /// <remarks> ! /// The class is also checked to make sure it is derived from <see cref="Task" /> /// </remarks> internal static string GetTaskNameForType(XmlNode typeNode) { *************** *** 557,562 **** if (elementNameAttribute != null) { return "types/" + elementNameAttribute.Value + ".html"; ! } else { ! return "elements/" + typeNode.Attributes["id"].Value.Substring(2) + ".html"; } } --- 584,596 ---- if (elementNameAttribute != null) { return "types/" + elementNameAttribute.Value + ".html"; ! } ! } ! ! // check if type derives from NAnt.Core.Filters.Filter ! if (typeNode.SelectSingleNode("descendant::base[@id='T:" + typeof(Filter).FullName + "']") != null) { ! // make sure the type has a ElementName assigned to it ! XmlAttribute elementNameAttribute = typeNode.SelectSingleNode("attribute[@name='" + typeof(ElementNameAttribute).FullName + "']/property[@name='Name']/@value") as XmlAttribute; ! if (elementNameAttribute != null) { ! return "filters/" + elementNameAttribute.Value + ".html"; } } |