@Override
		public String htmlExplain(String desc) {
			StringBuilder html = new StringBuilder();
			if (desc != null)
				html.append("<p>").append(desc).append(":");
			html.append("<table border=\"1\" width=\"100%\">");
			html.append("<tr>");
			html.append("<td width=\"5%\"></td>");
			int width = src.size();
			int height = 0;
			for (TagState[] st : lists.lists) {
				if (st.length > height) {
					height = st.length;
				}
			}
			double size = 95.0 / width;
			for (int i = 0; i < width; i++)
				html.append("<td width=\"" + size + "%\" bgcolor=\"red\">")
						.append(src.get(i).image).append("</td>");
			html.append("</tr>");
			TagState state;
			for (int i = 0; i < height; i++) {
				html.append("<tr>");
				html.append("<td width=\"5%\">" + i + "</td>");
				for (int j = 0; j < width; j++) {
					if (lists.lists[j].length > i) {
						state = lists.lists[j][i];
						html.append("<td width=\"").append(size).append("%\">")
								.append(state.state).append("</td>");
					} else {
						html.append("<td width=\"" + size + "%\">&nbsp</td>");
					}
				}
				html.append("</tr>");
			}
			html.append("</table>");

			return html.toString();
		}