예제 #1
0
		protected XmlNode GetDataOwnerInfo(HtmlItem[] items){
			XmlNode result = Html.CreateDocumentFragment();
			if(items == null || items.Length == 0) return result;
			var elemList = new List<HtmlItem>();
			var elemGroupList = new List<HtmlItem>();
			var attrList = new List<HtmlItem>();
			foreach(HtmlItem i in items){
				if(i is HtmlElement){
					elemList.Add(i);
				} else if(i is HtmlElementGroup){
					elemGroupList.Add(i);
				} else if(i is HtmlAttribute){
					attrList.Add(i);
				}
			}
			if(elemList.Count > 0){
				XmlElement p = Html.P();
				p.InnerText = "このデータを持つ要素 …… ";
				p.AppendChild(GetHtmlItemList(elemList.ToArray(), ", "));
				result.AppendChild(p);
			}
			if(elemGroupList.Count > 0){
				XmlElement p = Html.P();
				p.InnerText = "このデータを持つグループ …… ";
				p.AppendChild(GetHtmlItemList(elemGroupList.ToArray(), ", "));
				result.AppendChild(p);
			}
			if(attrList.Count > 0){
				XmlElement p = Html.P();
				p.InnerText = "このデータを持つ属性 …… ";
				p.AppendChild(GetHtmlItemList(attrList.ToArray(), ", "));
				result.AppendChild(p);
			}
			return result;
		}
예제 #2
0
// プロテクトメソッド


		// HtmlItem の解説を取得します。
		protected XmlNode GetDescription(HtmlItem item){
			XmlNode result = Html.CreateDocumentFragment();
			if(item == null) return result;
			if(item.Description == null) return result;
			if(item.Description.InnerText.Length == 0) return result;
			result.AppendChild(Html.H(3, null, item.Name + "の解説"));
			result.AppendChild(ParseNode(item.Description.ChildNodes, 4));
			return result;
		}
예제 #3
0
		protected XmlNode GetHtmlItemList(HtmlItem[] items, string sepchar){
			XmlNode result = Html.CreateDocumentFragment();
			if(items == null) return result;
			for(int i = 0; i < items.Length; i++){
				if(i > 0 && sepchar != null) result.AppendChild(Html.Text(sepchar));
				HtmlItem hi = items[i];
				if(hi is HtmlMisc){
					result.AppendChild(Html.Text(hi.Name));
				} else {
					result.AppendChild(GetHtmlItemLink(hi, true));
				}
			}
			return result;
		}
예제 #4
0
		// 親を追加されても何もしない
		public override void AddParent(HtmlItem item){}
예제 #5
0
// メソッド

		/// <summary>
		/// 親要素を追加します。
		/// </summary>
		public virtual void AddParent(HtmlItem item){
			myParents.Add(item);
		}
예제 #6
0
		protected XmlNode GetHtmlItemList(HtmlItem[] items){
			return GetHtmlItemList(items, null);
		}
예제 #7
0
		// HtmlItem の配列をリンクにします。
		protected XmlNode GetHtmlItemList(HtmlItem item){
			return GetHtmlItemList(new HtmlItem[]{item}, null);
		}
예제 #8
0
		protected XmlNode GetHtmlItemLink(HtmlItem item, bool useSpecName){
			AbsPath path = BasePath.Combine(item.LinkId, item.Id.PathEncode());
			XmlElement a = Html.A(path);
			a.InnerText = useSpecName ? item.SpecName : item.Name;
			return a;
		}
예제 #9
0
		// HtmlItem へのリンクを取得します。
		// true をつけると、Name ではなく SpecName を使います。
		protected XmlNode GetHtmlItemLink(HtmlItem item){
			return GetHtmlItemLink(item, false);
		}
예제 #10
0
		protected XmlNode GetAttributeOwnerInfo(HtmlItem[] items){
			XmlNode result = Html.CreateDocumentFragment();
			if(items == null || items.Length == 0) return result;
			var elemList = new List<HtmlItem>();
			var groupList = new List<HtmlItem>();
			foreach(HtmlItem i in items){
				if(i is HtmlElement){
					elemList.Add(i);
				} else if(i is HtmlAttributeGroup){
					groupList.Add(i);
				}
			}
			if(groupList.Count > 0){
				XmlElement p = Html.P();
				p.InnerText = "この属性が属するグループ …… ";
				p.AppendChild(GetHtmlItemList(groupList.ToArray(), ", "));
				result.AppendChild(p);
			}
			if(elemList.Count > 0){
				XmlElement p = Html.P();
				p.InnerText = "この属性を持つ要素 …… ";
				if(groupList.Count > 0) p.PrependChild(Html.Text("他に"));
				p.AppendChild(GetHtmlItemList(elemList.ToArray(), ", "));
				result.AppendChild(p);
			}
			return result;
		}