You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/10/31 06:15:01 UTC

[03/23] isis-site git commit: adds link to imworld video

http://git-wip-us.apache.org/repos/asf/isis-site/blob/d73cbc96/content/guides/ugvro/ugvro.html
----------------------------------------------------------------------
diff --git a/content/guides/ugvro/ugvro.html b/content/guides/ugvro/ugvro.html
index c8f6565..bc14948 100644
--- a/content/guides/ugvro/ugvro.html
+++ b/content/guides/ugvro/ugvro.html
@@ -654,7 +654,277 @@ table.CodeRay td.code>pre{padding:0}
        </div> 
       </div> 
       <div class="sect1"> 
-       <h2 id="_ugvro_simplified-representations">4. Simplified Representations</h2>
+       <h2 id="_ugvro_layout-resources">4. Layout Resources (<code>1.16.0-SNAPSHOT</code>)</h2>
+       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+        <ul class="dropdown-menu">
+         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+        </ul>
+       </div> 
+       <div class="sectionbody"> 
+        <div class="paragraph"> 
+         <p>(As of <code>1.16.0-SNAPSHOT</code>) Apache Isis' Restful Objects viewer provides a number of additional resource endpoints that provide representations of the object layout (as per <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_GridService"><code>GridService</code></a>) and of the menu layout (as per <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_MenuBarsService"><code>MenuBarsService</code></a>).</p> 
+        </div> 
+        <div class="paragraph"> 
+         <p>This chapter provides details of these resources, the link <code>Rel</code>s to access them, and the resultant representations.</p> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_ugvro_layout-resources_menubars">4.1. MenuBars</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_menubars.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_menubars.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_menubars.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_menubars.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_menubars.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
+         <div class="paragraph"> 
+          <p>The <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_MenuBarsService"><code>MenuBarsService</code></a> provides the <code>menu.layout.xml</code> XML document which defines how to group the various domain service actions into menubars, menus and menu sections.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For example, the <a href="../ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype">Hello World archetype</a> has the following layout:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;mnu:menuBars</span> <span class="attribute-name">xmlns:mnu</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/menus</span><span class="delimiter">"</span></span> <span class="attribute-name">xmlns:lnk</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/links</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+  <span class="tag">&lt;mnu:primary&gt;</span>
+    <span class="tag">&lt;mnu:menu&gt;</span>
+      <span class="tag">&lt;mnu:named&gt;</span>Hello World Objects<span class="tag">&lt;/mnu:named&gt;</span>
+      <span class="tag">&lt;mnu:section&gt;</span>
+        <span class="tag">&lt;mnu:action</span> <span class="attribute-name">oid</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+          <span class="tag">&lt;mnu:named&gt;</span>Create<span class="tag">&lt;/mnu:named&gt;</span>
+        <span class="tag">&lt;/mnu:action&gt;</span>
+        ...
+      <span class="tag">&lt;/mnu:section&gt;</span>
+      ...
+    <span class="tag">&lt;/mnu:menu&gt;</span>
+  <span class="tag">&lt;/mnu:primary&gt;</span>
+  ...
+<span class="tag">&lt;/mnu:menuBars&gt;</span></code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The representation returned by home page resource (section 5.2 of the RO spec v1.0) has been extended to provide a link to this resource:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="javascript">{
+  <span class="key"><span class="delimiter">"</span><span class="content">links</span><span class="delimiter">"</span></span>: [
+    ...
+    {
+      <span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.apache.isis.restfulobjects:rels/menuBars</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/menuBars</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/layout-menubars'</span><span class="delimiter">"</span></span>
+    },
+  ],
+  ...
+}</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The representation returned by the <code>/menuBars</code> resource (assuming an HTTP header of <code>Accept: applicatoin/xml</code>) is a superset of the <code>menu.layout.xml</code>; each action also includes a <code>link</code> to the corresponding Restful Objects resource:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;mnu:action</span> <span class="attribute-name">oid</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+  <span class="tag">&lt;mnu:named&gt;</span>Create<span class="tag">&lt;/mnu:named&gt;</span>
+  <span class="tag">&lt;mnu:link&gt;</span>
+    <span class="tag">&lt;lnk:rel&gt;</span>urn:org.restfulobjects:rels/action<span class="tag">&lt;/lnk:rel&gt;</span>
+    <span class="tag">&lt;lnk:method&gt;</span>GET<span class="tag">&lt;/lnk:method&gt;</span>
+    <span class="tag">&lt;lnk:href&gt;</span>
+      http://localhost:8080/restful/objects/helloworld.HelloWorldObjects/1/actions/create
+    <span class="tag">&lt;/lnk:href&gt;</span>
+    <span class="tag">&lt;lnk:type&gt;</span>
+      application/json;profile="urn:org.restfulobjects:repr-types/object-action"
+    <span class="tag">&lt;/lnk:type&gt;</span>
+  <span class="tag">&lt;/mnu:link&gt;</span>
+<span class="tag">&lt;/mnu:action&gt;</span></code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>This can also be obtained in JSON format in the usual way (by specifying an HTTP header of <code>Accept: application/json</code>):</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="json"><span class="key"><span class="delimiter">"</span><span class="content">action</span><span class="delimiter">"</span></span>: [
+{
+  <span class="key"><span class="delimiter">"</span><span class="content">oid</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span>,
+  <span class="key"><span class="delimiter">"</span><span class="content">id</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span>,
+  <span class="key"><span class="delimiter">"</span><span class="content">named</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">Create</span><span class="delimiter">"</span></span>,
+  <span class="key"><span class="delimiter">"</span><span class="content">link</span><span class="delimiter">"</span></span>: {
+    <span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.restfulobjects:rels/action</span><span class="delimiter">"</span></span>,
+    <span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
+    <span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/objects/helloworld.HelloWorldObjects/1/actions/create</span><span class="delimiter">"</span></span>,
+    <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/object-action'</span><span class="delimiter">"</span></span>
+   }
+}</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_ugvro_layout-resources_domain-object-layout">4.2. Domain Object Layout</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-object-layout.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-object-layout.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-object-layout.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-object-layout.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-object-layout.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
+         <div class="paragraph"> 
+          <p>The <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_GridService"><code>GridService</code></a> provides an XML document which defines the layout of any of domain object. Typically this is the contents of the <code>Xxx.layout.xml</code> file (where <code>Xxx</code> is the domain type).</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For example, in the <a href="../ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype">Hello World archetype</a> the <code>HelloWorld</code> domain object has a layout defined by <code>HelloWorld.layout.xml</code>.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The representation returned by the domain object resource (section 14.4 of the RO spec v1.0) has been extended to provide a link to this resource:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="javascript">{
+  <span class="key"><span class="delimiter">"</span><span class="content">links</span><span class="delimiter">"</span></span>: [
+    ...
+    {
+      <span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.apache.isis.restfulobjects:rels/object-layout</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/objects/helloworld.HelloWorldObject/0/object-layout</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/object'</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">title</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">Object: a</span><span class="delimiter">"</span></span>
+    },
+  ],
+  ...
+}</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>In a similar way to the <code>menu.layout.xml</code>, the representations is supplemented with <code>link</code>s nodes that link back to the standard Restful Objects resources:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p><code>domainObject</code></p> </li> 
+           <li> <p><code>property</code></p> </li> 
+           <li> <p><code>collection</code></p> </li> 
+           <li> <p><code>action</code></p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For example, the layout for a "HelloWorldObject" instance in the hello world archetype (with <code>Accept: appication/xml</code> HTTP header) is:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="xml"><span class="preprocessor">&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;</span>
+<span class="tag">&lt;bs3:grid</span> <span class="attribute-name">xmlns:cpt</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/component</span><span class="delimiter">"</span></span>
+          <span class="attribute-name">xmlns:lnk</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/links</span><span class="delimiter">"</span></span>
+          <span class="attribute-name">xmlns:bs3</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/grid/bootstrap3</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+  <span class="tag">&lt;bs3:row&gt;</span>
+    <span class="tag">&lt;bs3:col</span> <span class="attribute-name">span</span>=<span class="string"><span class="delimiter">"</span><span class="content">12</span><span class="delimiter">"</span></span> <span class="attribute-name">unreferencedActions</span>=<span class="string"><span class="delimiter">"</span><span class="content">true</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+      <span class="tag">&lt;cpt:domainObject</span> <span class="attribute-name">bookmarking</span>=<span class="string"><span class="delimiter">"</span><span class="content">AS_ROOT</span><span class="delimiter">"</span></span><span class="tag">&gt;</span>
+          <span class="tag">&lt;cpt:link&gt;</span>
+          <span class="tag">&lt;lnk:rel&gt;</span>urn:org.restfulobjects:rels/element<span class="tag">&lt;/lnk:rel&gt;</span>
+          <span class="tag">&lt;lnk:method&gt;</span>GET<span class="tag">&lt;/lnk:method&gt;</span>
+          <span class="tag">&lt;lnk:href&gt;</span>http://localhost:8080/restful/objects/helloworld.HelloWorldObject/0<span class="tag">&lt;/lnk:href&gt;</span>
+          <span class="tag">&lt;lnk:type&gt;</span>application/json;profile="urn:org.restfulobjects:repr-types/object"<span class="tag">&lt;/lnk:type&gt;</span>
+        <span class="tag">&lt;/cpt:link&gt;</span>
+      <span class="tag">&lt;/cpt:domainObject&gt;</span>
+    <span class="tag">&lt;/bs3:col&gt;</span>
+  <span class="tag">&lt;/bs3:row&gt;</span>
+  ...
+<span class="tag">&lt;/bs3:grid&gt;</span></code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>This can also be obtained as JSON (using <code>Accept: application/json</code> HTTP header):</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="javascript">{
+  <span class="key"><span class="delimiter">"</span><span class="content">row</span><span class="delimiter">"</span></span>: [
+    {
+      <span class="key"><span class="delimiter">"</span><span class="content">cols</span><span class="delimiter">"</span></span>: [
+        {
+          <span class="key"><span class="delimiter">"</span><span class="content">col</span><span class="delimiter">"</span></span>: {
+            <span class="key"><span class="delimiter">"</span><span class="content">domainObject</span><span class="delimiter">"</span></span>: {
+              <span class="key"><span class="delimiter">"</span><span class="content">link</span><span class="delimiter">"</span></span>: {
+                <span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.restfulobjects:rels/element</span><span class="delimiter">"</span></span>,
+                <span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
+                <span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/objects/helloworld.HelloWorldObject/0</span><span class="delimiter">"</span></span>,
+                <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/object'</span><span class="delimiter">"</span></span>
+              },
+              <span class="key"><span class="delimiter">"</span><span class="content">bookmarking</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">AS_ROOT</span><span class="delimiter">"</span></span>,
+            },
+            <span class="key"><span class="delimiter">"</span><span class="content">span</span><span class="delimiter">"</span></span>: <span class="integer">12</span>,
+            <span class="key"><span class="delimiter">"</span><span class="content">unreferencedActions</span><span class="delimiter">"</span></span>: <span class="predefined-constant">true</span>
+          }
+        }
+      ]
+    }
+    ...
+  ]
+}</code></pre> 
+          </div> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_ugvro_layout-resources_domain-type-layout">4.3. Domain Type Layout</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-type-layout.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-type-layout.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-type-layout.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-type-layout.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_layout-resources_domain-type-layout.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
+         <div class="paragraph"> 
+          <p>The representation of the domain types resource (section 22.2 of RO spec v1.0) has also been extended to return the (type) layout:</p> 
+         </div> 
+         <div class="listingblock"> 
+          <div class="content"> 
+           <pre class="CodeRay highlight"><code data-lang="javascript">{
+  <span class="key"><span class="delimiter">"</span><span class="content">links</span><span class="delimiter">"</span></span>: [
+    ...
+    {
+      <span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.apache.isis.restfulobjects:rels/layout</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/domain-types/helloworld.HelloWorldObject/layout</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
+      <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/layout-bs3'</span><span class="delimiter">"</span></span>
+    }
+  ],
+  ...
+}</code></pre> 
+          </div> 
+         </div> 
+         <div class="paragraph"> 
+          <p>The representation returned by this resource is essentially exactly the same as the layout returned by <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_GridService"><code>GridService</code></a> (it is not dynamically extended with links).</p> 
+         </div> 
+        </div> 
+        <div class="sect2"> 
+         <h3 id="_static_vs_dynamic_resources">4.4. Static vs Dynamic Resources</h3> 
+         <div class="paragraph"> 
+          <p>The <a href="#_ugvro_layout-resources_menu-layout">menu layout</a> representation includes all possible domain services; it does not follow that the current user has access to all of these actions (some may be hidden or disabled).</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>Similarly, the <a href="#<em>ugvro_layout-resources_domain-object-layout">domain object layout</a> representation include all _possible properties, collections and actions of the domain object; again, the current user may not have access to all of these members. It is also often the case that the domain object’s internal state will determine which members to make available (eg, show only one of "lock" and "unlock" actions at any given time).</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>To determine what should actually be rendered, the REST client should follow the links to the standard Restful Objects resources.</p> 
+         </div> 
+        </div> 
+       </div> 
+      </div> 
+      <div class="sect1"> 
+       <h2 id="_ugvro_simplified-representations">5. Simplified Representations</h2>
        <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
         <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
         <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -673,7 +943,7 @@ table.CodeRay td.code>pre{padding:0}
          <p>As of <code>1.11.0</code>, Apache Isis provides support for its own simplified representation for the most commonly-used representations. This is implemented using the <code>ContentNegotiationService</code> described in the <a href="../ugvro/ugvro.html#_ugvro_architecture">architecture</a> chapter.</p> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_simplified-representations_apache-isis-profile">4.1. The Apache Isis "Profile"</h3>
