QPID-8191: [Broker-J] Make sure that log file browser UI is created after file logger template is parsed
diff --git a/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js b/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
index 5fa5332..f1fa903 100644
--- a/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
+++ b/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
@@ -21,33 +21,35 @@
 define(["qpid/common/util",
         "dojo/query",
         "dojo/text!logger/file/show.html",
-        "qpid/common/TypeTabExtension",
         "qpid/management/logger/FileBrowser",
-        "dojo/domReady!"], function (util, query, template, TypeTabExtension, FileBrowser)
+        "dojo/domReady!"], function (util, query, template, FileBrowser)
 {
     function BrokerFileLogger(params)
     {
-        this.fileBrowser = new FileBrowser({
-            containerNode: params.typeSpecificDetailsNode,
-            management: params.management,
-            data: params.data,
-            modelObj: params.modelObj
-        });
-        TypeTabExtension.call(this,
-            params.containerNode,
-            template,
-            "BrokerLogger",
-            "File",
-            params.metadata,
-            params.data);
-        this.containerNode = params.containerNode;
+        var that = this;
+        if (template)
+        {
+            util.parse(params.containerNode, template, function () {
+                if (params.metadata)
+                {
+                    that.attributeContainers =
+                        util.collectAttributeNodes(params.containerNode, params.metadata, "BrokerLogger", "File");
+                    that.fileBrowser = new FileBrowser({
+                        containerNode: params.typeSpecificDetailsNode,
+                        management: params.management,
+                        data: params.data,
+                        modelObj: params.modelObj
+                    });
+                    that.update(params.data);
+                }
+                that.containerNode = params.containerNode;
+            });
+        }
     }
 
-    util.extend(BrokerFileLogger, TypeTabExtension);
-
     BrokerFileLogger.prototype.update = function (restData)
     {
-        TypeTabExtension.prototype.update.call(this, restData);
+        util.updateAttributeNodes(this.attributeContainers, restData);
         this.fileBrowser.update(restData);
         query(".maxHistoryLabel", this.containerNode)[0].style.display =
             restData && restData['rollDaily'] ? 'none' : '';
diff --git a/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/show.js b/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/show.js
index 7c8265b..130eb04 100644
--- a/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/show.js
+++ b/broker-plugins/logging-logback/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/show.js
@@ -27,27 +27,30 @@
 {
     function VirtualHostFileLogger(params)
     {
-        this.fileBrowser = new FileBrowser({
-            containerNode: params.typeSpecificDetailsNode,
-            management: params.management,
-            data: params.data,
-            modelObj: params.modelObj
-        });
-        TypeTabExtension.call(this,
-            params.containerNode,
-            template,
-            "VirtualHostLogger",
-            "File",
-            params.metadata,
-            params.data);
-        this.containerNode = params.containerNode;
+        var that = this;
+        if (template)
+        {
+            util.parse(params.containerNode, template, function () {
+                if (params.metadata)
+                {
+                    that.attributeContainers =
+                        util.collectAttributeNodes(params.containerNode, params.metadata, "VirtualHostLogger", "File");
+                    that.fileBrowser = new FileBrowser({
+                        containerNode: params.typeSpecificDetailsNode,
+                        management: params.management,
+                        data: params.data,
+                        modelObj: params.modelObj
+                    });
+                    that.update(params.data);
+                }
+                that.containerNode = params.containerNode;
+            });
+        }
     }
 
-    util.extend(VirtualHostFileLogger, TypeTabExtension);
-
     VirtualHostFileLogger.prototype.update = function (restData)
     {
-        TypeTabExtension.prototype.update.call(this, restData);
+        util.updateAttributeNodes(this.attributeContainers, restData);
         this.fileBrowser.update(restData);
         query(".maxHistoryLabel", this.containerNode)[0].style.display =
             restData && restData['rollDaily'] ? 'none' : '';