Class ViewsMixin
juneau-views.js,
juneau-ribbon.js, juneau-renders.js, juneau-views.css, the opt-in
juneau-regions.js region-populate runtime, the opt-in juneau-config.js/juneau-config.css
column-chooser runtime — each at its stable path, plus deprecated compatibility mounts
for the two assets that have since moved to the widget module.
Compose into a host resource via @Rest(mixins=ViewsMixin.class); the asset URLs then become
available alongside the host's own endpoints, so browser pages can load the runtime without the application hosting
it itself. This mirrors the sibling DataTablesMixin/ConsoleChromeMixin serving pattern (those
modules are not dependencies of this one, so they are not linked here).
What this ships (and what it deliberately does not):
Juneau's jars don't copy the DataTables library or jQuery. Only
the thin, first-party runtime is served here; the DataTables, jQuery and Buttons files come from the WebJars that
juneau-console-datatables declares, served by WebJarsMixin. The
base juneau-views.css .tag chip is dependency-free (neutral, no colors); console-ui's
chrome.css themes the same .tag.<domain>.<value> classes when present, but this module takes
no dependency on it.
Relocated: two assets now ship in the widget module
juneau-calendar.js and juneau-calendar.css are widget runtimes, not
table runtimes, and their bytes now live in juneau-console-widgets beside the bean contracts that
drive them. WidgetsMixin is where a new application gets them.
This mixin keeps a deprecated mount and path constant for each of the two so that an existing
@Rest(mixins=ViewsMixin.class) application keeps working with no change: the mount reads the widget
module's bytes off the classpath (that module is a compile-scope dependency of this one) rather than holding a
second copy, so the body and the cache-buster are identical to what WidgetsMixin serves. Composing both
mixins is therefore harmless.
The relocation does not make that script standalone: it still resolves glyphs through this module's
juneau-icons.js and pushes its popovers onto the ONE shared layer stack juneau-views.js publishes.
A page loading the widget calendar runtime must still load this module's juneau-icons.js and
juneau-views.js first.
Cache-busting + versioned URLs:
Each asset is served with a one-day Cache-Control and referenced from a page's head= block with a
?v=<buildVersion>-<hash8> cache-buster (see viewAssetUrl(String), or
viewAssetUrl(RestRequest, String) for a template-rendered consumer that needs the URL already resolved
to an absolute, browser-fetchable form), where hash8 is an
8-hex-char CRC32 of that asset's own served bytes, computed once and cached (classpath resources never change
within a running JVM). Keying the buster off content rather than buildVersion alone matters for
-SNAPSHOT builds: that version string is stable across dev rebuilds, so a version-only buster would keep
serving a browser's stale cached copy after every rebuild - the content hash changes the instant the bytes do,
with no SNAPSHOT special-casing needed. buildVersion is the framework's
implementation version, falling back to "dev" when running from an
unpackaged (IDE/test) classpath. The served endpoint ignores the query string, so any (or no) ?v= still
resolves to the same asset.
Contract-version handshake:
CONTRACT_VERSION is the single wire-contract discriminator for a VIEW_META sidecar.
juneau-views.js bakes in the same value so the client can fail loud when a served sidecar's
contractVersion differs from the runtime's.
Mixin-only deployment:
The mount paths are pinned at the op level by @RestGet(path=...) on the serving methods; a class-level
@Rest(paths=...) would be silently ignored under the mixin pattern.
See Also:
- Since:
- 10.0.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe bar-slot refresh-envelope contract-version handshake constant that the console shell bakes in.static final StringThe URL path at which the in-page message bus is served (relative to the host mount).static final StringDeprecated.static final StringDeprecated.The calendar runtime now ships in the widget module; composeWidgetsMixinand use its constant of the same name.static final StringThe URL path at which the opt-in column-chooser stylesheet is served (relative to the host mount).static final StringThe URL path at which the opt-in column-chooser runtime is served (relative to the host mount).static final StringThe URL path at which the console shell runtime is served (relative to the host mount).static final StringThe frozenVIEW_METAcontract-version handshake constant.static final String[GET] path of the DataRegistry runtime (JuneauViews.data): the frames behinddata:bus topics.static final StringThe URL path of the DataTables glue script,juneau-datatables.js(the same path asDataTablesMixin.GLUE_PATH).static final StringThe app-header refresh-envelope contract-version handshake constant that the console shell bakes in.static final StringThe URL path at which the opt-in region-populate paint library is served (relative to the host mount).static final StringThe URL path at which the icon registry is served (relative to the host mount).static final StringThe URL path at which the general page-state store is served (relative to the host mount).static final StringThe URL path at which the opt-in region-populate runtime is served (relative to the host mount).static final StringThe URL path at which the renderer registry is served (relative to the host mount).static final StringThe URL path at which the ribbon runtime is served (relative to the host mount).static final StringThe URL path at which the opt-in terminal-view module is served (relative to the host mount).static final StringThe URL path at which the column-search engine is served (relative to the host mount).static final StringThe slot-envelope (SLOT_META) contract-version handshake constant thatjuneau-views.jsbakes in.static final StringThe URL path at which the opt-in Material Symbols Outlined sprite is served (relative to the host mount).static final StringThe URL path at which the shared SVG symbol sprite is served (relative to the host mount).static final StringThe URL path at which the shareable "Copy link" URL-state codec is served (relative to the host mount).static final StringThe URL path at which the base view stylesheet is served (relative to the host mount).static final StringThe URL path at which the client initializer is served (relative to the host mount). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription[GET /juneau-bus.js] — serve the in-page message bus.Deprecated.ComposeWidgetsMixininstead, which ships these bytes.Deprecated.ComposeWidgetsMixininstead, which ships these bytes.[GET /juneau-config.js] — serve the opt-in column-chooser runtime (column configuration is localStorage-persisted).[GET /juneau-config.css] — serve the opt-in column-chooser stylesheet.[GET /juneau-console.js] — serve the console shell runtime from the console-ui module's classpath.[GET /juneau-data.js] — serve the DataRegistry runtime.[GET /juneau-helpers.js] — serve the opt-in region-populate paint library.[GET /juneau-icons.js] — serve the icon registry.[GET /juneau-pagestate.js] — serve the general page-state store.[GET /juneau-regions.js] — serve the opt-in region-populate runtime.[GET /juneau-renders.js] — serve the renderer registry.[GET /juneau-ribbon.js] — serve the ribbon/toolbar runtime.[GET /juneau-search.js] — serve the column-search engine.[GET /juneau-symbols-material.svg] — serve the opt-in Material Symbols Outlined sprite.[GET /juneau-symbols.svg] — serve the shared SVG symbol sprite.[GET /juneau-terminal-view.js] — serve the opt-in terminal-view module.[GET /juneau-urlstate.js] — serve the shareable-link URL-state codec.[GET /juneau-views.js] — serve the client initializer.[GET /juneau-views.css] — serve the base view stylesheet.static StringviewAssetUrl(String path) Returns the servlet-relative URL for a served asset, carrying a?v=<buildVersion>-<hash8>content- sensitive cache-buster suitable for a page'shead=block (see the class Javadoc's cache-busting section for why the buster is content- rather than purely version-keyed).static StringviewAssetUrl(RestRequest req, String path) Returns a real, browser-fetchable absolute URL for a served asset, resolved against the given request's context path and mount — carrying the same?v=<buildVersion>-<hash8>content- sensitive cache-buster asviewAssetUrl(String)(see the class Javadoc's cache-busting section).
-
Field Details
-
VIEWS_JS_PATH
The URL path at which the client initializer is served (relative to the host mount). A page with any datatables card must loadjuneau-datatables.js(DATATABLES_JS_PATH) before this script, sowindow.JuneauDataTablesis already present whenbuildOptionswires up that card's ajax. This mixin does not servejuneau-datatables.jsitself — the resource mixes inDataTablesMixinfor that, the same way it already mixes inViewsMixinfor this script; a duplicate@RestGetfor the same path on two mixed-in classes would fail route registration. A missingwindow.JuneauDataTableswhen a server-side table initializes fails loudly (console warning, no silent GET fallback) rather than silently misbehaving. A page with any ribbon options should likewise loadjuneau-ribbon.jsbefore this script, sowindow.JuneauViews.ribbonis present whenbuildOptionsmerges that view's active ribbon state into the request; unlike theJuneauDataTablescase this one degrades rather than fails — a missingwindow.JuneauViews.ribbonwarns and simply contributes no ribbon filters, since a view with no ribbon configured never neededjuneau-ribbon.jsloaded at all.- See Also:
-
DATATABLES_JS_PATH
The URL path of the DataTables glue script,juneau-datatables.js(the same path asDataTablesMixin.GLUE_PATH).Named here so
viewAssetUrl(RestRequest, String)can build its cache-busted URL, and so the console's"datatables-glue"toolkit pack can name the path without importing the datatables package (juneau-console-freemarkerforbids that import; see itsModuleGraph_ImportScan_Test). This mixin does not serve it (seeVIEWS_JS_PATHfor why);DataTablesMixindoes. On a console page the"datatables-glue"toolkit pack emits it for everytype="datatables"card, client or server mode, after jQuery and DataTables and beforejuneau-views.js. A host with datatables cards composesDataTablesMixinandWebJarsMixin.Example:
@Rest (mixins={ViewsMixin.class , DataTablesMixin.class , WebJarsMixin.class })public class MyResourceextends BasicRestServlet {// Emitted by the "datatables-glue" pack before juneau-views.js: // ViewsMixin.viewAssetUrl(req, ViewsMixin.DATATABLES_JS_PATH) }- See Also:
-
RIBBON_JS_PATH
The URL path at which the ribbon runtime is served (relative to the host mount).- See Also:
-
RENDERS_JS_PATH
The URL path at which the renderer registry is served (relative to the host mount).- See Also:
-
VIEWS_CSS_PATH
The URL path at which the base view stylesheet is served (relative to the host mount).- See Also:
-
ICONS_JS_PATH
The URL path at which the icon registry is served (relative to the host mount).Example:
// Page-level sprite layers, read once before the chrome draws: // <script src="/views/juneau-icons.js" // data-juneau-icon-replacement="/my/set.svg" // data-juneau-icon-override="/my/overrides.svg"></script> - See Also:
-
SEARCH_JS_PATH
The URL path at which the column-search engine is served (relative to the host mount). This dependency-free<script>loads beforejuneau-views.js(like the icon registry): it publishesJuneauViews.search— the client mirror of the server-sideSearchExpressionParser/SearchOperatorSet/InMemoryBeanQueryContextcontext that the header search popup and a client-mode grid use to parse and evaluate each column's raw search expression.- See Also:
-
PAGESTATE_JS_PATH
The URL path at which the general page-state store is served (relative to the host mount). This dependency-free<script>loads beforejuneau-views.jsandjuneau-config.js(like the icon registry and column-search engine): it publishesJuneauViews.pageState— a per-table / per-page key/value store, backed bylocalStorageby default and degrading to a silent no-op when browser storage is blocked. The datatable View Settings dialog and any other page preference share it.- See Also:
-
URLSTATE_JS_PATH
The URL path at which the shareable "Copy link" URL-state codec is served (relative to the host mount). This dependency-free<script>loads beforejuneau-views.jsandjuneau-config.js(like the icon registry, column-search engine, and page-state store): it publishesJuneauViews.urlState— the single codec for the one?state=query parameter that carries a shareable link's live tab, primary- table filters, and primary-table sort (never the browser-local View Settings, and never nested tables).- See Also:
-
BUS_JS_PATH
The URL path at which the in-page message bus is served (relative to the host mount). This dependency-free<script>publishesJuneauViews.bus— topic declare/claim, publish/subscribe with optional retention, and the frame and source bridges — and it must load beforejuneau-views.js,juneau-regions.jsandjuneau-console.js, all of which read it. The"views"toolkit pack lists it first. A page that wires topics without it fails loud withE-JS-46.Example:
// A hand-written page head that does not use the "views" toolkit pack: the bus goes first. var bus = ViewsMixin.viewAssetUrl (req , ViewsMixin.BUS_JS_PATH );var views = ViewsMixin.viewAssetUrl (req , ViewsMixin.VIEWS_JS_PATH );// <script src="${bus}"></script><script src="${views}"></script> - See Also:
-
SYMBOLS_SVG_PATH
The URL path at which the shared SVG symbol sprite is served (relative to the host mount).juneau-icons.jsfetches this next to itself by default (packoriginal); the key/legend file is not served to browsers. An app replaces part or all of this shipped set per page with a replacement and/or override sprite that uses the samejuneau-sym-{stem}symbol ids.Example:
// Page-level sprite layers, read once before the chrome draws: // <script src="/views/juneau-icons.js" // data-juneau-icon-replacement="/my/set.svg" // data-juneau-icon-override="/my/overrides.svg"></script> - See Also:
-
SYMBOLS_MATERIAL_SVG_PATH
The URL path at which the opt-in Material Symbols Outlined sprite is served (relative to the host mount). Selected as the legacy replacement layer byJuneauViews.icons.pack("material")/data-juneau-icon-pack="material"; new apps pointdata-juneau-icon-replacement/JuneauViews.icons.sprites({replacementUrl})at the set they want instead. Default remainsSYMBOLS_SVG_PATH(Juneau's own shipped set). The Material pack loads as the replacement layer on top of that shipped sprite, so stems the Material file does not carry fall back to the shipped glyph.Example:
// Opt in to the Material Symbols sprite as the replacement layer over the shipped set, before the chrome draws: // <script src="/views/juneau-icons.js" data-juneau-icon-pack="material"></script> // or, from script before first paint: // JuneauViews.icons.pack("material"); - See Also:
-
REGIONS_JS_PATH
The URL path at which the opt-in region-populate runtime is served (relative to the host mount). A page with nodata-juneau-regionelement never needs to load it.Load order is a contract, not a preference:
This
<script>MUST come afterjuneau-views.js. The region runtime publishes onto the samewindow.JuneauViewsnamespace thatjuneau-views.jscreates, and reuses that runtime'srenderAsyncStatusstatus renderer rather than defining one of its own.- See Also:
-
HELPERS_JS_PATH
The URL path at which the opt-in region-populate paint library is served (relative to the host mount). A page of purely custom regions (every populate hand-writes its own DOM) never needs to load it.Load order is a contract, not a preference:
This
<script>MUST come afterjuneau-regions.js(itself afterjuneau-views.js).fieldGrid's renderer dispatch reads the renderer registryjuneau-views.jspublishes and its markdown/sanitized-HTML paths reuse that runtime's allowlist copiers, andctx.helpers(a bare pass-through of this asset's exports) is a field of thectxjuneau-regions.jsfreezes.- See Also:
-
DATA_JS_PATH
[GET] path of the DataRegistry runtime (JuneauViews.data): the frames behinddata:bus topics. Loaded afterBUS_JS_PATH; the"data"toolkit pack serves it.- See Also:
-
RUN_VIEW_JS_PATH
The URL path at which the opt-in terminal-view module is served (relative to the host mount).Load order is a contract, not a preference:
This
<script>MUST come afterjuneau-regions.js(itself afterjuneau-views.js) and beforejuneau-helpers.js. It registers its populator withjuneau-regions.jsat load time; icons are built throughJuneauViews.helpers.icon, which is resolved at call time, so loading beforejuneau-helpers.jsis safe.- Since:
- 10.0.0
- See Also:
-
CONFIG_JS_PATH
The URL path at which the opt-in column-chooser runtime is served (relative to the host mount). A consumer adds this<script>afterjuneau-views.js; a non-configurable table never loads it.- See Also:
-
CONFIG_CSS_PATH
The URL path at which the opt-in column-chooser stylesheet is served (relative to the host mount).- See Also:
-
CALENDAR_JS_PATH
Deprecated.The calendar runtime now ships in the widget module; composeWidgetsMixinand use its constant of the same name. This one remains only so that an application composing this mixin alone keeps serving the asset at the same URL.The URL path at which the opt-in reusable-calendar runtime is served (relative to the host mount). A page with no calendar never loads it.Load order is a contract, not a preference:
This
<script>MUST come afterjuneau-views.js. The calendar's"+N more"popover is pushed onto the ONE shared layer stack thatjuneau-views.jspublishes, so that Escape, focus return and z-order are the same as every other layer in the page. The calendar deliberately defines no second stack of its own: if the shared one is absent it fails loud (console error plus a visible in-cell refusal) rather than quietly opening a popover nothing can dismiss.- See Also:
-
CALENDAR_CSS_PATH
Deprecated.The calendar stylesheet now ships in the widget module; composeWidgetsMixinand use its constant of the same name. This one remains only so that an application composing this mixin alone keeps serving the asset at the same URL.The URL path at which the opt-in reusable-calendar stylesheet is served (relative to the host mount).- See Also:
-
CONSOLE_JS_PATH
The URL path at which the console shell runtime is served (relative to the host mount).juneau-console.jsmounts the C1 page contract (header, nav, cards, footer) from a page's#juneau-pagescript island. This module takes a compile-scope dependency onjuneau-consoleso that aviews-only application can serve the console shell from the same mixin it already composes, without separately addingConsoleChromeMixin. The toolkit pack (juneau-views.jsand siblings) deliberately does not bundle this script: a console page's shell loads it once viaPageCapture.writeBody, and a second copy from the toolkit pack would double-load the runtime.Example:
// A views-only application serves the console shell at the same stable (unprefixed) path ConsoleChromeMixin serves it at. @Rest (mixins=ViewsMixin.class )public class MyResource {}// GET /juneau-console.js now returns the shell runtime. - See Also:
-
CONTRACT_VERSION
The frozenVIEW_METAcontract-version handshake constant. FTL<@card type="datatables">catalogs emit this on the liftedviewobject.Templates never author
view.contractVersion: the framework stamps this value when it lifts the catalog, so a contract bump never touches adopter templates. A pre-built envelope body is rejected at render time, andConsoleTemplateValidator'sview-contract-versionrule flags a literal pin statically.- See Also:
-
HEADER_CONTRACT_VERSION
The app-header refresh-envelope contract-version handshake constant that the console shell bakes in. Deliberately distinct fromCONTRACT_VERSIONandBAR_CONTRACT_VERSION: a header-envelope revision must never force a view-sidecar or bar-sidecar bump, or vice-versa.- See Also:
-
BAR_CONTRACT_VERSION
The bar-slot refresh-envelope contract-version handshake constant that the console shell bakes in. Deliberately a distinct constant fromHEADER_CONTRACT_VERSION(see that constant).- See Also:
-
SLOT_CONTRACT_VERSION
The slot-envelope (SLOT_META) contract-version handshake constant thatjuneau-views.jsbakes in. Deliberately a distinct constant fromCONTRACT_VERSION(the innerVIEW_METAobject): a slot-envelope revision must never force a view-sidecar bump, or vice-versa.- See Also:
-
-
Constructor Details
-
ViewsMixin
public ViewsMixin()
-
-
Method Details
-
getViewsScript
[GET /juneau-views.js] — serve the client initializer.- Returns:
- The initializer as a JavaScript
HttpResource.
-
getRibbonScript
[GET /juneau-ribbon.js] — serve the ribbon/toolbar runtime.- Returns:
- The ribbon runtime as a JavaScript
HttpResource.
-
getRendersScript
[GET /juneau-renders.js] — serve the renderer registry.- Returns:
- The renderer registry as a JavaScript
HttpResource.
-
getViewsStylesheet
[GET /juneau-views.css] — serve the base view stylesheet.- Returns:
- The base stylesheet as a CSS
HttpResource.
-
getIconsScript
[GET /juneau-icons.js] — serve the icon registry.- Returns:
- The icon registry as a JavaScript
HttpResource.
-
getSearchScript
[GET /juneau-search.js] — serve the column-search engine.- Returns:
- The column-search engine as a JavaScript
HttpResource.
-
getPageStateScript
[GET /juneau-pagestate.js] — serve the general page-state store.- Returns:
- The page-state store as a JavaScript
HttpResource.
-
getUrlStateScript
[GET /juneau-urlstate.js] — serve the shareable-link URL-state codec.- Returns:
- The URL-state codec as a JavaScript
HttpResource.
-
getBusScript
[GET /juneau-bus.js] — serve the in-page message bus.- Returns:
- The message bus as a JavaScript
HttpResource.
-
getSymbolsSvg
[GET /juneau-symbols.svg] — serve the shared SVG symbol sprite.- Returns:
- The sprite as an SVG
HttpResource.
-
getSymbolsMaterialSvg
[GET /juneau-symbols-material.svg] — serve the opt-in Material Symbols Outlined sprite.- Returns:
- The Material sprite as an SVG
HttpResource.
-
getRegionsScript
[GET /juneau-regions.js] — serve the opt-in region-populate runtime.- Returns:
- The region-populate runtime as a JavaScript
HttpResource.
-
getHelpersScript
[GET /juneau-helpers.js] — serve the opt-in region-populate paint library.- Returns:
- The paint library as a JavaScript
HttpResource.
-
getDataScript
[GET /juneau-data.js] — serve the DataRegistry runtime.- Returns:
- The runtime as a JavaScript
HttpResource.
-
getTerminalViewScript
[GET /juneau-terminal-view.js] — serve the opt-in terminal-view module.- Returns:
- The terminal-view module as a JavaScript
HttpResource. - Since:
- 10.0.0
-
getConfigScript
[GET /juneau-config.js] — serve the opt-in column-chooser runtime (column configuration is localStorage-persisted).- Returns:
- The column-chooser runtime as a JavaScript
HttpResource.
-
getConfigStylesheet
[GET /juneau-config.css] — serve the opt-in column-chooser stylesheet.- Returns:
- The column-chooser stylesheet as a CSS
HttpResource.
-
viewAssetUrl
Returns the servlet-relative URL for a served asset, carrying a?v=<buildVersion>-<hash8>content- sensitive cache-buster suitable for a page'shead=block (see the class Javadoc's cache-busting section for why the buster is content- rather than purely version-keyed).- Parameters:
path- One of the asset path constants (VIEWS_JS_PATH,RIBBON_JS_PATH,BUS_JS_PATH,RENDERS_JS_PATH,VIEWS_CSS_PATH,ICONS_JS_PATH,SYMBOLS_SVG_PATH,SYMBOLS_MATERIAL_SVG_PATH,REGIONS_JS_PATH,HELPERS_JS_PATH,DATA_JS_PATH,RUN_VIEW_JS_PATH,CONFIG_JS_PATH,CONFIG_CSS_PATH,CALENDAR_JS_PATH,CALENDAR_CSS_PATH,DATATABLES_JS_PATH).- Returns:
- The servlet-relative asset URL with the version+content-hash cache-buster appended.
-
viewAssetUrl
Returns a real, browser-fetchable absolute URL for a served asset, resolved against the given request's context path and mount — carrying the same?v=<buildVersion>-<hash8>content- sensitive cache-buster asviewAssetUrl(String)(see the class Javadoc's cache-busting section).viewAssetUrl(String)returns aservlet:-prefixed URL that only Juneau's own HTML serializer resolves (it rewritesservlet:against the request at render time). A template-rendering consumer (e.g.juneau-rest-server-view-freemarker) sits downstream of that serializer, so it never sees the rewrite and would otherwise receive the literal, unfetchable string. This overload resolves the URL itself, per-request, the same wayConsoleChromeMixin.assetUrl(RestRequest, ...)does — viaRestRequest.getUriResolver()— so it is usable from any consumer, template-rendered or not.- Parameters:
req- The current request, supplying the context path/mount to resolve against.path- One of the asset path constants (VIEWS_JS_PATH,RIBBON_JS_PATH,BUS_JS_PATH,RENDERS_JS_PATH,VIEWS_CSS_PATH,ICONS_JS_PATH,SYMBOLS_SVG_PATH,SYMBOLS_MATERIAL_SVG_PATH,REGIONS_JS_PATH,HELPERS_JS_PATH,DATA_JS_PATH,RUN_VIEW_JS_PATH,CONFIG_JS_PATH,CONFIG_CSS_PATH,CALENDAR_JS_PATH,CALENDAR_CSS_PATH,DATATABLES_JS_PATH).- Returns:
- The absolute asset URL with the version+content-hash cache-buster appended.
-
getCalendarScript
Deprecated.ComposeWidgetsMixininstead, which ships these bytes. This mount stays so that an application composing only this mixin keeps serving the asset at the same URL with the same body.[GET /juneau-calendar.js] — serve the opt-in reusable-calendar runtime from the widget module's classpath.- Returns:
- The calendar runtime as a JavaScript
HttpResource.
-
getCalendarStylesheet
Deprecated.ComposeWidgetsMixininstead, which ships these bytes. This mount stays so that an application composing only this mixin keeps serving the asset at the same URL with the same body.[GET /juneau-calendar.css] — serve the opt-in reusable-calendar stylesheet from the widget module's classpath.- Returns:
- The calendar stylesheet as a CSS
HttpResource.
-
getConsoleJs
[GET /juneau-console.js] — serve the console shell runtime from the console-ui module's classpath.- Returns:
- The console shell runtime as a JavaScript
HttpResource.
-
WidgetsMixinand use its constant of the same name.