+         <h3 id="_ugvro_simplified-representations_apache-isis-profile">5.1. The Apache Isis "Profile"</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations_apache-isis-profile.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -714,7 +984,7 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_simplified-representations_domain-object">4.2. Domain Object</h3>
+         <h3 id="_ugvro_simplified-representations_domain-object">5.2. Domain Object</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations_domain-object.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -835,7 +1105,7 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_simplified-representations_object-collection">4.3. Domain Object Collection</h3>
+         <h3 id="_ugvro_simplified-representations_object-collection">5.3. Domain Object Collection</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations_object-collection.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -947,7 +1217,7 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_simplified-representations_action-invocation">4.4. Action Invocation</h3>
+         <h3 id="_ugvro_simplified-representations_action-invocation">5.4. Action Invocation</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations_action-invocation.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -962,7 +1232,7 @@ table.CodeRay td.code>pre{padding:0}
           <p>When an action is invoked, it can return a domain object, a list, a scalar, or return nothing.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_returning_an_object">4.4.1. Returning an Object</h4> 
+          <h4 id="_returning_an_object">5.4.1. Returning an Object</h4> 
           <div class="paragraph"> 
            <p>If the action returned an object, then the domain object representation described <a href="../ugvro/ugvro.html#__ugvro_simplified-representations_domain-object">above</a> is returned.</p> 
           </div> 
