You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bo...@apache.org on 2012/10/21 16:26:10 UTC

git commit: Fixed TAP5-2013: "Parameters" table often too wide in component javadocs Also fixed broken tapestry.png image on JavaDoc index page

Updated Branches:
  refs/heads/master 0e2f7203f -> 4a2facda1


Fixed TAP5-2013: "Parameters" table often too wide in component javadocs
Also fixed broken tapestry.png image on JavaDoc index page

Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/4a2facda
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/4a2facda
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/4a2facda

Branch: refs/heads/master
Commit: 4a2facda1a83b126d64833a616859c99316b2e7e
Parents: 0e2f720
Author: bharner <bo...@apache.org>
Authored: Sun Oct 21 10:20:31 2012 -0400
Committer: bharner <bo...@apache.org>
Committed: Sun Oct 21 10:20:31 2012 -0400

----------------------------------------------------------------------
 src/javadoc/stylesheet.css                         |   47 ++++++++--
 .../tapestry5/javadoc/TapestryDocTaglet.java       |   66 +++++++++++----
 2 files changed, 88 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4a2facda/src/javadoc/stylesheet.css
----------------------------------------------------------------------
diff --git a/src/javadoc/stylesheet.css b/src/javadoc/stylesheet.css
index c120a86..f478c88 100644
--- a/src/javadoc/stylesheet.css
+++ b/src/javadoc/stylesheet.css
@@ -28,7 +28,7 @@ a:hover
 /* Headings */
 h1
 {
-     background: url(images/tapestry.png) no-repeat;
+     background: url(tapestry.png) no-repeat;
         font-size:28px;
         color:#007c00;
         padding: 2.0em;
@@ -36,7 +36,12 @@ h1
 h1,h2,h3 {
         color: #569D2F;
 }
- 
+
+wbr:after
+{
+        content: "\00200B";  /* IE fix */
+}
+
 /* Table colors */
 
 table
@@ -62,13 +67,41 @@ th
 .TableHeadingColor th
 {
         background-color: #569D2F;
-        background-image: url(doc-files/th-background.png);
         background-repeat: repeat-x;
         color:#fff;
         font-size:14px;
         height:26px;
 }
- 
+.TableHeadingColor th font[size="+2"] 
+{ 
+        font-size: 10pt; 
+}
+table.parameters tbody th 
+{
+        background: #F4F4F4;
+        color: #333;
+        border: 1px dotted #ccc;
+        font-weight: normal;
+}
+table.parameters thead tr.columnHeaders th 
+{
+	   background: #e6e6e6; 
+	   color: #6e6e6e; 
+       border-left: 1px dotted #999;
+       border-right: 1px dotted #999;
+}
+body > dt > b 
+{ 
+        display: block; 
+        padding: 0.3em 0 0 0.3em; 
+        margin-top: 1em; 
+        background: #569D2F; 
+        color: #fff; 
+        border: 1px solid black;
+        font-size: 14px; 
+        height: 26px; 
+}
+
 .TableSubHeadingColor  
 {
         background: #f7ffee;
@@ -169,9 +202,3 @@ tr.TableRowColor:hover
 {
         border:none;
 }
- 
-/* Override sizes in font tags */
-font
-{
-        font: inherit !important;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4a2facda/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
----------------------------------------------------------------------
diff --git a/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java b/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
index 260ca26..f4bb4d1 100644
--- a/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
+++ b/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
@@ -166,10 +166,16 @@ public class TapestryDocTaglet implements Taglet, ClassDescriptionSource
         if (cd.parameters.isEmpty())
             return;
 
-        writer.write("<dt><b>Parameters:</b></dt><dd>");
-
-        writer.write("<table border='1' cellpadding='3' cellspacing='0'>"
-                + "<tr><th>Name</th><th>Type</th><th>Flags</th><th>Default</th><th>Default Prefix</th><th>Since</th><th>Description</th></tr>");
+        writer.write("</dl>"
+        		+ "<table width='100%' cellspacing='0' cellpadding='3' border='1' class='parameters'>"
+        		+ "<thead><tr class='TableHeadingColor' bgcolor='#CCCCFF'>"
+        		+ "<th align='left' colspan='7'>"
+        		+ "<font size='+2'><b>Component Parameters</b></font>"
+        		+ "</th></tr>"
+        		+ "<tr class='columnHeaders'>"
+        		+ "<th>Name</th><th>Description</th><th>Type</th><th>Flags</th><th>Default</th>"
+                + "<th>Default Prefix</th><th>Since</th>"
+        		+ "</tr></thead><tbody>");
 
         for (String name : InternalUtils.sortedKeys(cd.parameters))
         {
@@ -178,15 +184,20 @@ public class TapestryDocTaglet implements Taglet, ClassDescriptionSource
             writerParameter(pd, writer);
         }
 
-        writer.write("</table></dd>");
+        writer.write("</tbody></table></dd>");
     }
 
     private void writerParameter(ParameterDescription pd, Writer writer) throws IOException
     {
         writer.write("<tr>");
 
-        element(writer, "td", pd.name);
-        element(writer, "td", pd.type);
+        element(writer, "th", pd.name);
+
+        writer.write("<td>");
+        pd.writeDescription(writer);
+        writer.write("</td>");
+
+        element(writer, "td", addWordBreaks(shortenClassName(pd.type)));
 
         List<String> flags = CollectionFactory.newList();
 
@@ -200,15 +211,11 @@ public class TapestryDocTaglet implements Taglet, ClassDescriptionSource
             flags.add("Not Null");
 
         element(writer, "td", InternalUtils.join(flags));
-        element(writer, "td", pd.defaultValue);
+        element(writer, "td", addWordBreaks(pd.defaultValue));
         element(writer, "td", pd.defaultPrefix);
         element(writer, "td", pd.since);
 
-        writer.write("<td>");
-
-        pd.writeDescription(writer);
-
-        writer.write("</td></tr>");
+        writer.write("</tr>");
     }
 
     private void writeEvents(ClassDescription cd, Writer writer) throws IOException
@@ -216,7 +223,10 @@ public class TapestryDocTaglet implements Taglet, ClassDescriptionSource
         if (cd.events.isEmpty())
             return;
 
-        writer.write("<dt><b>Events:</b></dt><dd><dl>");
+        writer.write("<p><table width='100%' cellspacing='0' cellpadding='3' border='1' class='parameters'>"
+        		+ "<thead><tr class='TableHeadingColor' bgcolor='#CCCCFF'>"
+        		+ "<th align='left'>"
+        		+ "<font size='+2'><b>Events:</b></font></th></tr></thead></table></p><dl>");
 
         for (String name : InternalUtils.sortedKeys(cd.events))
         {
@@ -230,7 +240,33 @@ public class TapestryDocTaglet implements Taglet, ClassDescriptionSource
             }
         }
 
-        writer.write("</dl></dd>");
+        writer.write("</dl>");
+    }
+    
+    /**
+	 * Insert a <wbr/> tag after each period and colon in the given string, to
+	 * allow browsers to break words at those points. (Otherwise the Parameters
+	 * tables are too wide.)
+	 * 
+	 * @param words
+	 *            any string, possibly containing periods or colons
+	 * @return the new string, possibly containing <wbr/> tags
+	 */
+    private String addWordBreaks(String words)
+    {
+		return words.replace(".", ".<wbr/>").replace(":", ":<wbr/>");
+    }
+    
+    /**
+     * Shorten the given class name by removing built-in Java packages
+     * (currently just java.lang)
+     * 
+     * @param className name of class, with package
+     * @return potentially shorter class name
+     */
+    private String shortenClassName(String name)
+    {
+    	return name.replace("java.lang.", "");
     }
 
     private void streamXdoc(ClassDoc classDoc, Writer writer) throws Exception