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/03/16 10:10:09 UTC

[2/5] isis-site git commit: ISIS-1561: updates to docs

http://git-wip-us.apache.org/repos/asf/isis-site/blob/9c5051a7/content/guides/ugbtb.html
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb.html b/content/guides/ugbtb.html
index 733513c..9476acd 100644
--- a/content/guides/ugbtb.html
+++ b/content/guides/ugbtb.html
@@ -523,7 +523,8 @@ table.CodeRay td.code>pre{padding:0}
         <p>In this topic we\u2019ll explore those use cases, and learn the programming model and conventions to use view models in your application.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_view-models_use-cases">2.1. Use Cases</h3> 
+        <h3 id="_ugbtb_view-models_use-cases">2.1. Use Cases</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_view-models_use-cases.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>When developing an Apache Isis application you will most likely start off with the persistent domain entities: <code>Customer</code>, <code>Order</code>, <code>Product</code>, and so on. For some applications this may well suffice. However, if the application needs to integrate with other systems, or if the application needs to support reasonably complex business processes, then you may need to look beyond just domain entities. This section explores these use cases.</p> 
         </div> 
@@ -658,7 +659,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_view-models_programming-model">2.2. Programming Model</h3> 
+        <h3 id="_ugbtb_view-models_programming-model">2.2. Programming Model</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_view-models_programming-model.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>So much for the theory; how should view models be implemented? Fundamentally all view models' state is serialized into a string memento; this memento is then held by the client (browser) in the form of a URL. As you might imagine, this URL can become quite long, but Apache Isis offers a mechanism (the <a href="rgsvc.html#_rgsvc_spi_UrlEncodingService"><code>UrlEncodingService</code></a>) if it exceeds the maximum length for a URL (2083 characters). Also, of course, this string memento must only contain characters that it is valid for use within a URL.</p> 
         </div> 
@@ -829,7 +831,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_view-models_jaxb">2.3. JAXB-annotated DTOs</h3> 
+        <h3 id="_ugbtb_view-models_jaxb">2.3. JAXB-annotated DTOs</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_view-models_jaxb.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>As noted in the <a href="#_ugbtb_view-models_use-cases">introduction</a>, view models can also be defined using JAXB annotations. The serialized form of these view models is therefore XML, which also enables these view models to act as DTOs.</p> 
         </div> 
@@ -1350,7 +1353,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </table> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_db-schemas">3.1. Database Schemas</h3> 
+        <h3 id="_ugbtb_decoupling_db-schemas">3.1. Database Schemas</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_db-schemas.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>In the same way that Java packages act as a namespace for domain objects, it\u2019s good practice to map domain entities to their own (database) schemas. As of 1.9.0, all the <a href="http://www.isisaddons.org">Isis Addons</a> (non-ASF) modules do this, for example:</p> 
         </div> 
@@ -1513,7 +1517,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_mixins">3.2. Mixins</h3> 
+        <h3 id="_ugbtb_decoupling_mixins">3.2. Mixins</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_mixins.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>A mixin object allows one class to contribute behaviour - actions, (derived) properties and (derived) collections - to another domain object, either a domain entity or view model.</p> 
         </div> 
@@ -1852,7 +1857,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_contributions">3.3. Contributions</h3> 
+        <h3 id="_ugbtb_decoupling_contributions">3.3. Contributions</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_contributions.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Contributed services provide many of the same benefits as <a href="#_ugbtb_decoupling_mixins">mixins</a>; indeed mixins are an evolution and refinement of the contributions concept.</p> 
         </div> 
@@ -1984,7 +1990,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_vetoing-visibility">3.4. Vetoing Visibility</h3> 
+        <h3 id="_ugbtb_decoupling_vetoing-visibility">3.4. Vetoing Visibility</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_vetoing-visibility.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -2006,7 +2013,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_event-bus">3.5. Event Bus</h3> 
+        <h3 id="_ugbtb_decoupling_event-bus">3.5. Event Bus</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_event-bus.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -2019,7 +2027,8 @@ public <span class="type">class</span> <span class="class">ToDoItemV1_1</span> <
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_decoupling_pushing-changes">3.6. Pushing Changes</h3> 
+        <h3 id="_ugbtb_decoupling_pushing-changes">3.6. Pushing Changes</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_decoupling_pushing-changes.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -3045,7 +3054,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         <p>The API described in this chapter is reasonably low-level, allowing code to interact very directly with the Apache Isis metamodel and runtime. Such callers should be considered trusted: they do not (by default) honour any business rules eg implicit in the Isis annotations or hide/disable/validate methods. However the <a href="rgsvc.html#_rgsvc_api_WrapperFactory"><code>WrapperFactory</code></a> service could be used to enforce such business rules if required.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_headless-access_AbstractIsisSessionTemplate">5.1. AbstractIsisSessionTemplate</h3> 
+        <h3 id="_ugbtb_headless-access_AbstractIsisSessionTemplate">5.1. AbstractIsisSessionTemplate</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_headless-access_AbstractIsisSessionTemplate.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The <code>AbstractIsisSessionTemplate</code> class (whose name is inspired by the Spring framework\u2019s naming convention for similar classes that query <a href="http://docs.spring.io/spring/docs/2.5.x/reference/jdbc.html#jdbc-JdbcTemplate">JDBC</a>, <a href="http://docs.spring.io/spring/docs/2.5.x/reference/jms.html#jms-jmstemplate">JMS</a>, <a href="http://docs.spring.io/spring/docs/2.5.x/reference/orm.html#orm-jpa-template">JPA</a> etc.) provides the mechanism to open up a 'session' within the Apache Isis framework, in order to resolve and interact with entities.</p> 
         </div> 