@@ -1015,7 +1285,7 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_returning_a_list">4.4.2. Returning a List</h4> 
+          <h4 id="_returning_a_list">5.4.2. Returning a List</h4> 
           <div class="paragraph"> 
            <p>On the other hand if the action returned a list (a "standalone" collection, then an array representation is returned. This is very similar to that returned by a <a href="../ugvro/ugvro.html#__ugvro_simplified-representations_object-collection">(parented) object collection</a>, though with a slightly different <code>Content-Type</code> to distinguish.</p> 
           </div> 
@@ -1079,14 +1349,14 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_returning_scalar_nothing">4.4.3. Returning Scalar/Nothing</h4> 
+          <h4 id="_returning_scalar_nothing">5.4.3. Returning Scalar/Nothing</h4> 
           <div class="paragraph"> 
            <p>Note that actions returning scalar values or nothing (which includes <code>void</code> actions) are not supported; for these the regular RO spec representation will be returned.</p> 
           </div> 
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="__ugvro_simplified-representations_other-representations">4.5. Other Representations</h3> 
+         <h3 id="__ugvro_simplified-representations_other-representations">5.5. Other Representations</h3> 
          <div class="paragraph"> 
           <p>Sometimes though you may want to extend or change the representations generated. This might be because you want to write a RESTful client that uses a particular library (say a Javascript library or web components) that can only handle representations in a certain form.</p> 
          </div> 
@@ -1128,7 +1398,7 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_simplified-representations_configuration-properties">4.6. Global Config Props (Deprecated)</h3>
+         <h3 id="_ugvro_simplified-representations_configuration-properties">5.6. Global Config Props (Deprecated)</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_simplified-representations_configuration-properties.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1152,7 +1422,7 @@ table.CodeRay td.code>pre{padding:0}
        </div> 
       </div> 
       <div class="sect1"> 
-       <h2 id="_ugvro_configuration-properties">5. Configuration Properties</h2>
+       <h2 id="_ugvro_configuration-properties">6. Configuration Properties</h2>
        <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
         <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_configuration-properties.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
         <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1171,7 +1441,7 @@ table.CodeRay td.code>pre{padding:0}
          <p>These configuration properties are typically stored in <code>WEB-INF/viewer_restfulobjects.properties</code>. However, you can place all configuration properties into <code>WEB-INF/isis.properties</code> if you wish (the configuration properties from all config files are merged together).</p> 
         </div> 
         <div class="sect2"> 
-         <h3 id="__ugvro_configuration-properties_standard">5.1. Standard</h3> 
+         <h3 id="__ugvro_configuration-properties_standard">6.1. Standard</h3> 
          <div class="paragraph"> 
           <p>The following configuration properties are supported:</p> 
          </div> 
@@ -1216,7 +1486,7 @@ table.CodeRay td.code>pre{padding:0}
          </table> 
         </div> 
         <div class="sect2"> 
-         <h3 id="__ugvro_configuration-properties_deprecated">5.2. Deprecated</h3> 
+         <h3 id="__ugvro_configuration-properties_deprecated">6.2. Deprecated</h3> 
          <div class="paragraph"> 
           <p>There are also a number of configuration properties that can be used to suppress or simplify the default RO-spec representations.</p> 
          </div> 
@@ -1396,7 +1666,7 @@ isis.viewer.restfulobjects.suppressMemberDisabledReason=true</code></pre>
        </div> 
       </div> 
       <div class="sect1"> 
-       <h2 id="_ugvro_hints-and-tips">6. Hints and Tips</h2>
+       <h2 id="_ugvro_hints-and-tips">7. Hints and Tips</h2>
        <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
         <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
         <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1431,7 +1701,7 @@ isis.viewer.restfulobjects.suppressMemberDisabledReason=true</code></pre>
          <p>This section provides a few hints-and-tips to help you on your way.</p> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_hints-and-tips_using-chrome-devtools">6.1. Using Chrome Dev Tools</h3>
+         <h3 id="_ugvro_hints-and-tips_using-chrome-devtools">7.1. Using Chrome Dev Tools</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_using-chrome-devtools.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1447,7 +1717,7 @@ isis.viewer.restfulobjects.suppressMemberDisabledReason=true</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_hints-and-tips_angular-tips">6.2. Angular Tips</h3>
+         <h3 id="_ugvro_hints-and-tips_angular-tips">7.2. Angular Tips</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_angular-tips.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1465,7 +1735,7 @@ isis.viewer.restfulobjects.suppressMemberDisabledReason=true</code></pre>
           <p>This page captures one or two tips on using Angular to write such a bespoke client.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_invoking_a_get_link_eg_invoking_a_query_action">6.2.1. Invoking a GET link (eg invoking a query action)</h4> 
+          <h4 id="_invoking_a_get_link_eg_invoking_a_query_action">7.2.1. Invoking a GET link (eg invoking a query action)</h4> 
           <div class="paragraph"> 
            <p>Suppose you have a <code>CustomerService</code> providing a <code>findCustomer</code> action:</p> 
           </div> 
@@ -1519,7 +1789,7 @@ findCustomer.get({<span class="key">queryString</span>: JSON.stringify(findCusto
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_invoking_a_put_or_post_link">6.2.2. Invoking a PUT or POST link</h4> 
+          <h4 id="_invoking_a_put_or_post_link">7.2.2. Invoking a PUT or POST link</h4> 
           <div class="paragraph"> 
            <p>If the method is a PUT or a POST, then no <code>:queryString</code> placeholder is required in the URL, and the args are instead part of the body.</p> 
           </div> 
@@ -1529,7 +1799,7 @@ findCustomer.get({<span class="key">queryString</span>: JSON.stringify(findCusto
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_hints-and-tips_pretty-printing">6.3. Pretty printing</h3>
+         <h3 id="_ugvro_hints-and-tips_pretty-printing">7.3. Pretty printing</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_pretty-printing.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -1545,7 +1815,7 @@ findCustomer.get({<span class="key">queryString</span>: JSON.stringify(findCusto
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugvro_hints-and-tips_restful-image-property">6.4. How parse images in RO viewer?</h3>
+         <h3 id="_ugvro_hints-and-tips_restful-image-property">7.4. How parse images in RO viewer?</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_restful-image-property.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>