This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 0341ad2  Javadocs.
0341ad2 is described below

commit 0341ad24c0a46a885e3cd902bd7876ed78717f9f
Author: JamesBognar <[email protected]>
AuthorDate: Thu Aug 30 14:00:28 2018 -0400

    Javadocs.
---
 ...erver.HtmlDocAnnotation.PredefinedWidgets.1.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.2.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.3.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.4.png | Bin
 juneau-doc/src/main/javadoc/overview.html          | 224 +++++++++++++++++++--
 .../27.HtmlDocAnnotation/02.PredefinedWidgets.html | 222 ++++++++++++++++++--
 ...erver.HtmlDocAnnotation.PredefinedWidgets.1.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.2.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.3.png | Bin
 ...erver.HtmlDocAnnotation.PredefinedWidgets.4.png | Bin
 .../juneau/rest/widget/ContentTypeMenuItem.java    |   2 +-
 .../apache/juneau/rest/widget/MenuItemWidget.java  |  35 +---
 .../apache/juneau/rest/widget/PoweredByJuneau.java |  21 +-
 .../apache/juneau/rest/widget/QueryMenuItem.java   |  46 +----
 .../apache/juneau/rest/widget/ThemeMenuItem.java   |  26 +--
 .../org/apache/juneau/rest/widget/Tooltip.java     |  35 +---
 .../java/org/apache/juneau/rest/widget/Widget.java |  91 ---------
 .../widget/doc-files/PoweredByApacheWidget.png     | Bin 4368 -> 0 bytes
 18 files changed, 425 insertions(+), 277 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png
similarity index 100%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
copy to 
juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png
similarity index 100%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
copy to 
juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png
similarity index 100%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
copy to 
juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
 
b/juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png
similarity index 100%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
copy to 
juneau-doc/src/main/javadoc/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index c3c5de8..57c3b0a 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -337,7 +337,7 @@
                <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation'>@HtmlDoc</a></p>
                <ol>
                        <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation.Widgets'>Widgets</a></p>
-                       <li><p class='todo'><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>Predefined 
Widgets</a></p>
+                       <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>Predefined 
Widgets</a></p>
                        <li><p class='updated'><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization'>UI 
Customization</a></p>
                        <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HtmlDocAnnotation.Stylesheets'>Stylesheets</a></p>
                </ol>
@@ -18748,48 +18748,244 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets' 
id='juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>7.27.2 - Predefined 
Widgets</a></h4>
+<h4 class='topic new' onclick='toggle(this)'><a 
href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets' 
id='juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>7.27.2 - Predefined 
Widgets</a></h4>
 <div class='topic'><!-- START: 7.27.2 - 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
+<p>
+       The {@link org.apache.juneau.rest.widget} package contains predefined 
reusable widgets.
+</p>
 <ul class='doctree'>
-       <li class='jac'>{@link org.apache.juneau.rest.widget.Widget}
+       <li class='jp'>{@link org.apache.juneau.rest.widget}
        <ul>
-               <li class='jac'>{@link 
org.apache.juneau.rest.widget.MenuItemWidget}
+               <li class='jac'>{@link org.apache.juneau.rest.widget.Widget}
                <ul>
-                       <li class='jc'>{@link 
org.apache.juneau.rest.widget.ContentTypeMenuItem}
-                       <li class='jc'>{@link 
org.apache.juneau.rest.widget.QueryMenuItem}
-                       <li class='jc'>{@link 
org.apache.juneau.rest.widget.ThemeMenuItem}
+                       <li class='jac'>{@link 
org.apache.juneau.rest.widget.MenuItemWidget}
+                       <ul>
+                               <li class='jc'>{@link 
org.apache.juneau.rest.widget.ContentTypeMenuItem}
+                               <li class='jc'>{@link 
org.apache.juneau.rest.widget.QueryMenuItem}
+                               <li class='jc'>{@link 
org.apache.juneau.rest.widget.ThemeMenuItem}
+                       </ul>
+                       <li class='jc'>{@link 
org.apache.juneau.rest.widget.PoweredByJuneau}
                </ul>
-               <li class='jc'>{@link 
org.apache.juneau.rest.widget.PoweredByJuneau}
+               <li class='jc'>{@link org.apache.juneau.rest.widget.Tooltip}
        </ul>