@@ -3100,7 +3110,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_headless-access_BackgroundCommandExecution">5.2. BackgroundCommandExecution</h3> 
+        <h3 id="_ugbtb_headless-access_BackgroundCommandExecution">5.2. BackgroundCommandExecution</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_headless-access_BackgroundCommandExecution.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The <code>BackgroundCommandExecution</code> class (a subclass of <a href="#_ugbtb_headless-access_AbstractIsisSessionTemplate">AbstractIsisSessionTemplate</a>) is intended to simplify the execution of background <code>Command</code>s persisted by way of the <a href="rgsvc.html#_rgsvc_spi_CommandService"><code>CommandService</code></a> and the <a href="rgsvc.html#_rgsvc_spi_BackgroundCommandService"><code>BackgroundCommandService</code></a>.</p> 
         </div> 
@@ -3172,7 +3183,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         <p>This chapter pulls together a number of more advanced techniques that we\u2019ve discovered and developed while building our own Isis applications.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_other-techniques_mapping-rdbms-views">6.1. Mapping RDBMS Views</h3> 
+        <h3 id="_ugbtb_other-techniques_mapping-rdbms-views">6.1. Mapping RDBMS Views</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_other-techniques_mapping-rdbms-views.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -3185,7 +3197,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_other-techniques_transactions-and-errors">6.2. Transactions and Errors</h3> 
+        <h3 id="_ugbtb_other-techniques_transactions-and-errors">6.2. Transactions and Errors</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_other-techniques_transactions-and-errors.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>In Apache Isis, every interaction (action invocation or property edit) is automatically wrapped in a transaction, and any repository query automatically does a flush before hand.</p> 
         </div> 
@@ -3257,7 +3270,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_other-techniques_multi-tenancy">6.3. Multi-tenancy</h3> 
+        <h3 id="_ugbtb_other-techniques_multi-tenancy">6.3. Multi-tenancy</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_other-techniques_multi-tenancy.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Of the various Isis Addons, the <a href="https://github.com/isisaddons/isis-module-security">security module</a> has the most features. One significant feature is the ability to associate users and objects with a "tenancy".</p> 
         </div> 
@@ -3266,7 +3280,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_other-techniques_persisted-title">6.4. Persisted Title</h3> 
+        <h3 id="_ugbtb_other-techniques_persisted-title">6.4. Persisted Title</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_other-techniques_persisted-title.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Normally the title of an object is not persisted to the database, rather it is recomputed automatically from underlying properties. On occasion though you might want the title to also be persisted; either to make things easier for the DBA, or for an integration scenario, or some other purpose.</p> 
         </div> 
@@ -3357,7 +3372,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_other-techniques_replacing-default-service-implementations">6.5. Overriding Default Service Implns</h3> 
+        <h3 id="_ugbtb_other-techniques_replacing-default-service-implementations">6.5. Overriding Default Service Implns</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_other-techniques_replacing-default-service-implementations.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The framework provides default implementations for many of the <a href="#rgsvc.adoc">domain services</a>. This is convenient, but sometimes you will want to replace the default implementation with your own service implementation.</p> 
         </div> 
@@ -3458,7 +3474,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         <p>This chapter explains the main APIs to extend or alter the programming conventions that Apache Isis understands to build up its metamodel.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_programming-model_custom-validator">7.1. Custom validator</h3> 
+        <h3 id="_ugbtb_programming-model_custom-validator">7.1. Custom validator</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_programming-model_custom-validator.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Apache Isis' programming model includes a validator component that detects and prevents (by failing fast) a number of situations where the domain model is logically inconsistent.</p> 
         </div> 
@@ -3612,7 +3629,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_programming-model_finetuning">7.2. Finetuning</h3> 
+        <h3 id="_ugbtb_programming-model_finetuning">7.2. Finetuning</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_programming-model_finetuning.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The core metamodel defines APIs and implementations for building the Apache Isis metamodel: a description of the set of entities, domain services and values that make up the domain model.</p> 
         </div> 
@@ -3715,7 +3733,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_programming-model_layout-metadata-reader">7.3. Layout Metadata Reader</h3> 
+        <h3 id="_ugbtb_programming-model_layout-metadata-reader">7.3. Layout Metadata Reader</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_programming-model_layout-metadata-reader.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The metadata for domain objects is obtained both <a href="ugfun.html#_ugfun_object-layout_static">statically</a> and <a href="ugfun.html#_ugfun_object-layout_dynamic">dynamically</a>.</p> 
         </div> 
@@ -3863,7 +3882,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         <p>This chapter provides guidance on some common deployment scenarios.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_cmd-line">8.1. Command Line (<code>WebServer</code>)</h3> 
+        <h3 id="_ugbtb_deployment_cmd-line">8.1. Command Line (<code>WebServer</code>)</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_cmd-line.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>As well as deploying an Apache Isis application into a servlet container, it is also possible to invoke from the command line using the <code>org.apache.isis.WebServer</code> utility class. This is especially useful while developing and testing, but may also suit some deployment scenarios (eg running as a standalone EXE within a Docker container, for example). Internally the <code>WebServer</code> spins up a Jetty servlet container.</p> 
         </div> 
