You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/10/19 02:53:36 UTC

[8/8] git commit: Make use of Twitter Bootstrap for PageCatalog and ServiceStatus pages Have deprecation warnings output as warning alerts as well as the server console error Remove the "t-invisible" class; use style="display:none; " in a couple of legacy

Make use of Twitter Bootstrap for PageCatalog and ServiceStatus pages
Have deprecation warnings output as warning alerts as well as the server console error
Remove the "t-invisible" class; use style="display:none;" in a couple of legacy places
Remove the code in Tapestry.onDomLoadedCallback() that converts "t-invisible" elements to hidden elements
Remove a dependency between core/pageinit and the legacy Tapestry libraries


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/b314cbbe
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/b314cbbe
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/b314cbbe

Branch: refs/heads/5.4-js-rewrite
Commit: b314cbbe68bf87a0e2f29356aa3fc30042b770f2
Parents: e3939a9
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Thu Oct 18 15:24:47 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Thu Oct 18 15:24:47 2012 -0700

----------------------------------------------------------------------
 .../META-INF/modules/core/pageinit.coffee          |   18 +--
 .../org/apache/tapestry5/CSSClassConstants.java    |    6 +
 .../apache/tapestry5/corelib/components/Form.java  |    2 +-
 .../tapestry5/corelib/components/FormFragment.java |    2 +-
 .../apache/tapestry5/corelib/components/Zone.java  |   35 +++---
 .../tapestry5/corelib/mixins/Autocomplete.java     |   60 ++++------
 .../compatibility/DeprecationWarningImpl.java      |   20 +++-
 .../t5internal/components/InternalLayout.java      |    2 -
 .../services/compatibility/DeprecationWarning.java |   12 ++-
 .../tapestry5/corelib/pages/PageCatalog.properties |    2 +-
 .../apache/tapestry5/corelib/pages/PageCatalog.tml |   11 +-
 .../tapestry5/corelib/pages/ServiceStatus.css      |    4 -
 .../t5internal/components/InternalLayout.tml       |   36 ++++---
 .../t5internal/components/bluerobot-layout.css     |   90 ---------------
 .../t5internal/components/internal-layout.css      |   39 ------
 .../resources/org/apache/tapestry5/tapestry.js     |   13 +--
 tapestry-core/src/test/app1/nested/ZoneDemo.tml    |    2 +-
 17 files changed, 116 insertions(+), 238 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/coffeescript/META-INF/modules/core/pageinit.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/core/pageinit.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/core/pageinit.coffee
index 3b35348..e84e81f 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/core/pageinit.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/core/pageinit.coffee
@@ -161,9 +161,9 @@ define ["_", "core/console", "core/spi", "core/events"],
       # of JavaScript libraries and CSS style sheets, and a number of direct updates to the DOM. After DOM updates,
       # the callback is invoked, passed the response (with any Tapestry-specific data removed).
       # After the callback is invoked, page initializations occur.  This method returns null.
-      # response - the Ajax response object
-      # callback - invoked after scripts are loaded, but before page initializations occur (may be null)
-      # Returns null
+
+      # * response - the Ajax response object
+      # * callback - invoked after scripts are loaded, but before page initializations occur (may be null)
       handlePartialPageRenderResponse: (response, callback) ->
 
         # Capture the partial page response portion of the overall response, and
@@ -186,7 +186,7 @@ define ["_", "core/console", "core/spi", "core/events"],
           # Make sure all libraries are loaded
           exports.loadLibraries partial?.libraries, ->
 
-            # Libraries are loaded, update each zone:
+            # After libraries are loaded, update each zone:
             _(partial?.content).each ([id, content]) ->
               console.debug "Updating content for zone #{id}"
 
@@ -196,13 +196,9 @@ define ["_", "core/console", "core/spi", "core/events"],
                 zone.trigger events.zone.update, content
 
             # Invoke the callback, if present.  The callback may do its own content updates.
-            callback and callback.call null, response
-
-            # Now that all content updates are, presumably, complete, it is time to
-            # perform initializations.  Once those complete, use the onDomLoadedCallback()
-            # to do some final changes and event registrations (hopefully, to be removed
-            # soon).
+            callback and callback(response)
 