-       <li class='jc'>{@link org.apache.juneau.rest.widget.Tooltip}
 </ul>
 
-<h5 class='topic'>Widget</h5>
+<h5 class='topic'>MenuItemWidget</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.MenuItemWidget} is an abstract 
class for rendering menu items with drop-downs.
+       It defines some simple CSS and Javascript for enabling drop-down menus 
in the nav section of the page (although 
+       nothing keeps you from using it in an arbitrary location in the page).
+</p>
+<p>
+       The script specifies a <js>"menuClick(element)"</js> function that 
toggles the visibility of the next sibling of the element.
+</p>
+<p>
+       Subclasses implement the following two methods:
+</p>
+<ul class='doctree'>
+       <li class='jac'>{@link org.apache.juneau.rest.widget.MenuItemWidget}
+       <ul>
+               <li class='jm'>{@link 
org.apache.juneau.rest.widget.MenuItemWidget#getLabel(RestRequest) 
getLabel(RestRequest)} - The menu item label.
+               <li class='jm'>{@link 
org.apache.juneau.rest.widget.MenuItemWidget#getContent(RestRequest) 
getContent(RestRequest)} - The menu item content.
+       </ul>
+</ul>
+<p>
+       For example, to render a link that brings up a simple dialog in a div 
tag:
+</p>
+<p class='bpcode w800'>
+       <ja>@Override</ja>
+       <jk>public</jk> String getLabel() {
+               <jk>return</jk> <js>"my-menu-item"</js>;
+       };
+ 
+       <ja>@Override</ja>
+       <jk>public</jk> Div getLabel() {
+               <jk>return</jk> 
Html5Builder.<jsm>div</jsm>(<js>"Surprise!"</js>).style(<js>"color:red"</js>);
+       };
 </p>
-
-<h5 class='topic'>MenuItemWidget</h5>
 <p>
+       The HTML content returned by the {@link 
org.apache.juneau.rest.widget.MenuItemWidget#getHtml(RestRequest) 
getHtml(RestRequest)} method is added where the <js>"$W{...}"</js> is 
referenced in the page.
 </p>
 
 <h5 class='topic'>ContentTypeMenuItem</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.ContentTypeMenuItem} is a 
predefined Widget that returns back a list of hyperlinks for rendering the 
contents of a page in a variety of content types.
+</p>
+<p>
+       The variable it resolves is <js>"$W{ContentTypeMenuItem}"</js>.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides a drop-down menu 
item for rendering all other supported content types in plain text:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       ContentTypeMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               )
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
+</p>
+<p>
+       It renders the following popup-box:
 </p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png'>
 
 <h5 class='topic'>QueryMenuItem</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.QueryMenuItem} is a predefined 
Widget that returns a menu-item drop-down form for entering search/view/sort 
arguments.
+</p>
+<p>
+       The variable it resolves is <js>"$W{QueryMenuItem}"</js>.
+</p>
+<p>
+       This widget is designed to be used in conjunction with the {@link 
org.apache.juneau.rest.converters.Queryable} converter, although implementations
+       can process the query parameters themselves if they wish to do so by 
using the {@link org.apache.juneau.rest.RequestQuery#getSearchArgs()}
+       method to retrieve the arguments and process the data themselves.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides
+       search/view/sort capabilities against the collection of POJOs:
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       QueryMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               ),
+               converters=Queryable.<jk>class</jk>
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
+</p>
+<p>
+       It renders the following popup-box:
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png'>
+<p>
+       Tooltips are provided by hovering over the field names.
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png'>
+
+<p>
+       When submitted, the form submits a GET request against the current URI 
with special GET search API query parameters.
+       (e.g. 
<js>"?s=column1=Foo*&amp;v=column1,column2&amp;o=column1,column2-&amp;p=100&amp;l=100"</js>).
+       The {@link org.apache.juneau.rest.converters.Queryable} class knows how 
to perform these filters against collections of POJOs.
 </p>
 
 <h5 class='topic'>ThemeMenuItem</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.ThemeMenuItem} is a predefined 
Widget that returns back a list of hyperlinks for rendering the contents of a 
page in the various default styles.
+</p>
+<p>
+       The variable it resolves is <js>"$W{ThemeMenuItem}"</js>.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides
+       a drop-down menu item for rendering all other supported content types 
in plain text:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       ThemeMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               )
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
 </p>
 
 <h5 class='topic'>PoweredByJuneau</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.PoweredByJuneau} is a predefined 