@@ -4141,7 +4161,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_tomcat">8.2. Deploying to Tomcat</h3> 
+        <h3 id="_ugbtb_deployment_tomcat">8.2. Deploying to Tomcat</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_tomcat.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Some pointers when deploying to Tomcat (or any other servlet container).</p> 
         </div> 
@@ -4170,7 +4191,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_externalized-configuration">8.3. Externalized Configuration</h3> 
+        <h3 id="_ugbtb_deployment_externalized-configuration">8.3. Externalized Configuration</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_externalized-configuration.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>As described <a href="rgcfg.html#_rgcfg_configuration-files">here</a>, by default Apache Isis itself bootstraps from the <code>isis.properties</code> configuration file. It will also read configuration from the (optional) component/implementation-specific configuration files (such as <code>persistor_datanucleus.properties</code> or <code>viewer_wicket.properties</code>), and also (optional) component-specific configuration files (such as <code>persistor.properties</code> or <code>viewer.properties</code>).</p> 
         </div> 
@@ -4457,7 +4479,8 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_docker">8.4. Docker</h3> 
+        <h3 id="_ugbtb_deployment_docker">8.4. Docker</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_docker.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>When running the application within a Docker container, the problem that must be solved is to override the configuration properties baked into the war file, eg to point to the app to a different JDBC URL.</p> 
         </div> 
@@ -4551,7 +4574,8 @@ export ISIS_OPTS="isis.appManifest=domainapp.app.DomainAppAppManifestWithFixture
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_gae">8.5. Deploying to Google App Engine</h3> 
+        <h3 id="_ugbtb_deployment_gae">8.5. Deploying to Google App Engine</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_gae.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The <a href="https://cloud.google.com/appengine/docs">Google App Engine</a> (GAE) provides a JDO API, meaning that you can deploy Apache Isis onto GAE using the JDO objectstore.</p> 
         </div> 
@@ -4610,7 +4634,8 @@ export ISIS_OPTS="isis.appManifest=domainapp.app.DomainAppAppManifestWithFixture
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_neo4j">8.6. Neo4J</h3> 
+        <h3 id="_ugbtb_deployment_neo4j">8.6. Neo4J</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_neo4j.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>As of 1.8.0 Apache Isis has experimental support for Neo4J, courtesy of DataNucleus' <a href="http://www.datanucleus.org/products/datanucleus/datastores/neo4j.html">Neo4J Datastore</a> implementation.</p> 
         </div> 
@@ -4697,7 +4722,8 @@ export ISIS_OPTS="isis.appManifest=domainapp.app.DomainAppAppManifestWithFixture
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugbtb_deployment_jvm-flags">8.7. JVM Flags</h3> 
+        <h3 id="_ugbtb_deployment_jvm-flags">8.7. JVM Flags</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugbtb_deployment_jvm-flags.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>

http://git-wip-us.apache.org/repos/asf/isis-site/blob/9c5051a7/content/guides/ugbtb.pdf
----------------------------------------------------------------------
diff --git a/content/guides/ugbtb.pdf b/content/guides/ugbtb.pdf
index a10064a..2ccebf3 100644
--- a/content/guides/ugbtb.pdf
+++ b/content/guides/ugbtb.pdf
@@ -4,8 +4,8 @@
 << /Title (Beyond the Basics)
 /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
 /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
