Repository: incubator-juneau
Updated Branches:
  refs/heads/master f400b0c0f -> ada4053bb


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryWidget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryWidget.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryWidget.java
deleted file mode 100644
index c0efeb2..0000000
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryWidget.java
+++ /dev/null
@@ -1,135 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest.widget;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.converters.*;
-
-/**
- * Adds a <code>QUERY</code> link to the page that allows you to perform 
search/view/sort/paging on the page data.
- *
- * <p>
- * A typical usage of the query widget is to include it as a navigation link 
as shown in the example below
- * pulled from the <code>PetStoreResource</code> example:
- * <p class='bcode'>
- *     <ja>@RestResource</ja>(
- *             widgets={
- *                     QueryWidget.<jk>class</jk>
- *             },
- *             htmldoc=<ja>@HtmlDoc</ja>(
- *                     
links=<js>"{up:'...',options:'...',query:'$W{query}',source:'...'}"</js>
- *             )
- *     )
- * </p>
- *
- * <p>
- * In the above example, this adds a <code>QUERY</code> that displays a search 
popup that can be used for filtering the
- * page results...
- * <img class='bordered' src='doc-files/PetStore_Query.png'>
- *
- * <p>
- * Tooltips are provided by hovering over the field names.
- * <img class='bordered' src='doc-files/PetStore_Query_tooltip.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>).
- *
- * <p>
- * The search arguments can be retrieved programmatically using {@link 
RequestQuery#getSearchArgs()}.
- *
- * <p>
- * Typically, the search functionality is implemented by applying the 
predefined {@link Queryable} converter on the
- * method that's returning a 2-dimensional table of POJOs that you wish to 
filter:
- * <p class='bcode'>
- *     <ja>@RestMethod</ja>(
- *             name=<js>"GET"</js>,
- *             path=<js>"/"</js>,
- *             converters=Queryable.<jk>class</jk>
- *     )
- *     <jk>public</jk> Collection&lt;Pet&gt; getPets() {
- * </p>
- *
- * <p>
- * The following shows various search arguments and their results on the page:
- * <table style='width:auto'>
- *     <tr>
- *             <th>Search type</th><th>Query arguments</th><th>Query 
results</th>
- *     </tr>
- *     <tr>
- *             <td>No arguments</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q1.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r1.png'></td>
- *     </tr>
- *     <tr>
- *             <td>String search</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q2.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r2.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Numeric range</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q3.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r3.png'></td>
- *     </tr>
- *     <tr>
- *             <td>ANDed terms</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q4.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r4.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Date range (entire year)</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q8.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r8.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Date range</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q9.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r9.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Date range</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q10.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r10.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Hide columns</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q5.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r5.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Sort</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q6.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r6.png'></td>
- *     </tr>
- *     <tr>
- *             <td>Sort descending</td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_q7.png'></td>
- *             <td><img class='bordered' 
src='doc-files/PetStore_Query_r7.png'></td>
- *     </tr>
- * </table>
- *
- */
-public class QueryWidget extends Widget {
-
-       @Override
-       public String getName() {
-               return "query";
-       }
-
-       @Override /* Widget */
-       public String resolve(RestRequest req) throws Exception {
-               // Note we're stripping off the license header.
-               return 
IOUtils.read(getClass().getResourceAsStream("QueryWidget.html")).replaceFirst("(?s)<!--(.*?)-->\\s*",
 "");
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/Widget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/Widget.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/Widget.java
index 9ef5fb6..4df720e 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/Widget.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/Widget.java
@@ -12,11 +12,15 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.widget;
 
+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 defining resolvers for <js>"$W{...}"</js> string 
variables.
+ * Defines an interface for resolvers of <js>"$W{...}"</js> string variables.
  *
  * <p>
  * Widgets are associated with resources through the following
@@ -25,24 +29,188 @@ import org.apache.juneau.rest.annotation.*;
  *     <li>{@link RestMethod#widgets() @RestMethod.widgets}
  *     <li>{@link RestConfig#addWidget(Class)}
  * </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'>
+ *     <ja>@RestMethod</ja>(
+ *             widgets={
+ *                     MyWidget.<jk>class</jk>
+ *             }
+ *             htmldoc=<ja>@HtmlDoc</ja>(
+ *                     links=<js>"{mylink:'$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()}):
+ * <p class='bcode'>
+ *     <jk>public class</jk> MyWidget <jk>extends</jk> Widget {
+ *
+ *             <ja>@Override</ja>
+ *             <jk>public</jk> String getName(RestRequest req) {
+ *                     return <js>"myWidget"</js>;
+ *             }
+ *
+ *             <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 #getResourceAsString(String)} and {@link 
#getResourceAsString(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'>
+ *     <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>
  */
 public abstract class Widget {
 
+       private final ResourceFinder resourceFinder = new 
ResourceFinder(getClass());
+
        /**
-        * The widget key (i.e. The contents of the <js>"$W{...}"</js> 
variable).
+        * The widget key.
+        *
+        * <p>
+        * (i.e. The contents of the <js>"$W{...}"</js> variable).
         *
-        * @return
-        *      The widget key.
-        *      Must not be <jk>null</jk>.
+        * <p>
+        * The returned value must not be <jk>null</jk>.
+        *
+        * @return The widget key.
         */
        public abstract String getName();
 
        /**
-        * Resolves the value for the variable.
+        * Resolves the HTML content for this widget.
+        *
+        * <p>
+        * A returned value of <jk>null</jk> will cause nothing to be added to 
the page.
         *
         * @param req The HTTP request object.
-        * @return The resolved value.
+        * @return The HTML content of this widget.
         * @throws Exception
         */
-       public abstract String resolve(RestRequest req) throws Exception;
+       public String getHtml(RestRequest req) throws Exception {
+               return null;
+       }
+
+       /**
+        * Resolves any Javascript that should be added to the 
<xt>&lt;head&gt;/&lt;script&gt;</xt> element.
+        *
+        * <p>
+        * A returned value of <jk>null</jk> will cause nothing to be added to 
the page.
+        *
+        * @param req The HTTP request object.
+        * @return The Javascript needed by this widget.
+        * @throws Exception
+        */
+       public String getScript(RestRequest req) throws Exception {
+               return null;
+       }
+
+       /**
+        * Resolves any CSS styles that should be added to the 
<xt>&lt;head&gt;/&lt;style&gt;</xt> element.
+        *
+        * <p>
+        * A returned value of <jk>null</jk> will cause nothing to be added to 
the page.
+        *
+        * @param req The HTTP request object.
+        * @return The CSS styles needed by this widget.
+        * @throws Exception
+        */
+       public String getStyle(RestRequest req) throws Exception {
+               return null;
+       }
+
+       /**
+        * Retrieves the specified classpath resource and returns the contents 
as a string.
+        *
+        * <p>
+        * Same as {@link Class#getResourceAsStream(String)} except if it 
doesn't find the resource on this class, searches
+        * up the parent hierarchy chain.
+        *
+        * <p>
+        * If the resource cannot be found in the classpath, then an attempt is 
made to look relative to the JVM working directory.
+        * <br>Path traversals outside the working directory are not allowed 
for security reasons.
+        *
+        * @param name Name of the desired resource.
+        * @return The resource converted to a string, or <jk>null</jk> if the 
resource could not be found.
+        * @throws IOException
+        */
+       protected String getResourceAsString(String name) throws IOException {
+               return resourceFinder.getResourceAsString(name);
+       }
+
+       /**
+        * Same as {@link #getResourceAsString(String)} except also looks for 
localized-versions of the file.
+        *
+        * <p>
+        * If the <code>locale</code> is specified, then we look for resources 
whose name matches that locale.
+        * <br>For example, if looking for the resource 
<js>"MyResource.txt"</js> for the Japanese locale, we will look for
+        * files in the following order:
+        * <ol>
+        *      <li><js>"MyResource_ja_JP.txt"</js>
+        *      <li><js>"MyResource_ja.txt"</js>
+        *      <li><js>"MyResource.txt"</js>
+        * </ol>
+        *
+        *
+        * @param name Name of the desired resource.
+        * @param locale The locale.  Can be <jk>null</jk>.
+        * @return The resource converted to a string, or <jk>null</jk> if the 
resource could not be found.
+        * @throws IOException
+        */
+       protected String getResourceAsString(String name, Locale locale) throws 
IOException {
+               return resourceFinder.getResourceAsString(name, locale);
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
new file mode 100644
index 0000000..6c8db5c
Binary files /dev/null and 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/ContentTypeMenuItem.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
deleted file mode 100644
index 0db9c0d..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
deleted file mode 100644
index 65b08dc..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
deleted file mode 100644
index 3ec59c1..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
deleted file mode 100644
index 935b2f0..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
deleted file mode 100644
index a0b72c7..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
deleted file mode 100644
index b324817..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
deleted file mode 100644
index 3fc6aab..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
deleted file mode 100644
index d3fbd7c..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
deleted file mode 100644
index ba8c997..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
deleted file mode 100644
index e42fbbe..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
deleted file mode 100644
index 7cd2ffe..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
deleted file mode 100644
index dcc26b3..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
deleted file mode 100644
index 8cf450b..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
deleted file mode 100644
index 5904efa..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
deleted file mode 100644
index 4adf7cc..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
deleted file mode 100644
index 5904efa..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
deleted file mode 100644
index 9b6185a..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
deleted file mode 100644
index d0f21be..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r7.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r7.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r7.png
deleted file mode 100644
index 472a2ce..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r7.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
deleted file mode 100644
index c3450d8..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
deleted file mode 100644
index 8cf450b..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
deleted file mode 100644
index 4373661..0000000
Binary files 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
 and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
new file mode 100644
index 0000000..dd3d63f
Binary files /dev/null and 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByApacheWidget.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
new file mode 100644
index 0000000..7273413
Binary files /dev/null and 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/PoweredByJuneauWidget.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
new file mode 100644
index 0000000..a577695
Binary files /dev/null and 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_1.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
new file mode 100644
index 0000000..71679f9
Binary files /dev/null and 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/doc-files/QueryMenuItem_2.png
 differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/styles/devops.css
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/styles/devops.css 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/styles/devops.css
index c0e5b52..39b98f2 100644
--- a/juneau-rest/src/main/resources/org/apache/juneau/rest/styles/devops.css
+++ b/juneau-rest/src/main/resources/org/apache/juneau/rest/styles/devops.css
@@ -64,6 +64,7 @@ footer {
        text-decoration: none;
        margin: 0px 15px;
        text-transform: uppercase;
+       cursor: pointer;
 }
 .link:active, .link:hover {
        color: white;
@@ -95,6 +96,35 @@ h5.description, h5.description * {
 }
 
 
/************************************************************************************/
+/**  Pop-ups                                                                   
    **/
+/************************************************************************************/
+
+.popup-content {
+       display: none;
+       position: absolute;
+       background-color: #f4f6f9;
+       white-space: nowrap;
+       padding: 5px;
+       box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
+       z-index: 1;
+       margin-top: 10px;
+       border-radius: 4px;
+}
+
+.popup-content * {
+       color: black;
+       font-size: 10pt;
+}
+
+.popup-content a:hover {
+       color: #94A3AB;
+}
+
+
+.popup-show {display:block;}
+
+
+/************************************************************************************/
 /**  Data section                                                              
    **/
 
/************************************************************************************/
 div.outerdata {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.css
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.css
 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.css
new file mode 100644
index 0000000..430df88
--- /dev/null
+++ 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.css
@@ -0,0 +1,17 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ 
***************************************************************************************************************************/
+.menu-item {
+       position: relative;
+       display: inline-block;
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.js
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.js
 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.js
new file mode 100644
index 0000000..9d322c6
--- /dev/null
+++ 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/MenuItemWidget.js
@@ -0,0 +1,33 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ 
***************************************************************************************************************************/
+var popupItem;
+
+function closePopup() {
+       if (popupItem != null) {
+               popupItem.nextElementSibling.classList.remove('popup-show');
+       }
+}
+
+function menuClick(item) {
+       closePopup();
+       item.nextElementSibling.classList.add('popup-show');
+       popupItem = item;
+}
+
+window.onclick = function(event) {
+       if (popupItem != null && popupItem != event.target && ! 
popupItem.nextElementSibling.contains(event.target)) {
+               closePopup();
+       }
+};
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.css
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.css
 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.css
new file mode 100644
index 0000000..8db9049
--- /dev/null
+++ 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.css
@@ -0,0 +1,45 @@
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ 
***************************************************************************************************************************/
+.tooltip {
+    position: relative;
+    display: inline-block;         
+}
+
+.tooltip .tooltiptext {
+    visibility: hidden;
+    background-color: #FEF9E7;
+    color: black;
+    padding: 5px;
+    border-radius: 6px;
+    position: absolute;
+    z-index: 1;
+    top: 0;
+    left: 0;
+    margin-left: 30px;
+       box-shadow: 2px 3px 3px 0px rgba(0, 0, 0, 0.5);
+    opacity: 0;
+    transition: opacity 0.5s;
+    font-weight: normal;
+}
+
+.tooltip:hover .tooltiptext {
+    visibility: visible;
+    opacity: 1;
+}      
+
+.tooltiptext {
+       white-space: nowrap;
+       float: left;
+       border: 1px solid black;
+}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
new file mode 100644
index 0000000..f378edb
--- /dev/null
+++ 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
@@ -0,0 +1,127 @@
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ 
***************************************************************************************************************************/
+ -->
+<div class='menu-item'>
+       <a class='link' onclick='menuClick(this)'>query</a>
+       <div class='popup-content'>
+               <form style='margin:0px'>
+                       <table>
+                               <tr>
+                                       <th>Search:</th>
+                                       <td>
+                                               <input name="s" size="50" 
value='$R{query.s}'>
+                                       </td>
+                                       <td>
+                                               <div class="tooltip">
+                                                       <small>(?)</small>
+                                                       <span 
class="tooltiptext">
+                                                               Comma-delimited 
list of key/value pair search terms.
+                                                               <br>
+                                                               <br>Keys are 
column names.  Values are search terms.
+                                                               <br>
+                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1=foo*, column2&lt;100, 
column3=2013-2016.06.30]</code>
+                                                               <br>
+                                                               <br><b>String 
fields:</b>
+                                                               <br> - 
<code>'*'</code> represents any character
+                                                               <br> - 
<code>'?'</code> represents one character
+                                                               <br> - Use 
single or double quotes for phrases
+                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column='foo bar']</code> - The term 'foo bar'
+                                                               <br> - Multiple 
search terms are ORed 
+                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=foo bar]</code> - 'foo' OR 'bar'
+                                                               <br> - Prepend 
<code>'+'</code> on tokens that must match
+                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=+foo* +*bar]</code> - Start with 'foo' 
AND end with 'bar'.
+                                                               <br> - Prepend 
<code>'-'</code> on tokens that must not match 
+                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=+foo* -*bar]</code> - Start with 'foo' 
AND does not end with 'bar'.
+                                                               <br>
+                                                               <br><b>Numeric 
fields:</b>
+                                                               
<br><code>[column=123]</code> - A single number
+                                                               
<br><code>[column=1 2 3]</code> - Multiple numbers
+                                                               
<br><code>[column=1-100]</code> - Between two numbers
+                                                               
<br><code>[column=1-100 200-300]</code> - Two ranges of numbers
+                                                               
<br><code>[column&gt;100]</code> - Greater than a number
+                                                               
<br><code>[column&gt;=100]</code> - Greater than or equal to a number
+                                                               
<br><code>[column=!123]</code> - Not a specific number
+                                                               <br>
+                                                               
<br><b>Date/Calendar fields:</b>
+                                                               
<br><code>[column=2001]</code> - A specific year
+                                                               
<br><code>[column=2001.01.01.10.50]</code> - A specific time
+                                                               
<br><code>[column&gt;2001]</code> - After a specific year
+                                                               
<br><code>[column&gt;=2001]</code> - During or after a specific year
+                                                               
<br><code>[column=2001-2003.06.30]</code> - A date range
+                                                               
<br><code>[column=2001 2003 2005]</code> - Multiple ORed dates
+                                                       </span>
+                                               </div>
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <th>View:</th>
+                                       <td>
+                                               <input name="v" size="50" 
value='$R{query.v}'>
+                                       </td>
+                                       <td>
+                                               <div class="tooltip">
+                                                       <small>(?)</small>
+                                                       <span 
class="tooltiptext">
+                                                               Comma-delimited 
list of columns to display.
+                                                               <br>
+                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2]</code>
+                                                       </span>
+                                               </div>
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <th>Sort:</th>
+                                       <td>
+                                               <input name="o" size="50" 
value='$R{query.o}'>
+                                       </td>
+                                       <td>
+                                               <div class="tooltip">
+                                                       <small>(?)</small>
+                                                       <span 
class="tooltiptext">
+                                                               Comma-delimited 
list of columns to sort by.
+                                                               <br>Columns can 
be suffixed with '-' to indicate descending order.
+                                                               <br>
+                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2-]</code>
+                                                               <br>
+                                                               
<br><b>Notes:</b>
+                                                               <br> - Columns 
containing collections/arrays/lists are sorted by size.
+                                                       </span>
+                                               </div>
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <th>Page:</th>
+                                       <td>
+                                               Position: <input name='p' 
type='number' style='width:50px' step=20 min=0 value='$R{query.p}'>
+                                               Limit: <input name='l' 
type='number' style='width:50px' step=20 min=0 value='$R{query.l}'>
+                                               <span 
style='float:right'>Ignore-case: <input name='i' type='checkbox' 
value='true'></span>
+                                       </td>
+                                       <td>
+                                       </td>
+                               </tr> 
+                               <tr>
+                                       <th>
+                                               &nbsp;
+                                       </th>
+                                       <td colspan='2' 
style='text-align:right'>
+                                               <input type='reset' 
value='Reset'>
+                                               <input type="submit" 
value='Submit'>
+                                       </td>
+                               </tr>
+                       </table>
+               </form>
+       </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryWidget.html
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryWidget.html 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryWidget.html
deleted file mode 100644
index 63cb9de..0000000
--- 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryWidget.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- *
- 
***************************************************************************************************************************/
- -->
-<a class='link' 
href='javascript:document.getElementById("query").classList.remove("hidden")'>query</a>
-<style>
-       .queryInput, .queryInput table {
-               padding:3px;
-               border: 1px solid black;
-               border-radius:3px;
-               background-color:#fefefe;
-               box-shadow: 2px 3px 3px 0px rgba(0, 0, 0, 0.5);
-               position: fixed;
-               font-size: 9pt;
-       color: #26343F;
-       white-space: nowrap;
-       text-align: left;
-       margin:70px 50px;
-       }
-
-       .hidden {
-               display:none;
-       }
-       
-       .tooltip {
-           position: relative;
-           display: inline-block;          
-       }
-
-       .tooltip .tooltiptext {
-           visibility: hidden;
-           background-color: #FEF9E7;
-           color: black;
-           padding: 5px;
-           border-radius: 6px;
-           position: absolute;
-           z-index: 1;
-           top: 0;
-           left: 0;
-           margin-left: 30px;
-               box-shadow: 2px 3px 3px 0px rgba(0, 0, 0, 0.5);
-           opacity: 0;
-           transition: opacity 0.5s;
-           font-weight: normal;
-       }
-
-       .tooltip:hover .tooltiptext {
-           visibility: visible;
-           opacity: 1;
-       }       
-       
-       .tooltiptext {
-               white-space: nowrap;
-               float: left;
-               border: 1px solid black;
-       }
-</style>
-<form id='queryForm' style='display:inline'>
-       <table id='query' class='queryInput hidden'>
-               <tr>
-                       <th>Search:</th>
-                       <td>
-                               <input name="s" size="50" value='$R{query.s}'>
-                       </td>
-                       <td>
-                               <div class="tooltip">
-                                       <small>(?)</small>
-                                       <span class="tooltiptext">
-                                               Comma-delimited list of 
key/value pair search terms.
-                                               <br>
-                                               <br>Keys are column names.  
Values are search terms.
-                                               <br>
-                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1=foo*, column2&lt;100, 
column3=2013-2016.06.30]</code>
-                                               <br>
-                                               <br><b>String fields:</b>
-                                               <br> - <code>'*'</code> 
represents any character
-                                               <br> - <code>'?'</code> 
represents one character
-                                               <br> - Use single or double 
quotes for phrases
-                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column='foo bar']</code> - The term 'foo bar'
-                                               <br> - Multiple search terms 
are ORed 
-                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=foo bar]</code> - 'foo' OR 'bar'
-                                               <br> - Prepend <code>'+'</code> 
on tokens that must match
-                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=+foo* +*bar]</code> - Start with 'foo' AND end with 'bar'.
-                                               <br> - Prepend <code>'-'</code> 
on tokens that must not match 
-                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=+foo* -*bar]</code> - Start with 'foo' AND does not end with 
'bar'.
-                                               <br>
-                                               <br><b>Numeric fields:</b>
-                                               <br><code>[column=123]</code> - 
A single number
-                                               <br><code>[column=1 2 3]</code> 
- Multiple numbers
-                                               <br><code>[column=1-100]</code> 
- Between two numbers
-                                               <br><code>[column=1-100 
200-300]</code> - Two ranges of numbers
-                                               
<br><code>[column&gt;100]</code> - Greater than a number
-                                               
<br><code>[column&gt;=100]</code> - Greater than or equal to a number
-                                               <br><code>[column=!123]</code> 
- Not a specific number
-                                               <br>
-                                               <br><b>Date/Calendar fields:</b>
-                                               <br><code>[column=2001]</code> 
- A specific year
-                                               
<br><code>[column=2001.01.01.10.50]</code> - A specific time
-                                               
<br><code>[column&gt;2001]</code> - After a specific year
-                                               
<br><code>[column&gt;=2001]</code> - During or after a specific year
-                                               
<br><code>[column=2001-2003.06.30]</code> - A date range
-                                               <br><code>[column=2001 2003 
2005]</code> - Multiple ORed dates
-                                       </span>
-                               </div>
-                       </td>
-               </tr>
-               <tr>
-                       <th>View:</th>
-                       <td>
-                               <input name="v" size="50" value='$R{query.v}'>
-                       </td>
-                       <td>
-                               <div class="tooltip">
-                                       <small>(?)</small>
-                                       <span class="tooltiptext">
-                                               Comma-delimited list of columns 
to display.
-                                               <br>
-                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2]</code>
-                                       </span>
-                               </div>
-                       </td>
-               </tr>
-               <tr>
-                       <th>Sort:</th>
-                       <td>
-                               <input name="o" size="50" value='$R{query.o}'>
-                       </td>
-                       <td>
-                               <div class="tooltip">
-                                       <small>(?)</small>
-                                       <span class="tooltiptext">
-                                               Comma-delimited list of columns 
to sort by.
-                                               <br>Columns can be suffixed 
with '-' to indicate descending order.
-                                               <br>
-                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2-]</code>
-                                               <br>
-                                               <br><b>Notes:</b>
-                                               <br> - Columns containing 
collections/arrays/lists are sorted by size.
-                                       </span>
-                               </div>
-                       </td>
-               </tr>
-               <tr>
-                       <th>Page:</th>
-                       <td>
-                               Position: <input name='p' type='number' 
style='width:50px' step=20 min=0 value='$R{query.p}'>
-                               Limit: <input name='l' type='number' 
style='width:50px' step=20 min=0 value='$R{query.l}'>
-                               <span style='float:right'>Ignore-case: <input 
name='i' type='checkbox' value='true'></span>
-                       </td>
-                       <td>
-                       </td>
-               </tr> 
-               <tr>
-                       <th>
-                               &nbsp;
-                       </th>
-                       <td colspan='2' style='text-align:right'>
-                               <input type='reset' value='Reset'>
-                               <input type='button' value='Cancel' 
onclick='getElementById("query").classList.add("hidden")'>
-                               <input type="submit" value='Submit'>
-                       </td>
-               </tr>
-       </table>
-</form>
-

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ada4053b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e5f9e96..8206b49 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,7 +177,7 @@
                                                
<overview>${basedir}/juneau-core/src/main/javadoc/overview.html</overview>
                                                
<stylesheetfile>${basedir}/juneau-core/src/main/javadoc/javadoc.css</stylesheetfile>
                                                <use>false</use>
-                                               <additionalparam>-sourcetab 3 
-notimestamp -Xdoclint:none --allow-script-in-comments</additionalparam>
+                                               <additionalparam>-sourcetab 3 
-notimestamp -Xdoclint:none</additionalparam>
                                                <verbose>false</verbose>
                                                
<excludePackageNames>*proto*:*samples*:*examples*:*test*</excludePackageNames>
                                                <linksource>true</linksource>

Reply via email to