Widget that places a powered-by-Juneau message on a page.
 </p>
-
+<p>
+       The variable it resolves is <js>"$W{PoweredByJuneau}"</js>.
+</p>
+<p>
+       It produces a simple Apache Juneau icon floating on the right.
+       Typically it's used in the footer of the page, as shown below in the 
<code>AddressBookResource</code> from the examples:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestResource</ja>(
+               path=<js>"/addressBook"</js>,
+               widgets={
+                       PoweredByJuneau.<jk>class</jk>
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       footer=<js>"$W{PoweredByJuneau}"</js>
+               )
+</p>
+<p>
+       It renders the following image:
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png'>
+ 
 <h5 class='topic'>Tooltip</h5>
 <p>
+       {@link org.apache.juneau.rest.widget.Tooltip} is a predefined template 
for adding tooltips to HTML5 bean constructs, typically in menu item widgets.
+</p>
+<p>
+       The following examples shows how tooltips can be added to a menu item 
widget.
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> MyFormMenuItem <jk>extends</jk> MenuItemWidget {
+       
+               <ja>@Override</ja>
+               <jk>public</jk> String getLabel(RestRequest req) 
<jk>throws</jk> Exception {
+                       <jk>return</jk> <js>"myform"</js>;
+               }
+       
+               <ja>@Override</ja>
+               <jk>public</jk> Object getContent(RestRequest req) 
<jk>throws</jk> Exception {
+                       <jk>return</jk> div(
+                               
<jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/form"</js>).method(<jsf>POST</jsf>).children(
+                                       <jsm>table</jsm>(
+                                               <jsm>tr</jsm>(
+                                                       
<jsm>th</jsm>(<js>"Field 1:"</js>),
+                                                       
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field1"</js>).type(<js>"text"</js>)),
+                                                       
<jsm>td</jsm>(<jk>new</jk> Tooltip(<js>"(?)"</js>, <js>"This is field 
#1!"</js>, br(), <js>"(e.g. '"</js>, code(<js>"Foo"</js>), <js>"')"</js>))
+                                               ),
+                                               <jsm>tr</jsm>(
+                                                       
<jsm>th</jsm>(<js>"Field 2:"</js>),
+                                                       
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field2"</js>).type(<js>"text"</js>)),
+                                                       
<jsm>td</jsm>(<jk>new</jk> Tooltip(<js>"(?)"</js>, <js>"This is field 
#2!"</js>, br(), <js>"(e.g. '"</js>, code(<js>"Bar"</js>), <js>"')"</js>))
+                                               )
+                                       )
+                               )
+                       );
+               }
+       }
 </p>
 </div><!-- END: 7.27.2 - 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
 
@@ -18904,7 +19100,7 @@
 
 <p>
        The default annotation values use {@link 
org.apache.juneau.config.vars.ConfigVar $C} variables to pull in values from an 
optional
-       external configuration file, such as the one shown below:
+       external configuration file such as the one shown below:
 </p>
 <p class='bpcode w800'>
        
<cc>#=======================================================================================================================
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html
index b54de40..3d9f834 100644
--- 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html
+++ 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html
@@ -13,46 +13,242 @@
  
***************************************************************************************************************************/
  -->
 
-{todo} Predefined Widgets
+{new} Predefined Widgets
 
+<p>
+       The {@link oajr.widget} package contains predefined reusable widgets.
+</p>
 <ul class='doctree'>
-       <li class='jac'>{@link oajr.widget.Widget}
+       <li class='jp'>{@link oajr.widget}
        <ul>
-               <li class='jac'>{@link oajr.widget.MenuItemWidget}
+               <li class='jac'>{@link oajr.widget.Widget}
                <ul>
-                       <li class='jc'>{@link oajr.widget.ContentTypeMenuItem}
-                       <li class='jc'>{@link oajr.widget.QueryMenuItem}
-                       <li class='jc'>{@link oajr.widget.ThemeMenuItem}
+                       <li class='jac'>{@link oajr.widget.MenuItemWidget}
+                       <ul>
+                               <li class='jc'>{@link 
oajr.widget.ContentTypeMenuItem}
+                               <li class='jc'>{@link oajr.widget.QueryMenuItem}
+                               <li class='jc'>{@link oajr.widget.ThemeMenuItem}
+                       </ul>
+                       <li class='jc'>{@link oajr.widget.PoweredByJuneau}
                </ul>
-               <li class='jc'>{@link oajr.widget.PoweredByJuneau}
+               <li class='jc'>{@link oajr.widget.Tooltip}
        </ul>
-       <li class='jc'>{@link oajr.widget.Tooltip}
 </ul>
 
-<h5 class='topic'>Widget</h5>
+<h5 class='topic'>MenuItemWidget</h5>
 <p>
+       {@link oajr.widget.MenuItemWidget} is an abstract class for rendering 
menu items with drop-downs.
+       It defines some simple CSS and Javascript for enabling drop-down menus 
in the nav section of the page (although 
+       nothing keeps you from using it in an arbitrary location in the page).
+</p>
+<p>
+       The script specifies a <js>"menuClick(element)"</js> function that 
toggles the visibility of the next sibling of the element.
 </p>
-
-<h5 class='topic'>MenuItemWidget</h5>
 <p>
+       Subclasses implement the following two methods:
+</p>
+<ul class='doctree'>
+       <li class='jac'>{@link oajr.widget.MenuItemWidget}
+       <ul>
+               <li class='jm'>{@link 
oajr.widget.MenuItemWidget#getLabel(RestRequest) getLabel(RestRequest)} - The 
menu item label.
+               <li class='jm'>{@link 
oajr.widget.MenuItemWidget#getContent(RestRequest) getContent(RestRequest)} - 
The menu item content.
+       </ul>
+</ul>
+<p>
+       For example, to render a link that brings up a simple dialog in a div 
tag:
+</p>
+<p class='bpcode w800'>
+       <ja>@Override</ja>
+       <jk>public</jk> String getLabel() {
+               <jk>return</jk> <js>"my-menu-item"</js>;
+       };
+ 
+       <ja>@Override</ja>
+       <jk>public</jk> Div getLabel() {
+               <jk>return</jk> 
Html5Builder.<jsm>div</jsm>(<js>"Surprise!"</js>).style(<js>"color:red"</js>);
+       };
+</p>
+<p>
+       The HTML content returned by the {@link 
oajr.widget.MenuItemWidget#getHtml(RestRequest) getHtml(RestRequest)} method is 
added where the <js>"$W{...}"</js> is referenced in the page.
 </p>
 
 <h5 class='topic'>ContentTypeMenuItem</h5>
 <p>
+       {@link oajr.widget.ContentTypeMenuItem} is a predefined Widget that 
returns back a list of hyperlinks for rendering the contents of a page in a 
variety of content types.
+</p>
+<p>
+       The variable it resolves is <js>"$W{ContentTypeMenuItem}"</js>.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides a drop-down menu 
item for rendering all other supported content types in plain text:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       ContentTypeMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               )
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
 </p>
+<p>
+       It renders the following popup-box:
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png'>
 
 <h5 class='topic'>QueryMenuItem</h5>
 <p>
+       {@link oajr.widget.QueryMenuItem} is a predefined Widget that returns a 
menu-item drop-down form for entering search/view/sort arguments.
+</p>
+<p>
+       The variable it resolves is <js>"$W{QueryMenuItem}"</js>.
+</p>
+<p>
+       This widget is designed to be used in conjunction with the {@link 
oajr.converters.Queryable} converter, although implementations
+       can process the query parameters themselves if they wish to do so by 
using the {@link oajr.RequestQuery#getSearchArgs()}
+       method to retrieve the arguments and process the data themselves.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides
+       search/view/sort capabilities against the collection of POJOs:
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       QueryMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               ),
+               converters=Queryable.<jk>class</jk>
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
+</p>
+<p>
+       It renders the following popup-box:
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png'>
+<p>
+       Tooltips are provided by hovering over the field names.
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png'>
+
+<p>
+       When submitted, the form submits a GET request against the current URI 
with special GET search API query parameters.
+       (e.g. 
<js>"?s=column1=Foo*&amp;v=column1,column2&amp;o=column1,column2-&amp;p=100&amp;l=100"</js>).
+       The {@link oajr.converters.Queryable} class knows how to perform these 
filters against collections of POJOs.
 </p>
 
 <h5 class='topic'>ThemeMenuItem</h5>
 <p>
+       {@link oajr.widget.ThemeMenuItem} is a predefined Widget that returns 
back a list of hyperlinks for rendering the contents of a page in the various 
default styles.
+</p>
+<p>
+       The variable it resolves is <js>"$W{ThemeMenuItem}"</js>.
+</p>
+<p>
+       An example of this widget can be found in the 
<code>PetStoreResource</code> in the examples that provides
+       a drop-down menu item for rendering all other supported content types 
in plain text:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(
+               name=<jsf>GET</jsf>,
+               path=<js>"/"</js>,
+               widgets={
+                       ThemeMenuItem.<jk>class</jk>,
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"up: ..."</js>,
+                               <js>"options: ..."</js>,
+                               <js>"$W{QueryMenuItem}"</js>,
+                               <js>"$W{ContentTypeMenuItem}"</js>,
+                               <js>"$W{ThemeMenuItem}"</js>,
+                               <js>"source: ..."</js>
+                       }
+               )
+       )
+       <jk>public</jk> Collection&lt;Pet&gt; getPets() {
 </p>
 
 <h5 class='topic'>PoweredByJuneau</h5>
 <p>
+       {@link oajr.widget.PoweredByJuneau} is a predefined Widget that places 
a powered-by-Juneau message on a page.
 </p>
-
+<p>
+       The variable it resolves is <js>"$W{PoweredByJuneau}"</js>.
+</p>
+<p>
+       It produces a simple Apache Juneau icon floating on the right.
+       Typically it's used in the footer of the page, as shown below in the 
<code>AddressBookResource</code> from the examples:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestResource</ja>(
+               path=<js>"/addressBook"</js>,
+               widgets={
+                       PoweredByJuneau.<jk>class</jk>
+               },
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       footer=<js>"$W{PoweredByJuneau}"</js>
+               )
+</p>
+<p>
+       It renders the following image:
+</p>
+<img class='bordered' 
src='doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png'>
+ 
 <h5 class='topic'>Tooltip</h5>
 <p>
-</p>
\ No newline at end of file
+       {@link oajr.widget.Tooltip} is a predefined template for adding 
tooltips to HTML5 bean constructs, typically in menu item widgets.
+</p>
+<p>
+       The following examples shows how tooltips can be added to a menu item 
widget.
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> MyFormMenuItem <jk>extends</jk> MenuItemWidget {
+       
+               <ja>@Override</ja>
+               <jk>public</jk> String getLabel(RestRequest req) 
<jk>throws</jk> Exception {
+                       <jk>return</jk> <js>"myform"</js>;
+               }
+       
+               <ja>@Override</ja>
+               <jk>public</jk> Object getContent(RestRequest req) 
<jk>throws</jk> Exception {
+                       <jk>return</jk> div(
+                               
<jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/form"</js>).method(<jsf>POST</jsf>).children(
+                                       <jsm>table</jsm>(
+                                               <jsm>tr</jsm>(
+                                                       
<jsm>th</jsm>(<js>"Field 1:"</js>),
+                                                       
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field1"</js>).type(<js>"text"</js>)),
+                                                       
<jsm>td</jsm>(<jk>new</jk> Tooltip(<js>"(?)"</js>, <js>"This is field 
#1!"</js>, br(), <js>"(e.g. '"</js>, code(<js>"Foo"</js>), <js>"')"</js>))
+                                               ),
+                                               <jsm>tr</jsm>(
+                                                       
<jsm>th</jsm>(<js>"Field 2:"</js>),
+                                                       
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field2"</js>).type(<js>"text"</js>)),
+                                                       
<jsm>td</jsm>(<jk>new</jk> Tooltip(<js>"(?)"</js>, <js>"This is field 
#2!"</js>, br(), <js>"(e.g. '"</js>, code(<js>"Bar"</js>), <js>"')"</js>))
+                                               )
+                                       )
+                               )
+                       );
+               }
+       }
+</p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.1.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.2.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.3.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/doc-files/juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets.4.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
index 2e1c2a4..5329534 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
@@ -59,7 +59,7 @@ import org.apache.juneau.utils.*;
  *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public class ContentTypeMenuItem extends MenuItemWidget {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
index bc8ccc6..612f27c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
@@ -24,42 +24,9 @@ import org.apache.juneau.serializer.*;
 /**
  * A subclass of widgets for rendering menu items with drop-down windows.
  *
- * <p>
- * Defines some simple CSS and Javascript for enabling drop-down menus in the 
nav section of the page (although
- * nothing keeps you from using it in an arbitrary location in the page).
- *
- * <p>
- * The script specifies a <js>"menuClick(element)"</js> function that toggles 
the visibility of the next sibling of the
- * element.
- *
- * <p>
- * Subclasses should implement the following two methods:
- * <ul>
- *     <li class='jm'>{@link #getLabel(RestRequest)} - The menu item label.
- *     <li class='jm'>{@link #getContent(RestRequest)} - The menu item content.
- * </ul>
- *
- * <p>
- * For example, to render a link that brings up a simple dialog in a div tag:
- * <p class='bcode w800'>
- *     <ja>@Override</ja>
- *     <jk>public</jk> String getLabel() {
- *             <jk>return</jk> <js>"my-menu-item"</js>;
- *     };
- *
- *     <ja>@Override</ja>
- *     <jk>public</jk> Div getLabel() {
- *             <jk>return</jk> 
Html5Builder.<jsm>div</jsm>(<js>"Surprise!"</js>).style(<js>"color:red"</js>);
- *     };
- * </p>
- *
- * <p>
- * The HTML content returned by the {@link #getHtml(RestRequest)} method is 
added where the <js>"$W{...}"</js> is
- * referenced in the page.
- *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public abstract class MenuItemWidget extends Widget {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneau.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneau.java
index de827e6..5231a47 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneau.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByJuneau.java
@@ -21,28 +21,9 @@ import org.apache.juneau.rest.*;
  * <p>
  * The variable it resolves is <js>"$W{PoweredByJuneau}"</js>.
  *
- * <p>
- * It produces a simple Apache Juneau icon floating on the right.
- * Typically it's used in the footer of the page, as shown below in the 
<code>AddressBookResource</code> from the examples:
- *
- * <p class='bcode w800'>
- *     <ja>@RestResource</ja>(
- *             path=<js>"/addressBook"</js>,
- *             widgets={
- *                     PoweredByJuneau.<jk>class</jk>
- *             },
- *             htmldoc=<ja>@HtmlDoc</ja>(
- *                     footer=<js>"$W{PoweredByJuneau}"</js>
- *             )
- * </p>
- *
- * <p>
- * It renders the following image:
- * <img class='bordered' src='doc-files/PoweredByJuneauWidget.png'>
- *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public class PoweredByJuneau extends Widget {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
index 858b583..f01d403 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
@@ -13,7 +13,6 @@
 package org.apache.juneau.rest.widget;
 
 import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.converters.*;
 
 /**
  * Widget that returns a menu-item drop-down form for entering 
search/view/sort arguments.
@@ -21,52 +20,9 @@ import org.apache.juneau.rest.converters.*;
  * <p>
  * The variable it resolves is <js>"$W{QueryMenuItem}"</js>.
  *
- * <p>
- * This widget is designed to be used in conjunction with the {@link 
Queryable} converter, although implementations
- * can process the query parameters themselves if they wish to do so by using 
the {@link RequestQuery#getSearchArgs()}
- * method to retrieve the arguments and process the data themselves.
- *
- * <p>
- * An example of this widget can be found in the <code>PetStoreResource</code> 
in the examples that provides
- * search/view/sort capabilities against the collection of POJOs:
- * <p class='bcode w800'>
- *     <ja>@RestMethod</ja>(
- *             name=<jsf>GET</jsf>,
- *             path=<js>"/"</js>,
- *             widgets={
- *                     QueryMenuItem.<jk>class</jk>,
- *             },
- *             htmldoc=<ja>@HtmlDoc</ja>(
- *                     navlinks={
- *                             <js>"up: ..."</js>,
- *                             <js>"options: ..."</js>,
- *                             <js>"$W{QueryMenuItem}"</js>,
- *                             <js>"$W{ContentTypeMenuItem}"</js>,
- *                             <js>"$W{ThemeMenuItem}"</js>,
- *                             <js>"source: ..."</js>
- *                     }
- *             ),
- *             converters=Queryable.<jk>class</jk>
- *     )
- *     <jk>public</jk> Collection&lt;Pet&gt; getPets() {
- * </p>
- *
- * <p>
- * It renders the following popup-box:
- * <br><img class='bordered' src='doc-files/QueryMenuItem_1.png'>
- *
- * <p>
- * Tooltips are provided by hovering over the field names.
- * <br><img class='bordered' src='doc-files/QueryMenuItem_2.png'>
- *
- * <p>
- * When submitted, the form submits a GET request against the current URI with 
special GET search API query parameters.
- * <br>(e.g. 
<js>"?s=column1=Foo*&amp;v=column1,column2&amp;o=column1,column2-&amp;p=100&amp;l=100"</js>).
- * <br>The {@link Queryable} class knows how to perform these filters against 
collections of POJOs.
- *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public class QueryMenuItem extends MenuItemWidget {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ThemeMenuItem.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ThemeMenuItem.java
index 07f36f3..b27ecaa 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ThemeMenuItem.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ThemeMenuItem.java
@@ -24,33 +24,9 @@ import org.apache.juneau.utils.*;
  * <p>
  * The variable it resolves is <js>"$W{ThemeMenuItem}"</js>.
  *
- * <p>
- * An example of this widget can be found in the <code>PetStoreResource</code> 
in the examples that provides
- * a drop-down menu item for rendering all other supported content types in 
plain text:
- * <p class='bcode w800'>
- *     <ja>@RestMethod</ja>(
- *             name=<jsf>GET</jsf>,
- *             path=<js>"/"</js>,
- *             widgets={
- *                     ThemeMenuItem.<jk>class</jk>,
- *             },
- *             htmldoc=<ja>@HtmlDoc</ja>(
- *                     navlinks={
- *                             <js>"up: ..."</js>,
- *                             <js>"options: ..."</js>,
- *                             <js>"$W{QueryMenuItem}"</js>,
- *                             <js>"$W{ContentTypeMenuItem}"</js>,
- *                             <js>"$W{ThemeMenuItem}"</js>,
- *                             <js>"source: ..."</js>
- *                     }
- *             )
- *     )
- *     <jk>public</jk> Collection&lt;Pet&gt; getPets() {
- * </p>
- *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public class ThemeMenuItem extends MenuItemWidget {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
index 5173948..ebe7fbd 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Tooltip.java
@@ -26,42 +26,9 @@ import org.apache.juneau.dto.html5.*;
  * Tooltips depend on the existence of the <code>tooltip</code> and 
<code>tooltiptext</code> styles that should be
  * present in the stylesheet for the document.
  *
- * <p>
- * The following examples shows how tooltips can be added to a menu item 
widget.
- *
- * <p class='bcode w800'>
- * <jk>public class</jk> MyFormMenuItem <jk>extends</jk> MenuItemWidget {
- *
- *     <ja>@Override</ja>
- *     <jk>public</jk> String getLabel(RestRequest req) <jk>throws</jk> 
Exception {
- *             <jk>return</jk> <js>"myform"</js>;
- *     }
- *
- *     <ja>@Override</ja>
- *     <jk>public</jk> Object getContent(RestRequest req) <jk>throws</jk> 
Exception {
- *             <jk>return</jk> div(
- *                     
<jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/form"</js>).method(<jsf>POST</jsf>).children(
- *                             <jsm>table</jsm>(
- *                                     <jsm>tr</jsm>(
- *                                             <jsm>th</jsm>(<js>"Field 
1:"</js>),
- *                                             
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field1"</js>).type(<js>"text"</js>)),
- *                                             <jsm>td</jsm>(<jk>new</jk> 
Tooltip(<js>"(?)"</js>, <js>"This is field #1!"</js>, br(), <js>"(e.g. '"</js>, 
code(<js>"Foo"</js>), <js>"')"</js>))
- *                                     ),
- *                                     <jsm>tr</jsm>(
- *                                             <jsm>th</jsm>(<js>"Field 
2:"</js>),
- *                                             
<jsm>td</jsm>(<jsm>input</jsm>().name(<js>"field2"</js>).type(<js>"text"</js>)),
- *                                             <jsm>td</jsm>(<jk>new</jk> 
Tooltip(<js>"(?)"</js>, <js>"This is field #2!"</js>, br(), <js>"(e.g. '"</js>, 
code(<js>"Bar"</js>), <js>"')"</js>))
- *                                     )
- *                             )
- *                     )
- *             );
- *     }
- * }
- * </p>
- *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
+ *     <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets}
  * </ul>
  */
 public class Tooltip {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Widget.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Widget.java
index 9be6c55..6b4b673 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Widget.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/Widget.java
@@ -16,103 +16,12 @@ import java.io.*;
 import java.util.*;
 
 import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.utils.*;
 
 /**
  * Defines an interface for resolvers of <js>"$W{...}"</js> string variables.
  *
  * <p>
- * Widgets are associated with resources through the following
- * <ul>
- *     <li class='ja'>{@link HtmlDoc#widgets() @HtmlDoc.widgets}
- *     <li class='jm'>{@link RestContextBuilder#widgets(Class...)}
- *     <li class='jm'>{@link RestContextBuilder#widgets(Widget...)}
- * </ul>
- *
- * <p>
- * Widgets allow you to add arbitrary HTML, CSS, and Javascript to the page.
- *
- * <p>
- * The HTML content returned by the {@link #getHtml(RestRequest)} method is 
added where the <js>"$W{...}"</js> is
- * referenced in the page.
- * The Javascript and stylesheet content is added to the header of the page.
- * They allow you to control the look and behavior of your widgets.
- *
- * <p>
- * The following examples shows how to associate a widget with a REST method 
and then have it rendered in the links
- * and aside section of the page:
- *
- * <p class='bcode w800'>
- *     <ja>@RestMethod</ja>(
- *             widgets={
- *                     MyWidget.<jk>class</jk>
- *             }
- *             htmldoc=<ja>@HtmlDoc</ja>(
- *                     navlinks={
- *                             <js>"$W{MyWidget}"</js>
- *                     },
- *                     aside={
- *                             <js>"Check out this widget:  $W{MyWidget}"</js>
- *                     }
- *             )
- *     )
- * </p>
- *
- * <p>
- * The following shows an example of a widget that renders an image located in 
the <code>htdocs</code> static files
- * directory in your classpath (see {@link RestResource#staticFiles() 
@RestResource(staticFiles)}):
- * <p class='bcode w800'>
- *     <jk>public class</jk> MyWidget <jk>extends</jk> Widget {
- *
- *             <ja>@Override</ja>
- *             <jk>public</jk> String getHtml(RestRequest req) <jk>throws</jk> 
Exception {
- *                     UriResolver r = req.getUriResolver();
- *                     <jk>return</jk> <js>"&lt;img class='myimage' 
onclick='myalert(this)' 
src='"</js>+r.resolve(<js>"servlet:/htdocs/myimage.png"</js>)+<js>"'&gt;"</js>;
- *             }
- *
- *             <ja>@Override</ja>
- *             <jk>public</jk> String getScript(RestRequest req) 
<jk>throws</jk> Exception {
- *                     <jk>return</jk> <js>""</js>
- *                             + <js>"\n function myalert(imageElement) {"</js>
- *                             + <js>"\n       alert('cool!');"</js>
- *                             + <js>"\n }"</js>;
- *             }
- *
- *             <ja>@Override</ja>
- *             <jk>public</jk> String getStyle(RestRequest req) 
<jk>throws</jk> Exception {
- *                     <jk>return</jk> <js>""</js>
- *                             + <js>"\n .myimage {"</js>
- *                             + <js>"\n       border: 10px solid red;"</js>
- *                             + <js>"\n }"</js>;
- *             }
- *     }
- * </p>
- *
- * <p>
- * Note the {@link #getClasspathResourceAsString(String)} and {@link 
#getClasspathResourceAsString(String, Locale)} convenience methods
- * provided for quickly loading javascript and css files from the classpath or 
file system.
- * These are useful if your script or styles are complex and you want them 
loaded from files.
- *
- * <p>
- * <p class='bcode w800'>
- *     <jk>public class</jk> MyWidget <jk>extends</jk> Widget {
- *
- *             ...
- *
- *             <ja>@Override</ja>
- *             <jk>public</jk> String getScript(RestRequest req) 
<jk>throws</jk> Exception {
- *                     <jk>return</jk> 
getResourceAsString(<js>"MyWidget.js"</js>);
- *             }
- *
- *             <ja>@Override</ja>
- *             <jk>public</jk> String getStyle(RestRequest req) 
<jk>throws</jk> Exception {
- *                     <jk>return</jk> 
getResourceAsString(<js>"MyWidget.css"</js>);
- *             }
- *     }
- * </p>
- *
- * <p>
  * Widgets must provide one of the following public constructors:
  * <ul>
  *     <li><code><jk>public</jk> Widget();</code>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
deleted file mode 100644
index dd3d63f..0000000
Binary files 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
 and /dev/null differ

Reply via email to