-            exports.initialize partial?.inits, Tapestry.onDomLoadedCallback
+            # Lastly, perform initializations from the partial page render response.
+            exports.initialize partial?.inits
 
         return

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/CSSClassConstants.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/CSSClassConstants.java b/tapestry-core/src/main/java/org/apache/tapestry5/CSSClassConstants.java
index 61fd9fb..c8dae75 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/CSSClassConstants.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/CSSClassConstants.java
@@ -16,11 +16,15 @@ package org.apache.tapestry5;
 
 /**
  * Constants used when rendering a CSS class attribute.
+ *
+ * @deprecated Deprecated in 5.4 with no replacement.
  */
 public class CSSClassConstants
 {
     /**
      * CSS class name that causes a rendered element to be invisible on the client side.
+     *
+     * @deprecated Removed in Tapestry 5.4 with no replacement.
      */
     public static final String INVISIBLE = "t-invisible";
 
@@ -36,6 +40,8 @@ public class CSSClassConstants
      * CSS class name for individual validation errors.
      *
      * @since 5.2.0
+     * @deprecated Deprecated in 5.4 with no replacement; decoration of fields with validation errors
+     *             has moved to the client.
      */
     public static final String ERROR_SINGLE = "t-error-single";
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
index b74ea0d..b3bbd93 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Form.java
@@ -362,7 +362,7 @@ public class Form implements ClientElement, FormValidationControl
 
         resources.renderInformalParameters(writer);
 
-        div = writer.element("div", "class", CSSClassConstants.INVISIBLE);
+        div = writer.element("div");
 
         for (String parameterName : link.getParameterNames())
         {

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java
index 4a22299f..1ffaea3 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/FormFragment.java
@@ -170,7 +170,7 @@ public class FormFragment implements ClientElement
 
         if (!visible)
         {
-            element.addClassName(CSSClassConstants.INVISIBLE);
+            element.attribute("style", "display: none;");
         }
 
         componentActions = new ComponentActionSink(logger, clientDataEncoder);

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Zone.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Zone.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Zone.java
index 3037eec..82bb405 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Zone.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Zone.java
@@ -81,8 +81,7 @@ public class Zone implements ClientBodyElement
      *
      * @deprecated In 5.4, with no specific replacement, now does nothing (see notes on client-side JavaScript events, elsewhere)
      */
-    @Parameter(defaultPrefix = BindingConstants.LITERAL,
-            value = BindingConstants.SYMBOL + ":" + ComponentParameterConstants.ZONE_SHOW_METHOD)
+    @Parameter(defaultPrefix = BindingConstants.LITERAL)
     private String show;
 
     /**
@@ -92,8 +91,7 @@ public class Zone implements ClientBodyElement
      *
      * @deprecated In 5.4, with no specific replacement, now does nothing (see notes on client-side JavaScript events, elsewhere)
      */
-    @Parameter(defaultPrefix = BindingConstants.LITERAL,
-            value = BindingConstants.SYMBOL + ":" + ComponentParameterConstants.ZONE_UPDATE_METHOD)
+    @Parameter(defaultPrefix = BindingConstants.LITERAL)
     private String update;
 
     /**
@@ -117,11 +115,13 @@ public class Zone implements ClientBodyElement
     private Environment environment;
 
     /**
-     * If true (the default) then the zone will render normally. If false, then the "t-invisible" CSS class is added,
-     * which will make the zone initially invisible.
+     * In prior releases, this parameter could be overridden to false to force the outer element of the rendered
+     * Zone to be non-visible. This behavior is no longer supported.
+     *
+     * @deprecated Deprecated in 5.4 with no replacement.
      */
     @Parameter
-    private boolean visible = true;
+    private boolean visible;
 
     @Inject
     private ComponentResources resources;
@@ -157,16 +157,21 @@ public class Zone implements ClientBodyElement
         return resources.getElementName("div");
     }
 
-    void setupRender()
+    void pageLoaded()
     {
-        if (show != null)
+        if (resources.isBound("show"))
+        {
+            deprecationWarning.ignoredComponentParameter(resources, "show");
+        }
+
+        if (resources.isBound("update"))
         {
-            deprecationWarning.componentParameter(resources, "show", "This parameter is ignored and may be removed.");
+            deprecationWarning.ignoredComponentParameter(resources, "update");
         }
 
-        if (update != null)
+        if (resources.isBound("visible"))
         {
-            deprecationWarning.componentParameter(resources, "update", "This parameter is ignored and may be removed.");
+            deprecationWarning.ignoredComponentParameter(resources, "visible");
         }
     }
 
@@ -178,13 +183,9 @@ public class Zone implements ClientBodyElement
 
         resources.renderInformalParameters(writer);
 
+        // This will likely be removed in 5.5.
         e.addClassName("t-zone");
 
-        if (!visible)
-        {
-            e.addClassName(CSSClassConstants.INVISIBLE);
-        }
-
         JSONObject spec = new JSONObject("element", clientId);
 
         insideForm = formSupport != null;

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Autocomplete.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Autocomplete.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Autocomplete.java
index 7374579..309df96 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Autocomplete.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/Autocomplete.java
@@ -14,26 +14,9 @@
 
 package org.apache.tapestry5.corelib.mixins;
 
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tapestry5.Asset;
-import org.apache.tapestry5.BindingConstants;
-import org.apache.tapestry5.CSSClassConstants;
-import org.apache.tapestry5.ComponentEventCallback;
-import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.*;
 import org.apache.tapestry5.ContentType;
-import org.apache.tapestry5.EventConstants;
-import org.apache.tapestry5.Field;
-import org.apache.tapestry5.Link;
-import org.apache.tapestry5.MarkupWriter;
-import org.apache.tapestry5.annotations.Environmental;
-import org.apache.tapestry5.annotations.Events;
-import org.apache.tapestry5.annotations.Import;
-import org.apache.tapestry5.annotations.InjectContainer;
-import org.apache.tapestry5.annotations.Parameter;
-import org.apache.tapestry5.annotations.Path;
-import org.apache.tapestry5.annotations.RequestParameter;
+import org.apache.tapestry5.annotations.*;
 import org.apache.tapestry5.internal.util.Holder;
 import org.apache.tapestry5.ioc.annotations.Inject;
 import org.apache.tapestry5.ioc.services.TypeCoercer;
@@ -43,6 +26,9 @@ import org.apache.tapestry5.services.ResponseRenderer;
 import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 import org.apache.tapestry5.util.TextStreamResponse;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * A mixin for a text field that allows for autocompletion of text fields. This is based on Prototype's autocompleter
  * control.
@@ -58,18 +44,18 @@ import org.apache.tapestry5.util.TextStreamResponse;
  * partial input string sent from the client. The return value should be an array or list of completions, in
  * presentation order. I.e.
  * <p/>
- * 
+ * <p/>
  * <pre>
  * String[] onProvideCompletionsFromMyField(String input)
  * {
  *   return . . .;
  * }
  * </pre>
- * 
+ *
  * @tapestrydoc
  */
 @Import(library =
-{ "${tapestry.scriptaculous}/controls.js", "autocomplete.js" })
+        {"${tapestry.scriptaculous}/controls.js", "autocomplete.js"})
 @Events(EventConstants.PROVIDE_COMPLETIONS)
 public class Autocomplete
 {
@@ -125,7 +111,7 @@ public class Autocomplete
     /**
      * Mixin afterRender phrase occurs after the component itself. This is where we write the &lt;div&gt; element and
      * the JavaScript.
-     * 
+     *
      * @param writer
      */
     void afterRender(MarkupWriter writer)
@@ -140,20 +126,22 @@ public class Autocomplete
 
         writer.element("img",
 
-        "src", spacerImage.toClientURL(),
+                "src", spacerImage.toClientURL(),
+
+                "class", "t-autoloader-icon",
 
-        "class", "t-autoloader-icon " + CSSClassConstants.INVISIBLE,
+                "style", "display:none;",
 
-        "alt", "",
+                "alt", "",
 
-        "id", loaderId);
+                "id", loaderId);
         writer.end();
 
         writer.element("div",
 
-        "id", menuId,
+                "id", menuId,
 
-        "class", "t-autocomplete-menu");
+                "class", "t-autocomplete-menu");
         writer.end();
 
         Link link = resources.createEventLink(EVENT_NAME);