-/CreationDate (D:20170308005308+00'00')
-/ModDate (D:20170308005308+00'00')
+/CreationDate (D:20170315211644+00'00')
+/ModDate (D:20170315211644+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/isis-site/blob/9c5051a7/content/guides/ugfun.html
----------------------------------------------------------------------
diff --git a/content/guides/ugfun.html b/content/guides/ugfun.html
index bfc5fe7..138b141 100644
--- a/content/guides/ugfun.html
+++ b/content/guides/ugfun.html
@@ -533,12 +533,14 @@ table.CodeRay td.code>pre{padding:0}
         </table> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_philosophy">2.1. Philosophy and Architecture</h3> 
+        <h3 id="_ugfun_core-concepts_philosophy">2.1. Philosophy and Architecture</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>This section describes some of the core ideas and architectural patterns upon which Apache Isis builds.</p> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_philosophy_domain-driven-design">2.1.1. Domain-Driven Design</h4> 
+         <h4 id="_ugfun_core-concepts_philosophy_domain-driven-design">2.1.1. Domain-Driven Design</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_domain-driven-design.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>There\u2019s no doubt that we developers love the challenge of understanding and deploying complex technologies. But understanding the nuances and subtleties of the business domain itself is just as great a challenge, perhaps more so. If we devoted our efforts to understanding and addressing those subtleties, we could build better, cleaner, and more maintainable software that did a better job for our stakeholders. And there\u2019s no doubt that our stakeholders would thank us for it.</p> 
          </div> 
@@ -645,7 +647,8 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_philosophy_naked-objects-pattern">2.1.2. Naked Objects Pattern</h4> 
+         <h4 id="_ugfun_core-concepts_philosophy_naked-objects-pattern">2.1.2. Naked Objects Pattern</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_naked-objects-pattern.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Apache Isis implements the naked objects pattern, originally formulated by Richard Pawson. So who better than Richard to explain the origination of the idea?</p> 
          </div> 
@@ -717,7 +720,8 @@ table.CodeRay td.code>pre{padding:0}
           </table> 
          </div> 
          <div class="sect4"> 
-          <h5 id="_ugfun_core-concepts_philosophy_naked-objects-pattern_object-interface-mapping">Object Interface Mapping</h5> 
+          <h5 id="_ugfun_core-concepts_philosophy_naked-objects-pattern_object-interface-mapping">Object Interface Mapping</h5>
+          <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_naked-objects-pattern_object-interface-mapping.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
           <div class="paragraph"> 
            <p>Another\u2009\u2014\u2009more technical\u2009\u2014\u2009way to think about the naked objects pattern is as an <em>object interface mapper</em>, or <code>OIM</code>. We sometimes use this idea to explain naked objects to a bunch of developers.</p> 
           </div> 
@@ -762,7 +766,8 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_philosophy_hexagonal-architecture">2.1.3. Hexagonal Architecture</h4> 
+         <h4 id="_ugfun_core-concepts_philosophy_hexagonal-architecture">2.1.3. Hexagonal Architecture</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_hexagonal-architecture.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>One of the patterns that Evans discusses in his book is that of a <strong>layered architecture</strong>. In it he describes why the domain model lives in its own layer within the architecture. The other layers of the application (usually presentation, application, and persistence) have their own responsibilities, and are completely separate. Each layer is cohesive and depending only on the layers below. In particular, we have a layer dedicated to the domain model. The code in this layer is unencumbered with the (mostly technical) responsibilities of the other layers and so can evolve to tackle complex domains as well as simple ones.</p> 
          </div> 
@@ -804,7 +809,8 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_philosophy_aop">2.1.4. Aspect Oriented</h4> 
+         <h4 id="_ugfun_core-concepts_philosophy_aop">2.1.4. Aspect Oriented</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_aop.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Although not a book about object modelling, Evans' "Domain Driven Design" does use object orientation as its primary modelling tool; while <a href="#_ugfun_core-concepts_philosophy_naked-objects-pattern">naked objects pattern</a> very much comes from an OO background (it even has 'object' in its name); Richard Pawson lists Alan Kay as a key influence.</p> 
          </div> 
@@ -852,7 +858,8 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_philosophy_how-eases-ddd">2.1.5. How Apache Isis eases DDD</h4> 
+         <h4 id="_ugfun_core-concepts_philosophy_how-eases-ddd">2.1.5. How Apache Isis eases DDD</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_philosophy_how-eases-ddd.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>The case for <em>DDD</em> might be compelling, but that doesn\u2019t necessarily make it easy to do. Let\u2019s take a look at some of the challenges that <em>DDD</em> throws up and see how Apache Isis (and its implementation of the naked objects pattern) helps address them.</p> 
          </div> 
@@ -945,7 +952,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_principles">2.2. Principles and Values</h3> 
+        <h3 id="_ugfun_core-concepts_principles">2.2. Principles and Values</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>This section describes some of the core principles and values that the framework aims to honour and support.</p> 
         </div> 
@@ -956,7 +964,8 @@ table.CodeRay td.code>pre{padding:0}
          <p>The section concludes by contrasting the framework with some other open source frameworks commonly used.</p> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_principles_your-apps">2.2.1. Your Applications</h4> 
+         <h4 id="_ugfun_core-concepts_principles_your-apps">2.2.1. Your Applications</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_your-apps.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Apache Isis is primarily aimed at custom-built "enterprise" applications. The UI exposed by the <a href="ugvw.html">Wicket viewer</a> is intended to be usable by domain experts, typically end-users within the organization. The REST API exposed by the <a href="ugvro.html">RestfulObjects viewer</a> allows custom apps to be developed - eg using AngularJS or similar - for use by those requiring more guidance; typically end-users outside of the organization.</p> 
          </div> 
@@ -1005,7 +1014,8 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_principles_isis-itself">2.2.2. Apache Isis itself</h4> 
+         <h4 id="_ugfun_core-concepts_principles_isis-itself">2.2.2. Apache Isis itself</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_isis-itself.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>This section discusses some of the principles and values we apply to the development of the Apache Isis framework itself.</p> 
          </div> 
@@ -1072,12 +1082,14 @@ table.CodeRay td.code>pre{padding:0}
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_core-concepts_principles_apache-isis-vs">2.2.3. Apache Isis vs \u2026\u200b</h4> 
+         <h4 id="_ugfun_core-concepts_principles_apache-isis-vs">2.2.3. Apache Isis vs \u2026\u200b</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how do they compare to Apache Isis?</p> 
          </div> 
          <div class="sect4"> 
-          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_mvc-server-side-frameworks">vs MVC server-side frameworks</h5> 
+          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_mvc-server-side-frameworks">vs MVC server-side frameworks</h5>
+          <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_mvc-server-side-frameworks.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
           <div class="paragraph"> 
            <p>Some of most commonly used frameworks today are <a href="http://www.spring.io/">Spring MVC</a>, <a href="http://rubyonrails.org/">Ruby on Rails</a> and <a href="http://www.grails.org">Grails</a>, all of which implement one flavour or another of the server-side MVC pattern. The MVC 1.0 specification (scheduled for JavaEE 8) is also similar.</p> 
           </div> 
@@ -1095,7 +1107,8 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect4"> 
-          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_cqrs">vs CQRS</h5> 
+          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_cqrs">vs CQRS</h5>
+          <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
           <div class="paragraph"> 
            <p>The CQRS architectural pattern (it stands for "Command Query Responsbility Separation") is the idea that the domain objects that mutate the state of the system - to which commands are sent and which then execute - should be separated from the mechanism by which the state of the system is queried (rendered). The former are sometimes called the "write (domain) model", the latter the "read model".</p> 
           </div> 
@@ -1128,7 +1141,8 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect4"> 
-          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing">vs Event Sourcing</h5> 
+          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing">vs Event Sourcing</h5>
+          <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
           <div class="paragraph"> 
            <p>The <a href="_ugfun_core-concepts_principles_apache-isis-vs_cqrs">CQRS architecture</a>, discussed above, is often combined with <em>Event Sourcing</em> pattern, though they are separate ideas.</p> 
           </div> 
@@ -1146,7 +1160,8 @@ table.CodeRay td.code>pre{padding:0}
           </div> 
          </div> 
          <div class="sect4"> 
-          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_metawidget">vs MetaWidget</h5> 
+          <h5 id="_ugfun_core-concepts_principles_apache-isis-vs_metawidget">vs MetaWidget</h5>
+          <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_metawidget.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
           <div class="paragraph"> 
            <p>MetaWidget (mentioned <a href="#_ugfun_core-concepts_philosophy_naked-objects-pattern_object-interface-mapping">earlier</a> has a number of ideas in common with Apache Isis, specifically the runtime generation of a UI for domain objects. And like Apache Isis, MetaWidget builds its own metamodel of the domain objects and uses this to render the object.</p> 
           </div> 
@@ -1163,7 +1178,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_building-blocks">2.3. Building Blocks</h3> 
+        <h3 id="_ugfun_core-concepts_building-blocks">2.3. Building Blocks</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_building-blocks.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>In this section we run through the main building blocks that make up an Apache Isis application.</p> 
         </div> 
@@ -1515,7 +1531,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_framework-provided-services">2.4. Framework-provided Services</h3> 
+        <h3 id="_ugfun_core-concepts_framework-provided-services">2.4. Framework-provided Services</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_framework-provided-services.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Most framework domain services are API: they exist to provide support functionality to the application\u2019s domain objects and services. In this case an implementation of the service will be available, either by Apache Isis itself or by Isis Addons (non ASF).</p> 
         </div> 
@@ -1660,7 +1677,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_add-ons">2.5. Isis Add-ons</h3> 
+        <h3 id="_ugfun_core-concepts_add-ons">2.5. Isis Add-ons</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_add-ons.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The <a href="http://www.isisaddons.org">Isis Addons</a> website provides a number of reusable modules and other extensions for Apache Isis. This chapter focuses just on the modules, all of which have a name of the form <code>isis-module-xxx</code>.</p> 
         </div> 
@@ -1705,7 +1723,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_core-concepts_other-deployment-options">2.6. Other Deployment Options</h3> 
+        <h3 id="_ugfun_core-concepts_other-deployment-options">2.6. Other Deployment Options</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_other-deployment-options.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Apache Isis is a mature platform suitable for production deployment, with its "sweet spot" being line-of-business enterprise applications. So if you\u2019re looking to develop that sort of application, we certainly hope you\u2019ll seriously evaluate it.</p> 
         </div> 
@@ -1833,7 +1852,8 @@ table.CodeRay td.code>pre{padding:0}
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_getting-started_simpleapp-archetype">3.2. SimpleApp Archetype</h3> 
+        <h3 id="_ugfun_getting-started_simpleapp-archetype">3.2. SimpleApp Archetype</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_getting-started_simpleapp-archetype.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The quickest way to get started with Apache Isis is to run the simple archetype. This will generate a very simple one-class domain model, called <code>SimpleObject</code>, with a single property <code>name</code>.</p> 
         </div> 
@@ -2225,7 +2245,8 @@ mvn clean install</code></pre>
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_getting-started_datanucleus-enhancer">3.3. Datanucleus Enhancer</h3> 
+        <h3 id="_ugfun_getting-started_datanucleus-enhancer">3.3. Datanucleus Enhancer</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_getting-started_datanucleus-enhancer.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p><a href="http://www.datanucleus.org/">DataNucleus</a> is the reference implementation of the JDO (Java data objects) spec, and Apache Isis integrates with DataNucleus as its persistence layer. Datanucleus is a very powerful library, allowing domain entities to be mapped not only to relational database tables, but also to NoSQL stores such as <a href="http://neo4j.com/">Neo4J</a>, <a href="http://www.mongodb.org/">MongoDB</a> and <a href="http://cassandra.apache.org/">Apache Cassandra</a>.</p> 
         </div> 
@@ -2375,7 +2396,8 @@ mvn clean install</code></pre>
         <p>This chapter provides a grab bag of "how-to"s and tips to help you go about actually developing Apache Isis domain applications.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_class-structure">4.1. Class Structure</h3> 
+        <h3 id="_ugfun_how-tos_class-structure">4.1. Class Structure</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Apache Isis works by building a metamodel of the domain objects: entities, <a href="ugbtb.html#_ugbtb_view-models">view model</a>s and services. The class methods of both entities and view models represent both state\u2009\u2014\u2009(single-valued) properties and (multi-valued) collections\u2009\u2014\u2009and behaviour\u2009\u2014\u2009actions. The class members of domain services is simpler: just behaviour, ie actions.</p> 
         </div> 
@@ -2408,7 +2430,8 @@ mvn clean install</code></pre>
          </table> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_class-definition">4.1.1. Class Definition</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_class-definition">4.1.1. Class Definition</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_class-definition.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Apache Isis supports recognises three main types of domain classes:</p> 
          </div> 
@@ -2648,7 +2671,8 @@ mvn clean install</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_properties">4.1.2. Property</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_properties">4.1.2. Property</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_properties.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>A property is an instance variable of a domain object, of a scalar type, that holds some state about either a <a href="#<em>ugfun_how-tos_class-structure_class-definition_entities">domain entity</a> or a <a href="#</em>ugfun_how-tos_class-structure_class-definition_view-models">view model</a>.</p> 
          </div> 
@@ -3123,7 +3147,8 @@ AddressService addressService;
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_collections">4.1.3. Collections</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_collections">4.1.3. Collections</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_collections.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>A collection is an instance variable of a domain object, of a collection type that holds references to other domain objects. For example, a <code>Customer</code> may have a collection of <code>Order</code>s).</p> 
          </div> 
@@ -3258,7 +3283,8 @@ AddressService addressService;
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_actions">4.1.4. Actions</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_actions">4.1.4. Actions</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_actions.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>While <a href="#_ugfun_how-tos_class-structure_properties">properties</a> and <a href="#_ugfun_how-tos_class-structure_collections">collections</a> define the state held by a domain object (its "know what" responsibilities), actions define the object\u2019s behaviour (its "know how-to" responsibilities).</p> 
          </div> 
@@ -3612,7 +3638,8 @@ ProductRepository productRepository;</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_inject-services">4.1.5. Injecting services</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_inject-services">4.1.5. Injecting services</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_inject-services.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Apache Isis autowires (automatically injects) domain services into each entity, as well as into the domain services themselves, using either method injection or field injection. The framework defines many additional services (such as <a href="rgsvc.html#_rgsvc_api_RepositoryService"><code>RepositoryService</code></a>); these are injected in exactly the same manner.</p> 
          </div> 
@@ -3716,7 +3743,8 @@ ProductRepository productRepository;</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_class-structure_properties-vs-parameters">4.1.6. Properties vs Parameters</h4> 
+         <h4 id="_ugfun_how-tos_class-structure_properties-vs-parameters">4.1.6. Properties vs Parameters</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_class-structure_properties-vs-parameters.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>In many cases the value types of properties and of action parameters align. For example, a <code>Customer</code> entity might have a <code>surname</code> property, and there might also be corresponding <code>changeSurname</code>. Ideally we want the surname property and surname action parameter to use the same value type.</p> 
          </div> 
@@ -3763,12 +3791,14 @@ ProductRepository productRepository;</code></pre>
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_ui-hints">4.2. UI Hints</h3> 
+        <h3 id="_ugfun_how-tos_ui-hints">4.2. UI Hints</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The Apache Isis programming model includes several mechanisms for a domain object to provide UI hints. These range from their title (so an end-user can distinguish one object from another) through to hints that can impact their CSS styling.</p> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_ui-hints_object-titles-and-icons">4.2.1. Object Titles and Icons</h4> 
+         <h4 id="_ugfun_how-tos_ui-hints_object-titles-and-icons">4.2.1. Object Titles and Icons</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints_object-titles-and-icons.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>In Apache Isis every object is identified to the user by a title (label) and an icon. This is shown in several places: as the main heading for an object; as a link text for an object referencing another object, and also in tables representing collections of objects.</p> 
          </div> 
@@ -3900,7 +3930,8 @@ ProductRepository productRepository;</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_ui-hints_names-and-descriptions">4.2.2. Names and Descriptions</h4> 
+         <h4 id="_ugfun_how-tos_ui-hints_names-and-descriptions">4.2.2. Names and Descriptions</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints_names-and-descriptions.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="admonitionblock note"> 
           <table> 
            <tbody>
@@ -4001,13 +4032,15 @@ ProductRepository productRepository;</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_ui-hints_layout">4.2.3. Layout</h4> 
+         <h4 id="_ugfun_how-tos_ui-hints_layout">4.2.3. Layout</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints_layout.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>See the <a href="#_ugfun_object-layout">object layout</a> chapter.</p> 
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_ui-hints_eager-rendering">4.2.4. Eager rendering</h4> 
+         <h4 id="_ugfun_how-tos_ui-hints_eager-rendering">4.2.4. Eager rendering</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints_eager-rendering.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>By default, collections all rendered lazily, in other words in a "collapsed" table view:</p> 
          </div> 
@@ -4090,7 +4123,8 @@ ProductRepository productRepository;</code></pre>
          </div> 
         </div> 
         <div class="sect3"> 
-         <h4 id="_ugfun_how-tos_ui-hints_action-icons-and-css">4.2.5. Action Icons and CSS</h4> 
+         <h4 id="_ugfun_how-tos_ui-hints_action-icons-and-css">4.2.5. Action Icons and CSS</h4>
+         <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_ui-hints_action-icons-and-css.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
          <div class="paragraph"> 
           <p>Apache Isis allows <a href="http://fortawesome.github.io/Font-Awesome/icons/">font awesome</a> icons to be associated with each action, and for <a href="http://getbootstrap.com/css/#buttons">Bootstrap CSS</a> to be applied to action rendered as buttons.</p> 
          </div> 
@@ -4275,7 +4309,8 @@ ProductRepository productRepository;</code></pre>
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_domain-services">4.3. Domain Services</h3> 
+        <h3 id="_ugfun_how-tos_domain-services">4.3. Domain Services</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>In Apache Isis domain services have several responsibilities:</p> 
         </div> 
@@ -4672,7 +4707,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_crud">4.4. Object Management (CRUD)</h3> 
+        <h3 id="_ugfun_how-tos_crud">4.4. Object Management (CRUD)</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -4737,7 +4773,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_business-rules">4.5. Business Rules</h3> 
+        <h3 id="_ugfun_how-tos_business-rules">4.5. Business Rules</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_business-rules.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -4859,7 +4896,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_derived-members">4.6. Derived Members</h3> 
+        <h3 id="_ugfun_how-tos_derived-members">4.6. Derived Members</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_derived-members.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -4940,7 +4978,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_drop-downs-and-defaults">4.7. Drop Downs and Defaults</h3> 
+        <h3 id="_ugfun_how-tos_drop-downs-and-defaults">4.7. Drop Downs and Defaults</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_drop-downs-and-defaults.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -5102,7 +5141,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_bulk-actions">4.8. Bulk Actions</h3> 
+        <h3 id="_ugfun_how-tos_bulk-actions">4.8. Bulk Actions</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_bulk-actions.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="admonitionblock note"> 
          <table> 
           <tbody>
@@ -5115,7 +5155,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_simulating-collections-of-values">4.9. Collections of values</h3> 
+        <h3 id="_ugfun_how-tos_simulating-collections-of-values">4.9. Collections of values</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_simulating-collections-of-values.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Although in Apache Isis you can have properties of either values (string, number, date etc) or of (references to other) entities, with collections the framework (currently) only supports collections of (references to) entities. That is, collections of values (a bag of numbers, say) are not supported.</p> 
         </div> 
@@ -5150,7 +5191,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_how-tos_render-all-properties-in-tables">4.10. Subclass properties in tables</h3> 
+        <h3 id="_ugfun_how-tos_render-all-properties-in-tables">4.10. Subclass properties in tables</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_render-all-properties-in-tables.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Suppose you have a hierarchy of classes where a property is derived and abstract in the superclass, concrete implementations in the subclasses. For example:</p> 
         </div> 
@@ -5212,7 +5254,8 @@ isis.services = employee.Employees,\
       <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_jdo-mappings.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
       <div class="sectionbody"> 
        <div class="sect2"> 
-        <h3 id="_ugfun_jdo-mappings_1-to-m-bidirectional-relationships">5.1. 1-m Bidirectional relationships</h3> 
+        <h3 id="_ugfun_jdo-mappings_1-to-m-bidirectional-relationships">5.1. 1-m Bidirectional relationships</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_jdo-mappings_1-to-m-bidirectional-relationships.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Consider a bidirectional one-to-many association between two entities; a collection member in the "parent" and a property member on the "child".</p> 
         </div> 
@@ -5662,7 +5705,8 @@ isis.services = employee.Employees,\
         <p>This chapter describes how this is done both for domain objects\u2009\u2014\u2009statically or dynamically\u2009\u2014\u2009and for the application menu bar (containing domain service' actions).</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_object-layout_static">6.1. Static Object Layout</h3> 
+        <h3 id="_ugfun_object-layout_static">6.1. Static Object Layout</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_object-layout_static.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Metadata providing UI hints can be specified either statically, using annotations, or dynamically, using either a <a href="#_ugfun_object-layout_dynamic_xml"><code>layout.xml</code></a> file or a <a href="#_ugfun_object-layout_dynamic"><code>.layout.json</code></a> file.</p> 
         </div> 
@@ -5905,7 +5949,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_object-layout_dynamic_xml">6.2. Dynamic (XML) Layout</h3> 
+        <h3 id="_ugfun_object-layout_dynamic_xml">6.2. Dynamic (XML) Layout</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_object-layout_dynamic_xml.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Metadata providing UI hints can be specified either <a href="#_ugfun_object-layout_static">statically</a>, using annotations, or dynamically using an <code>Xxx.layout.xml</code> file (where <code>Xxx</code> is the entity or view model object to be rendered).</p> 
         </div> 
@@ -6377,7 +6422,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_object-layout_dynamic">6.3. Dynamic (JSON) Layout</h3> 
+        <h3 id="_ugfun_object-layout_dynamic">6.3. Dynamic (JSON) Layout</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_object-layout_dynamic.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Metadata providing UI hints can be specified either <a href="#_ugfun_object-layout_static">statically</a>, using annotations, or dynamically, using either a <a href="#_ugfun_object-layout_dynamic_xml"><code>layout.xml</code></a> file or (as described here) a <code>.layout.json</code> file.</p> 
         </div> 
@@ -6533,7 +6579,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_object-layout_application-menu">6.4. Application Menu Layout</h3> 
+        <h3 id="_ugfun_object-layout_application-menu">6.4. Application Menu Layout</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_object-layout_application-menu.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>The actions of domain services are made available as an application menu bar. By default each domain service corresponds to a single menu on this menu bar, with its actions as the drop-down menu items. This is rarely exactly what is required, however. The <code>@MemberOrder</code> and <code>@DomainServiceLayout</code> annotations can be used to rearrange the placement of menu items.</p> 
         </div> 
@@ -6713,7 +6760,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_object-layout_static-vs-dynamic">6.5. Static vs Dynamic Layouts</h3> 
+        <h3 id="_ugfun_object-layout_static-vs-dynamic">6.5. Static vs Dynamic Layouts</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_object-layout_static-vs-dynamic.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Using <a href="#_ugfun_object-layout_dynamic">dynamic object layout</a>s using JSON has the huge benefit that the layout can be updated without requiring a recompile of the code and redeploy of the app. Many developers also find it easier to rationalize about layout when all the hints are collated together in a single place (rather than scattered across the class members as annotations).</p> 
         </div> 
@@ -6752,7 +6800,8 @@ isis.services = employee.Employees,\
         <p>See also <a href="ugvro.html#_ugvro_hints-and-tips">Restful Objects hints-n-tips</a>.</p> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_enabling-logging">7.1. Enabling Logging</h3> 
+        <h3 id="_ugfun_faqs_enabling-logging">7.1. Enabling Logging</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_enabling-logging.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Sometimes you just need to see what is going on. There are various ways in which logging can be enabled, here are the ones we tend to use.</p> 
         </div> 
@@ -6797,7 +6846,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_subtype-entity-not-fully-populated">7.2. Subtype not fully populated</h3> 
+        <h3 id="_ugfun_faqs_subtype-entity-not-fully-populated">7.2. Subtype not fully populated</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_subtype-entity-not-fully-populated.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>Taken from <a href="http://markmail.org/message/ovgai56uqgfgnrx7">this thread</a> on the Apache Isis users mailing list\u2026\u200b</p> 
         </div> 
@@ -6861,7 +6911,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_restful-image-property">7.3. How parse images in RO viewer?</h3> 
+        <h3 id="_ugfun_faqs_restful-image-property">7.3. How parse images in RO viewer?</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_restful-image-property.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From this <a href="http://markmail.org/message/4kcu7sml4ufdsah3">thread</a> on the Apache Isis users mailing list:</p> 
         </div> 
@@ -6894,7 +6945,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_enhance-only">7.4. Enhance only (IntelliJ)</h3> 
+        <h3 id="_ugfun_faqs_enhance-only">7.4. Enhance only (IntelliJ)</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_enhance-only.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From the Apache Isis mailing list is:</p> 
         </div> 
@@ -6920,7 +6972,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_per-user-themes">7.5. Per-user Themes</h3> 
+        <h3 id="_ugfun_faqs_per-user-themes">7.5. Per-user Themes</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_per-user-themes.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From <a href="http://isis.markmail.org/thread/kb4442niwwbnghey">this thread</a> on the Apache Isis users mailing list:</p> 
         </div> 
@@ -7013,7 +7066,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_i18n-label-in-wicket-viewer">7.6. How i18n the Wicket viewer?</h3> 
+        <h3 id="_ugfun_faqs_i18n-label-in-wicket-viewer">7.6. How i18n the Wicket viewer?</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_i18n-label-in-wicket-viewer.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From <a href="http://isis.markmail.org/thread/ctppmtcbsf4iskzi">this thread</a> on the Apache Isis users mailing list:</p> 
         </div> 
@@ -7039,7 +7093,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_how-to-handle-void-and-null-results">7.7. How to handle void/null results</h3> 
+        <h3 id="_ugfun_faqs_how-to-handle-void-and-null-results">7.7. How to handle void/null results</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_how-to-handle-void-and-null-results.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From this <a href="http://isis.markmail.org/thread/yf7qdeiu3vrvk2ei">thread</a> on the Apache Isis users mailing list:</p> 
         </div> 
@@ -7143,7 +7198,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_how-to-implement-a-spellchecker">7.8. How to implement a spellchecker?</h3> 
+        <h3 id="_ugfun_faqs_how-to-implement-a-spellchecker">7.8. How to implement a spellchecker?</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_how-to-implement-a-spellchecker.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From this <a href="http://isis.markmail.org/thread/dduarjscrbnodfsi">thread</a> on the Apache Isis users mailing list:</p> 
         </div> 
@@ -7178,7 +7234,8 @@ isis.services = employee.Employees,\
         </div> 
        </div> 
        <div class="sect2"> 
-        <h3 id="_ugfun_faqs_how-run-fixtures-on-app-startup">7.9. How run fixtures on startup?</h3> 
+        <h3 id="_ugfun_faqs_how-run-fixtures-on-app-startup">7.9. How run fixtures on startup?</h3>
+        <button type="button" class="button secondary" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/_ugfun_faqs_how-run-fixtures-on-app-startup.adoc&quot;" style="float: right; font-size: small; padding: 6px; margin-top: -55px; "><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button> 
         <div class="paragraph"> 
          <p>From this <a href="http://isis.markmail.org/thread/g6amfj2eyf2xfjbr">thread</a> on the Apache Isis users mailing list:</p> 
         </div> 

http://git-wip-us.apache.org/repos/asf/isis-site/blob/9c5051a7/content/guides/ugfun.pdf
----------------------------------------------------------------------
diff --git a/content/guides/ugfun.pdf b/content/guides/ugfun.pdf
index 4fb3115..4377987 100644
--- a/content/guides/ugfun.pdf
+++ b/content/guides/ugfun.pdf
@@ -4,8 +4,8 @@
 << /Title (Fundamentals)
 /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
 /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0)
-/CreationDate (D:20170308005332+00'00')
-/ModDate (D:20170308005332+00'00')
+/CreationDate (D:20170315211707+00'00')
+/ModDate (D:20170315211707+00'00')
 >>
 endobj
 2 0 obj