@@ -186,7 +174,7 @@ public class Autocomplete
     }
 
     Object onAutocomplete(@RequestParameter(PARAM_NAME)
-    String input)
+                          String input)
     {
         final Holder<List> matchesHolder = Holder.create();
 
@@ -207,7 +195,7 @@ public class Autocomplete
         };
 
         resources.triggerEvent(EventConstants.PROVIDE_COMPLETIONS, new Object[]
-        { input }, callback);
+                {input}, callback);
 
         ContentType contentType = responseRenderer.findContentType(this);
 
@@ -225,9 +213,9 @@ public class Autocomplete
      * <p/>
      * <p/>
      * This implementation does nothing.
-     * 
+     *
      * @param config
-     *            parameters object
+     *         parameters object
      */
     protected void configure(JSONObject config)
     {
@@ -237,11 +225,11 @@ public class Autocomplete
      * Generates the markup response that will be returned to the client; this should be an &lt;ul&gt; element with
      * nested &lt;li&gt; elements. Subclasses may override this to produce more involved markup (including images and
      * CSS class attributes).
-     * 
+     *
      * @param writer
-     *            to write the list to
+     *         to write the list to
      * @param matches
-     *            list of matching objects, each should be converted to a string
+     *         list of matching objects, each should be converted to a string
      */
     protected void generateResponseMarkup(MarkupWriter writer, List matches)
     {

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
index 5312432..14dd142 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
@@ -15,6 +15,7 @@
 package org.apache.tapestry5.internal.services.compatibility;
 
 import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.alerts.AlertManager;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.services.ComponentClasses;
@@ -30,6 +31,8 @@ public class DeprecationWarningImpl implements DeprecationWarning
 {
     private final Logger logger;
 
+    private final AlertManager alertManager;
+
     static class ParameterDeprecationKey
     {
         final String completeId, parameterName;
@@ -103,9 +106,10 @@ public class DeprecationWarningImpl implements DeprecationWarning
     // Really used as a set.
     private final Map<Object, Boolean> deprecations = CollectionFactory.newConcurrentMap();
 
-    public DeprecationWarningImpl(Logger logger)
+    public DeprecationWarningImpl(Logger logger, AlertManager alertManager)
     {
         this.logger = logger;
+        this.alertManager = alertManager;
     }
 
     @Override
@@ -128,6 +132,12 @@ public class DeprecationWarningImpl implements DeprecationWarning
     }
 
     @Override
+    public void ignoredComponentParameter(ComponentResources resources, String parameterName)
+    {
+        componentParameter(resources, parameterName, "This parameter is ignored and may be removed in a future release.");
+    }
+
+    @Override
     public void componentParameterValue(ComponentResources resources, String parameterName, Object parameterValue, String message)
     {
         assert resources != null;
@@ -148,11 +158,15 @@ public class DeprecationWarningImpl implements DeprecationWarning
 
     private void logMessage(ComponentResources resources, String parameterName, String message)
     {
-        logger.error(String.format("Component %s, parameter %s: %s\n(at %s)",
+        String text = String.format("Component %s, parameter %s: %s\n(at %s)",
                 resources.getCompleteId(),
                 parameterName,
                 message,
-                resources.getLocation()));
+                resources.getLocation());
+
+        logger.error(text);
+
+        alertManager.warn(text);
     }
 
     public void setupClearDeprecationsWhenInvalidated(

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/internal/t5internal/components/InternalLayout.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/t5internal/components/InternalLayout.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/t5internal/components/InternalLayout.java
index a459627..ec58c40 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/t5internal/components/InternalLayout.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/t5internal/components/InternalLayout.java
@@ -3,7 +3,6 @@ package org.apache.tapestry5.internal.t5internal.components;
 import org.apache.tapestry5.BindingConstants;
 import org.apache.tapestry5.Block;
 import org.apache.tapestry5.SymbolConstants;
-import org.apache.tapestry5.annotations.Import;
 import org.apache.tapestry5.annotations.Parameter;
 import org.apache.tapestry5.annotations.Property;
 import org.apache.tapestry5.ioc.annotations.Inject;
@@ -16,7 +15,6 @@ import org.apache.tapestry5.ioc.annotations.Symbol;
  * @tapestrydoc
  * @since 5.3
  */
-@Import(stylesheet = {"bluerobot-layout.css", "internal-layout.css"})
 public class InternalLayout
 {
     @Property

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
index b93ee27..813716d 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/compatibility/DeprecationWarning.java
@@ -34,12 +34,22 @@ public interface DeprecationWarning
      *         name of the deprecated parameter
      * @param message
      *         message to display; typically explains what action will be taken, such as simply ignoring the parameter entirely. This should clarify
-     *         the issue to the developer, guiding them torwards resolving the deprecation, typically be eliminating
+     *         the issue to the developer, guiding them towards resolving the deprecation, typically be eliminating
      *         the parameter entirely.
      */
     void componentParameter(ComponentResources resources, String parameterName, String message);
 
     /**
+     * The most common case: a parameter is no longer supported and will likely be removed in the future.
+     *
+     * @param resources
+     *         identifies the component, including its location
+     * @param parameterName
+     *         name of the deprecated parameter
+     */
+    void ignoredComponentParameter(ComponentResources resources, String parameterName);
+
+    /**
      * Used to identify a specific parameter value that is no longer supported. The first time this combination of
      * component, parameter name, and parameter value are provided, an error is logged against this service's
      * logger, including the component type and complete id, name of parameter (but not the value), the message, and the location of

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.properties
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.properties b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.properties
index d34718d..d1b1307 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.properties
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.properties
@@ -1,3 +1,3 @@
 loadedpages-label=Pages in Cache
-components-label=Total Number of Components
+components-label=Total # of Components
 selectors-label=Active Selectors

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
index f28f9d0..d425f2b 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/PageCatalog.tml
@@ -4,7 +4,7 @@
 
     <p:leftnav>
 
-        <ul class="t-menu">
+        <ul class="nav nav-pills nav-stacked">
             <li>
                 <t:pagelink page="pagecatalog">refresh this page</t:pagelink>
             </li>
@@ -52,11 +52,12 @@
 
     </t:zone>
 
-    <t:form t:id="singlePageLoad" zone="pages">
+    <t:form t:id="singlePageLoad" zone="pages" class="form-inline">
 
-        <t:label for="pageName">Load single page</t:label>
-        <t:select t:id="pageName" model="pageNames"/>
-        <input type="submit" value="Load Page"/>
+            <t:label for="pageName">Load single page:</t:label>
+            <t:select t:id="pageName" model="pageNames"/>
+
+        <input type="submit" value="Load Page" class="btn btn-primary"/>
 
     </t:form>
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/ServiceStatus.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/ServiceStatus.css b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/ServiceStatus.css
index e7bd7de..15a1db7 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/ServiceStatus.css
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/pages/ServiceStatus.css
@@ -9,8 +9,4 @@ TR.VIRTUAL {
 
 TR.REAL {
     color: green;
-}
-
-DL {
-    font-size: small;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/InternalLayout.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/InternalLayout.tml b/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/InternalLayout.tml
index 6583d91..99e4b99 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/InternalLayout.tml
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/InternalLayout.tml
@@ -3,24 +3,32 @@
 <head><title>Tapestry 5: ${title}</title></head>
 <body>
 
-
-<div class="t-header">
-    <a href="http://tapestry.apache.org">Apache Tapestry 5</a>
-    &nbsp;
-    <span class="detail">version ${frameworkVersion}</span>
+<div class="navbar">
+    <div class="navbar-inner">
+        <div class="container-fluid">
+            <a href="http://tapestry.apache.org/" class="brand">Apache Tapestry 5</a>
+            <ul class="nav">
+                <li class="navbar-text">Version: ${frameworkVersion}</li>
+                <li class="divider-vertical"/>
+                <li class="navbar-text">${title}</li>
+            </ul>
+        </div>
+    </div>
 </div>
 
-<div class="t-content">
-    <h1>${title}</h1>
-
-    <t:alerts/>
+<div class="container-fluid">
+    <div class="row-fluid">
+        <div class="span2">
+            <t:delegate to="leftNav"/>
+        </div>
+        <div class="span10">
+            <t:alerts/>
 
-    <t:body/>
-</div>
+            <t:body/>
+        </div>
 
-<div class="t-menu">
-    <t:delegate to="leftNav"/>
+    </div>
 </div>
 
 </body>
-</html>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/bluerobot-layout.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/bluerobot-layout.css b/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/bluerobot-layout.css
deleted file mode 100644
index 2a15a50..0000000
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/bluerobot-layout.css
+++ /dev/null
@@ -1,90 +0,0 @@
-/* From: http://bluerobot.com/web/layouts/view_css.php?layout=layout1
-   with some modifications
-   License: free to reuse */
-
-body {
-    margin: 0px;
-    padding: 0px;
-    font-family: verdana, arial, helvetica, sans-serif;
-    color: #333;
-    background-color: white;
-}
-
-h1 {
-    margin: 0px 0px 15px 0px;
-    padding: 0px;
-    font-size: 28px;
-    line-height: 28px;
-    font-weight: 900;
-    color: #ccc;
-}
-
-p {
-    font: 11px/20px verdana, arial, helvetica, sans-serif;
-    margin: 0px 0px 16px 0px;
-    padding: 0px;
-}
-
-div.t-content>p {
-    margin: 0px;
-}
-
-div.t-content>p+p {
-    text-indent: 30px;
-}
-
-div.t-header {
-    margin: 50px 0px 10px 0px;
-    padding: 17px 0px 0px 20px;
-    /* For IE5/Win's benefit height = [correct height] + [top padding] + [top and bottom border widths] */
-    height: 33px; /* 14px + 17px + 2px = 33px */
-    border-style: solid;
-    border-color: black;
-    border-width: 1px 0px; /* top and bottom borders: 1px; left and right borders: 0px */
-    line-height: 11px;
-    background-color: #eee;
-
-    /* Here is the ugly brilliant hack that protects IE5/Win from its own stupidity.
-Thanks to Tantek Celik for the hack and to Eric Costello for publicizing it.
-IE5/Win incorrectly parses the "\"}"" value, prematurely closing the style
-declaration. The incorrect IE5/Win value is above, while the correct value is
-below. See http://glish.com/css/hacks.asp for details. */
-    voice-family: "\"}\"";
-    voice-family: inherit;
-    height: 14px; /* the correct height */
-}
-
-/* I've heard this called the "be nice to Opera 5" rule. Basically, it feeds correct
-length values to user agents that exhibit the parsing error exploited above yet get
-the CSS box model right and understand the CSS2 parent-child selector. ALWAYS include
-a "be nice to Opera 5" rule every time you use the Tantek Celik hack (above). */
-body>div.t-header {
-    height: 14px;
-}
-
-div.t-content {
-    margin: 0px 50px 50px 200px;
-    padding: 10px;
-}
-
-div.t-menu {
-    position: absolute;
-    top: 100px;
-    left: 20px;
-    width: 172px;
-    padding: 10px;
-    background-color: #eee;
-    border: 1px dashed #999;
-    line-height: 17px;
-    /* Again, the ugly brilliant hack. */
-    voice-family: "\"}\"";
-    voice-family: inherit;
-    width: 150px;
-}
-
-/* Again, "be nice to Opera 5". */
-body>div.t-menu {
-    width: 150px;
-}
-
-

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/internal-layout.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/internal-layout.css b/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/internal-layout.css
deleted file mode 100644
index 159c201..0000000
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/internal/t5internal/components/internal-layout.css
+++ /dev/null
@@ -1,39 +0,0 @@
-SPAN.detail {
-    font-size: small;
-}
-
-UL.t-menu {
-    list-style-type: none;
-    margin-left: 0;
-    padding: 0;
-    font-size: 12px;
-}
-
-UL.t-menu LI {
-    padding: 2px;
-    background: #809fff;
-    border-radius: 5px;
-    -moz-border-radius: 5px;
-    -webkit-border-radius: 5px;
-    margin-bottom: 7px;
-}
-
-UL.t-menu A {
-    color: white;
-}
-
-UL.t-menu A:hover {
-    text-decoration: underline;
-}
-
-DIV.t-space-vertically {
-    margin-top: 20px;
-}
-
-LABEL:after {
-    content: ":"
-}
-
-A {
-    text-decoration: none;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
index d3a8cb5..bcb1d73 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js
@@ -132,23 +132,12 @@ define("core/compat/tapestry", [
         onDOMLoaded: spi.domReady,
 
         /**
-         * Find all elements marked with the "t-invisible" CSS class and hide()s
-         * them, so that Prototype's visible() method operates correctly. In
-         * addition, finds form control elements and adds additional listeners to
-         * them to support form field input validation.
-         *
-         * <p>
-         * This is invoked when the DOM is first loaded, and AGAIN whenever dynamic
-         * content is loaded via the Zone mechanism.
+         * This is invoked when the DOM is first loaded.
          */
         onDomLoadedCallback: function () {
 
             Tapestry.pageLoaded = true;
 
-            $$(".t-invisible").each(function (element) {
-                element.hide();
-                element.removeClassName("t-invisible");
-            });
         },
 
         /*

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/b314cbbe/tapestry-core/src/test/app1/nested/ZoneDemo.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/app1/nested/ZoneDemo.tml b/tapestry-core/src/test/app1/nested/ZoneDemo.tml
index 83c066d..702f6a9 100644
--- a/tapestry-core/src/test/app1/nested/ZoneDemo.tml
+++ b/tapestry-core/src/test/app1/nested/ZoneDemo.tml
@@ -5,7 +5,7 @@
     <h2>Last update: ${currentTime}</h2>
 
 
-    <t:zone t:id="output" style="float:right; width: 800px;" update="slidedown">
+    <t:zone t:id="output" style="float:right; width: 800px;">
     <span class="t-zone-update">
       <t:if test="name" else="No name has been selected.">
           Selected: ${name}