Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js?rev=1741993&r1=1741992&r2=1741993&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
 Mon May  2 15:57:52 2016
@@ -30,303 +30,289 @@ define(["dojo/parser",
         "dojox/html/entities",
         "dojo/text!showConnection.html",
         "dojo/domReady!"],
-       function (parser, query, connect, registry, properties, updater, util, 
formatter, UpdatableStore, entities, template)
-       {
+    function (parser,
+              query,
+              connect,
+              registry,
+              properties,
+              updater,
+              util,
+              formatter,
+              UpdatableStore,
+              entities,
+              template)
+    {
+
+        function Connection(name, parent, controller)
+        {
+            this.name = name;
+            this.controller = controller;
+            this.management = controller.management
+            this.modelObj = {
+                type: "connection",
+                name: name,
+                parent: parent
+            };
+        }
+
+        Connection.prototype.getTitle = function ()
+        {
+            return "Connection: " + this.name;
+        };
+
+        Connection.prototype.open = function (contentPane)
+        {
+            var that = this;
+            this.contentPane = contentPane;
+            var containerNode = contentPane.containerNode;
+            containerNode.innerHTML = template;
+            parser.parse(contentPane.containerNode)
+                .then(function (instances)
+                {
+                    that.connectionUpdater = new ConnectionUpdater(that);
+                    that.connectionUpdater.update(function ()
+                    {
+                        updater.add(that.connectionUpdater);
+                    });
+
+                    that.closeButton = registry.byNode(query(".closeButton", 
containerNode)[0]);
+                    that.closeButton.on("click", function (e)
+                    {
+                        if (confirm("Are you sure you want to close the 
connection?"))
+                        {
+                            that.management.remove(that.modelObj)
+                                .then(function (result)
+                                {
+                                    that.destroy();
+                                });
+                        }
+                    });
+
+                });
+        };
+
+        Connection.prototype.close = function ()
+        {
+            updater.remove(this.connectionUpdater);
+        };
+
+        Connection.prototype.destroy = function ()
+        {
+            this.contentPane.onClose();
+            this.controller.tabContainer.removeChild(this.contentPane);
+            this.contentPane.destroyRecursive();
+        }
+
+        function ConnectionUpdater(connectionTab)
+        {
+            var that = this;
+            this.tabObject = connectionTab;
+            this.management = connectionTab.controller.management;
+            this.modelObj = connectionTab.modelObj;
+            var containerNode = connectionTab.contentPane.containerNode;
+
+            function findNode(name)
+            {
+                return query("." + name, containerNode)[0];
+            }
+
+            function storeNodes(names)
+            {
+                for (var i = 0; i < names.length; i++)
+                {
+                    that[names[i]] = findNode(names[i]);
+                }
+            }
+
+            storeNodes(["name",
+                        "clientVersion",
+                        "clientId",
+                        "principal",
+                        "port",
+                        "transport",
+                        "protocol",
+                        "remoteProcessPid",
+                        "createdTime",
+                        "lastIoTime",
+                        "msgInRate",
+                        "bytesInRate",
+                        "bytesInRateUnits",
+                        "msgOutRate",
+                        "bytesOutRate",
+                        "bytesOutRateUnits"]);
+
+            var userPreferences = this.management.userPreferences;
+
+            that.connectionData = {};
+            that.sessionsGrid = new UpdatableStore([], findNode("sessions"), [{
+                name: "Name",
+                field: "name",
+                width: "20%"
+            }, {
+                name: "Consumers",
+                field: "consumerCount",
+                width: "15%"
+            }, {
+                name: "Unacknowledged messages",
+                field: "unacknowledgedMessages",
+                width: "15%"
+            }, {
+                name: "Current store transaction start",
+                field: "transactionStartTime",
+                width: "25%",
+                formatter: function (transactionStartTime)
+                {
+                    if (transactionStartTime > 0)
+                    {
+                        return 
userPreferences.formatDateTime(transactionStartTime, {
+                            selector: "time",
+                            addOffset: true,
+                            appendTimeZone: true
+                        });
+                    }
+                    else
+                    {
+                        return "N/A";
+                    }
+                }
+            }, {
+                name: "Current store transaction update",
+                field: "transactionUpdateTime",
+                width: "25%",
+                formatter: function (transactionUpdateTime)
+                {
+                    if (transactionUpdateTime > 0)
+                    {
+                        return 
userPreferences.formatDateTime(transactionUpdateTime, {
+                            selector: "time",
+                            addOffset: true,
+                            appendTimeZone: true
+                        });
+                    }
+                    else
+                    {
+                        return "N/A";
+                    }
+                }
+            }]);
+
+        }
+
+        ConnectionUpdater.prototype.updateHeader = function ()
+        {
+            this.name.innerHTML = 
entities.encode(String(this.connectionData["name"]));
+            this.clientId.innerHTML = 
entities.encode(String(this.connectionData["clientId"]));
+            this.clientVersion.innerHTML = 
entities.encode(String(this.connectionData["clientVersion"]));
+            this.principal.innerHTML = 
entities.encode(String(this.connectionData["principal"]));
+            this.port.innerHTML = 
entities.encode(String(this.connectionData["port"]));
+            this.transport.innerHTML = 
entities.encode(String(this.connectionData["transport"]));
+            this.protocol.innerHTML = 
entities.encode(String(this.connectionData["protocol"]));
+            var remoteProcessPid = this.connectionData["remoteProcessPid"];
+            this.remoteProcessPid.innerHTML = 
entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A"));
+            var userPreferences = this.management.userPreferences;
+            this.createdTime.innerHTML = 
userPreferences.formatDateTime(this.connectionData["createdTime"], {
+                addOffset: true,
+                appendTimeZone: true
+            });
+            this.lastIoTime.innerHTML = 
userPreferences.formatDateTime(this.connectionData["lastIoTime"], {
+                addOffset: true,
+                appendTimeZone: true
+            });
+        };
+
+        ConnectionUpdater.prototype.update = function (callback)
+        {
+
+            var that = this;
+
+            that.management.load(this.modelObj)
+                .then(function (data)
+                {
+                    that.connectionData = data[0];
+
+                    util.flattenStatistics(that.connectionData);
+
+                    if (callback)
+                    {
+                        callback();
+                    }
+
+                    var sessions = that.connectionData["sessions"];
+
+                    that.updateHeader();
+
+                    var sampleTime = new Date();
+                    var messageIn = that.connectionData["messagesIn"];
+                    var bytesIn = that.connectionData["bytesIn"];
+                    var messageOut = that.connectionData["messagesOut"];
+                    var bytesOut = that.connectionData["bytesOut"];
+
+                    if (that.sampleTime)
+                    {
+                        var samplePeriod = sampleTime.getTime() - 
that.sampleTime.getTime();
+
+                        var msgInRate = (1000 * (messageIn - that.messageIn)) 
/ samplePeriod;
+                        var msgOutRate = (1000 * (messageOut - 
that.messageOut)) / samplePeriod;
+                        var bytesInRate = (1000 * (bytesIn - that.bytesIn)) / 
samplePeriod;
+                        var bytesOutRate = (1000 * (bytesOut - that.bytesOut)) 
/ samplePeriod;
+
+                        that.msgInRate.innerHTML = msgInRate.toFixed(0);
+                        var bytesInFormat = formatter.formatBytes(bytesInRate);
+                        that.bytesInRate.innerHTML = "(" + bytesInFormat.value;
+                        that.bytesInRateUnits.innerHTML = bytesInFormat.units 
+ "/s)";
+
+                        that.msgOutRate.innerHTML = msgOutRate.toFixed(0);
+                        var bytesOutFormat = 
formatter.formatBytes(bytesOutRate);
+                        that.bytesOutRate.innerHTML = "(" + 
bytesOutFormat.value;
+                        that.bytesOutRateUnits.innerHTML = 
bytesOutFormat.units + "/s)";
+
+                        if (sessions && that.sessions)
+                        {
+                            for (var i = 0; i < sessions.length; i++)
+                            {
+                                var session = sessions[i];
+                                for (var j = 0; j < that.sessions.length; j++)
+                                {
+                                    var oldSession = that.sessions[j];
+                                    if (oldSession.id == session.id)
+                                    {
+                                        var msgRate = (1000 * 
(session.messagesOut - oldSession.messagesOut))
+                                                      / samplePeriod;
+                                        session.msgRate = msgRate.toFixed(0) + 
"msg/s";
+
+                                        var bytesRate = (1000 * 
(session.bytesOut - oldSession.bytesOut))
+                                                        / samplePeriod;
+                                        var bytesRateFormat = 
formatter.formatBytes(bytesRate);
+                                        session.bytesRate = 
bytesRateFormat.value + bytesRateFormat.units + "/s";
+                                    }
+
+                                }
+
+                            }
+                        }
+
+                    }
+
+                    that.sampleTime = sampleTime;
+                    that.messageIn = messageIn;
+                    that.bytesIn = bytesIn;
+                    that.messageOut = messageOut;
+                    that.bytesOut = bytesOut;
+                    that.sessions = sessions;
+
+                    // update sessions
+                    that.sessionsGrid.update(that.connectionData.sessions)
+                }, function (error)
+                {
+                    util.tabErrorHandler(error, {
+                        updater: that,
+                        contentPane: that.tabObject.contentPane,
+                        tabContainer: that.tabObject.controller.tabContainer,
+                        name: that.modelObj.name,
+                        category: "Connection"
+                    });
+                });
+        };
 
-           function Connection(name, parent, controller)
-           {
-               this.name = name;
-               this.controller = controller;
-               this.management = controller.management
-               this.modelObj = {
-                   type: "connection",
-                   name: name,
-                   parent: parent
-               };
-           }
-
-           Connection.prototype.getTitle = function ()
-           {
-               return "Connection: " + this.name;
-           };
-
-           Connection.prototype.open = function (contentPane)
-           {
-               var that = this;
-               this.contentPane = contentPane;
-               var containerNode = contentPane.containerNode;
-               containerNode.innerHTML = template;
-               parser.parse(contentPane.containerNode).then(function 
(instances)
-                                                            {
-                                                                
that.connectionUpdater = new ConnectionUpdater(that);
-                                                                
that.connectionUpdater.update(function ()
-                                                                               
               {
-                                                                               
                   updater.add(that.connectionUpdater);
-                                                                               
               });
-
-                                                                
that.closeButton = registry.byNode(query(".closeButton",
-                                                                               
                          containerNode)[0]);
-                                                                
that.closeButton.on("click", function (e)
-                                                                {
-                                                                    if 
(confirm(
-                                                                            
"Are you sure you want to close the connection?"))
-                                                                    {
-                                                                        
that.management.remove(that.modelObj)
-                                                                            
.then(function (result)
-                                                                               
   {
-                                                                               
       that.destroy();
-                                                                               
   });
-                                                                    }
-                                                                });
-
-                                                            });
-           };
-
-           Connection.prototype.close = function ()
-           {
-               updater.remove(this.connectionUpdater);
-           };
-
-           Connection.prototype.destroy = function ()
-           {
-               this.contentPane.onClose();
-               this.controller.tabContainer.removeChild(this.contentPane);
-               this.contentPane.destroyRecursive();
-           }
-
-           function ConnectionUpdater(connectionTab)
-           {
-               var that = this;
-               this.tabObject = connectionTab;
-               this.management = connectionTab.controller.management;
-               this.modelObj = connectionTab.modelObj;
-               var containerNode = connectionTab.contentPane.containerNode;
-
-               function findNode(name)
-               {
-                   return query("." + name, containerNode)[0];
-               }
-
-               function storeNodes(names)
-               {
-                   for (var i = 0; i < names.length; i++)
-                   {
-                       that[names[i]] = findNode(names[i]);
-                   }
-               }
-
-               storeNodes(["name",
-                           "clientVersion",
-                           "clientId",
-                           "principal",
-                           "port",
-                           "transport",
-                           "protocol",
-                           "remoteProcessPid",
-                           "createdTime",
-                           "lastIoTime",
-                           "msgInRate",
-                           "bytesInRate",
-                           "bytesInRateUnits",
-                           "msgOutRate",
-                           "bytesOutRate",
-                           "bytesOutRateUnits"]);
-
-               var userPreferences = this.management.userPreferences;
-
-               that.connectionData = {};
-               that.sessionsGrid = new UpdatableStore([], 
findNode("sessions"), [{
-                   name: "Name",
-                   field: "name",
-                   width: "20%"
-               },
-                   {
-                       name: "Consumers",
-                       field: "consumerCount",
-                       width: "15%"
-                   },
-                   {
-                       name: "Unacknowledged messages",
-                       field: "unacknowledgedMessages",
-                       width: "15%"
-                   },
-                   {
-                       name: "Current store transaction start",
-                       field: "transactionStartTime",
-                       width: "25%",
-                       formatter: function (transactionStartTime)
-                       {
-                           if (transactionStartTime > 0)
-                           {
-                               return 
userPreferences.formatDateTime(transactionStartTime,
-                                                                     {
-                                                                         
selector: "time",
-                                                                         
addOffset: true,
-                                                                         
appendTimeZone: true
-                                                                     });
-                           }
-                           else
-                           {
-                               return "N/A";
-                           }
-                       }
-                   },
-                   {
-                       name: "Current store transaction update",
-                       field: "transactionUpdateTime",
-                       width: "25%",
-                       formatter: function (transactionUpdateTime)
-                       {
-                           if (transactionUpdateTime > 0)
-                           {
-                               return 
userPreferences.formatDateTime(transactionUpdateTime,
-                                                                     {
-                                                                         
selector: "time",
-                                                                         
addOffset: true,
-                                                                         
appendTimeZone: true
-                                                                     });
-                           }
-                           else
-                           {
-                               return "N/A";
-                           }
-                       }
-                   }]);
-
-           }
-
-           ConnectionUpdater.prototype.updateHeader = function ()
-           {
-               this.name.innerHTML = 
entities.encode(String(this.connectionData["name"]));
-               this.clientId.innerHTML = 
entities.encode(String(this.connectionData["clientId"]));
-               this.clientVersion.innerHTML = 
entities.encode(String(this.connectionData["clientVersion"]));
-               this.principal.innerHTML = 
entities.encode(String(this.connectionData["principal"]));
-               this.port.innerHTML = 
entities.encode(String(this.connectionData["port"]));
-               this.transport.innerHTML = 
entities.encode(String(this.connectionData["transport"]));
-               this.protocol.innerHTML = 
entities.encode(String(this.connectionData["protocol"]));
-               var remoteProcessPid = this.connectionData["remoteProcessPid"];
-               this.remoteProcessPid.innerHTML = 
entities.encode(String(remoteProcessPid ? remoteProcessPid : "N/A"));
-               var userPreferences = this.management.userPreferences;
-               this.createdTime.innerHTML = 
userPreferences.formatDateTime(this.connectionData["createdTime"],
-                                                                           {
-                                                                               
addOffset: true,
-                                                                               
appendTimeZone: true
-                                                                           });
-               this.lastIoTime.innerHTML = 
userPreferences.formatDateTime(this.connectionData["lastIoTime"],
-                                                                          {
-                                                                              
addOffset: true,
-                                                                              
appendTimeZone: true
-                                                                          });
-           };
-
-           ConnectionUpdater.prototype.update = function (callback)
-           {
-
-               var that = this;
-
-               that.management.load(this.modelObj).then(function (data)
-                                                        {
-                                                            
that.connectionData = data[0];
-
-                                                            
util.flattenStatistics(that.connectionData);
-
-                                                            if (callback)
-                                                            {
-                                                                callback();
-                                                            }
-
-                                                            var sessions = 
that.connectionData["sessions"];
-
-                                                            
that.updateHeader();
-
-                                                            var sampleTime = 
new Date();
-                                                            var messageIn = 
that.connectionData["messagesIn"];
-                                                            var bytesIn = 
that.connectionData["bytesIn"];
-                                                            var messageOut = 
that.connectionData["messagesOut"];
-                                                            var bytesOut = 
that.connectionData["bytesOut"];
-
-                                                            if 
(that.sampleTime)
-                                                            {
-                                                                var 
samplePeriod = sampleTime.getTime()
-                                                                               
    - that.sampleTime.getTime();
-
-                                                                var msgInRate 
= (1000 * (messageIn - that.messageIn))
-                                                                               
 / samplePeriod;
-                                                                var msgOutRate 
= (1000 * (messageOut - that.messageOut))
-                                                                               
  / samplePeriod;
-                                                                var 
bytesInRate = (1000 * (bytesIn - that.bytesIn))
-                                                                               
   / samplePeriod;
-                                                                var 
bytesOutRate = (1000 * (bytesOut - that.bytesOut))
-                                                                               
    / samplePeriod;
-
-                                                                
that.msgInRate.innerHTML = msgInRate.toFixed(0);
-                                                                var 
bytesInFormat = formatter.formatBytes(bytesInRate);
-                                                                
that.bytesInRate.innerHTML = "(" + bytesInFormat.value;
-                                                                
that.bytesInRateUnits.innerHTML =
-                                                                    
bytesInFormat.units + "/s)";
-
-                                                                
that.msgOutRate.innerHTML = msgOutRate.toFixed(0);
-                                                                var 
bytesOutFormat = formatter.formatBytes(bytesOutRate);
-                                                                
that.bytesOutRate.innerHTML =
-                                                                    "(" + 
bytesOutFormat.value;
-                                                                
that.bytesOutRateUnits.innerHTML =
-                                                                    
bytesOutFormat.units + "/s)";
-
-                                                                if (sessions 
&& that.sessions)
-                                                                {
-                                                                    for (var i 
= 0; i < sessions.length; i++)
-                                                                    {
-                                                                        var 
session = sessions[i];
-                                                                        for 
(var j = 0; j < that.sessions.length; j++)
-                                                                        {
-                                                                            
var oldSession = that.sessions[j];
-                                                                            if 
(oldSession.id == session.id)
-                                                                            {
-                                                                               
 var msgRate = (1000
-                                                                               
                * (session.messagesOut
-                                                                               
                   - oldSession.messagesOut))
-                                                                               
               / samplePeriod;
-                                                                               
 session.msgRate =
-                                                                               
     msgRate.toFixed(0) + "msg/s";
-
-                                                                               
 var bytesRate = (1000
-                                                                               
                  * (session.bytesOut
-                                                                               
                     - oldSession.bytesOut))
-                                                                               
                 / samplePeriod;
-                                                                               
 var bytesRateFormat = formatter.formatBytes(
-                                                                               
     bytesRate);
-                                                                               
 session.bytesRate =
-                                                                               
     bytesRateFormat.value
-                                                                               
     + bytesRateFormat.units + "/s";
-                                                                            }
-
-                                                                        }
-
-                                                                    }
-                                                                }
-
-                                                            }
-
-                                                            that.sampleTime = 
sampleTime;
-                                                            that.messageIn = 
messageIn;
-                                                            that.bytesIn = 
bytesIn;
-                                                            that.messageOut = 
messageOut;
-                                                            that.bytesOut = 
bytesOut;
-                                                            that.sessions = 
sessions;
-
-                                                            // update sessions
-                                                            
that.sessionsGrid.update(that.connectionData.sessions)
-                                                        }, function (error)
-                                                        {
-                                                            
util.tabErrorHandler(error, {
-                                                                updater: that,
-                                                                contentPane: 
that.tabObject.contentPane,
-                                                                tabContainer: 
that.tabObject.controller.tabContainer,
-                                                                name: 
that.modelObj.name,
-                                                                category: 
"Connection"
-                                                            });
-                                                        });
-           };
-
-           return Connection;
-       });
+        return Connection;
+    });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js?rev=1741993&r1=1741992&r2=1741993&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
 Mon May  2 15:57:52 2016
@@ -33,307 +33,300 @@ define(["dojo/_base/xhr",
         "dojox/html/entities",
         "dojo/text!showExchange.html",
         "dojo/domReady!"],
-       function (xhr, parser, query, connect, registry, properties, updater, 
util, formatter, UpdatableStore, addBinding, EnhancedGrid, entities, template)
-       {
+    function (xhr,
+              parser,
+              query,
+              connect,
+              registry,
+              properties,
+              updater,
+              util,
+              formatter,
+              UpdatableStore,
+              addBinding,
+              EnhancedGrid,
+              entities,
+              template)
+    {
+
+        function Exchange(name, parent, controller)
+        {
+            this.name = name;
+            this.controller = controller;
+            this.management = controller.management;
+            this.modelObj = {
+                type: "exchange",
+                name: name,
+                parent: parent
+            };
+        }
+
+        Exchange.prototype.getExchangeName = function ()
+        {
+            return this.name;
+        };
+
+        Exchange.prototype.getVirtualHostName = function ()
+        {
+            return this.modelObj.parent.name;
+        };
+
+        Exchange.prototype.getVirtualHostNodeName = function ()
+        {
+            return this.modelObj.parent.parent.name;
+        };
+
+        Exchange.prototype.getTitle = function ()
+        {
+            return "Exchange: " + this.name;
+        };
+
+        Exchange.prototype.open = function (contentPane)
+        {
+            var that = this;
+            this.contentPane = contentPane;
+
+            contentPane.containerNode.innerHTML = template;
+            parser.parse(contentPane.containerNode)
+                .then(function (instances)
+                {
+
+                    that.exchangeUpdater = new ExchangeUpdater(that);
+                    var addBindingButton = query(".addBindingButton", 
contentPane.containerNode)[0];
+                    connect.connect(registry.byNode(addBindingButton), 
"onClick", function (evt)
+                    {
+                        addBinding.show(that.management, that.modelObj);
+                    });
+
+                    var deleteBindingButton = query(".deleteBindingButton", 
contentPane.containerNode)[0];
+                    connect.connect(registry.byNode(deleteBindingButton), 
"onClick", function (evt)
+                    {
+                        that.deleteBindings();
+                    });
+
+                    var isStandard = util.isReservedExchangeName(that.name);
+                    var deleteExchangeButton = query(".deleteExchangeButton", 
contentPane.containerNode)[0];
+                    var node = registry.byNode(deleteExchangeButton);
+                    if (isStandard)
+                    {
+                        node.set('disabled', true);
+                    }
+                    else
+                    {
+                        connect.connect(node, "onClick", function (evt)
+                        {
+                            that.deleteExchange();
+                        });
+                    }
+
+                    that.exchangeUpdater.update(function ()
+                    {
+                        updater.add(that.exchangeUpdater)
+                    });
+                });
+        };
+
+        Exchange.prototype.close = function ()
+        {
+            updater.remove(this.exchangeUpdater);
+        };
+
+        Exchange.prototype.deleteBindings = function ()
+        {
+            util.deleteSelectedObjects(this.exchangeUpdater.bindingsGrid.grid,
+                "Are you sure you want to delete binding",
+                this.management,
+                {
+                    type: "binding",
+                    parent: this.modelObj
+                },
+                this.exchangeUpdater);
+        }
+
+        function ExchangeUpdater(exchangeTab)
+        {
+            var that = this;
+            this.tabObject = exchangeTab;
+            this.management = exchangeTab.controller.management;
+            this.modelObj = exchangeTab.modelObj;
+            var containerNode = exchangeTab.contentPane.containerNode;
+
+            function findNode(name)
+            {
+                return query("." + name, containerNode)[0];
+            }
+
+            function storeNodes(names)
+            {
+                for (var i = 0; i < names.length; i++)
+                {
+                    that[names[i]] = findNode(names[i]);
+                }
+            }
+
+            storeNodes(["name",
+                        "type",
+                        "state",
+                        "durable",
+                        "lifetimePolicy",
+                        "alertRepeatGap",
+                        "alertRepeatGapUnits",
+                        "alertThresholdMessageAge",
+                        "alertThresholdMessageAgeUnits",
+                        "alertThresholdMessageSize",
+                        "alertThresholdMessageSizeUnits",
+                        "alertThresholdQueueDepthBytes",
+                        "alertThresholdQueueDepthBytesUnits",
+                        "alertThresholdQueueDepthMessages",
+                        "msgInRate",
+                        "bytesInRate",
+                        "bytesInRateUnits",
+                        "msgDropRate",
+                        "bytesDropRate",
+                        "bytesDropRateUnits"]);
+
+            that.exchangeData = {};
+
+            that.bindingsGrid = new UpdatableStore([], findNode("bindings"), [{
+                name: "Queue",
+                field: "queue",
+                width: "40%"
+            }, {
+                name: "Binding Key",
+                field: "name",
+                width: "30%"
+            }, {
+                name: "Arguments",
+                field: "argumentString",
+                width: "30%"
+            }], null, {
+                keepSelection: true,
+                plugins: {
+                    pagination: {
+                        pageSizes: ["10", "25", "50", "100"],
+                        description: true,
+                        sizeSwitch: true,
+                        pageStepper: true,
+                        gotoButton: true,
+                        maxPageStep: 4,
+                        position: "bottom"
+                    },
+                    indirectSelection: true
+
+                }
+            }, EnhancedGrid);
+        }
+
+        ExchangeUpdater.prototype.updateHeader = function ()
+        {
+            this.name.innerHTML = 
entities.encode(String(this.exchangeData["name"]));
+            this["type"].innerHTML = 
entities.encode(String(this.exchangeData["type"]));
+
+            this.state.innerHTML = 
entities.encode(String(this.exchangeData["state"]));
+            this.durable.innerHTML = 
entities.encode(String(this.exchangeData["durable"]));
+            this.lifetimePolicy.innerHTML = 
entities.encode(String(this.exchangeData["lifetimePolicy"]));
+
+        };
+
+        ExchangeUpdater.prototype.update = function (callback)
+        {
+
+            var thisObj = this;
+
+            this.management.load(this.modelObj)
+                .then(function (data)
+                {
+                    thisObj.exchangeData = data[0];
+
+                    if (callback)
+                    {
+                        callback();
+                    }
+
+                    util.flattenStatistics(thisObj.exchangeData);
+
+                    var bindings = thisObj.exchangeData["bindings"];
+
+                    if (bindings)
+                    {
+                        for (var i = 0; i < bindings.length; i++)
+                        {
+                            if (bindings[i].arguments)
+                            {
+                                bindings[i].argumentString = 
dojo.toJson(bindings[i].arguments);
+                            }
+                            else
+                            {
+                                bindings[i].argumentString = "";
+                            }
+                        }
+                    }
+
+                    var sampleTime = new Date();
+
+                    thisObj.updateHeader();
+
+                    var messageIn = thisObj.exchangeData["messagesIn"];
+                    var bytesIn = thisObj.exchangeData["bytesIn"];
+                    var messageDrop = thisObj.exchangeData["messagesDropped"];
+                    var bytesDrop = thisObj.exchangeData["bytesDropped"];
+
+                    if (thisObj.sampleTime)
+                    {
+                        var samplePeriod = sampleTime.getTime() - 
thisObj.sampleTime.getTime();
+
+                        var msgInRate = (1000 * (messageIn - 
thisObj.messageIn)) / samplePeriod;
+                        var msgDropRate = (1000 * (messageDrop - 
thisObj.messageDrop)) / samplePeriod;
+                        var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn)) 
/ samplePeriod;
+                        var bytesDropRate = (1000 * (bytesDrop - 
thisObj.bytesDrop)) / samplePeriod;
+
+                        thisObj.msgInRate.innerHTML = msgInRate.toFixed(0);
+                        var bytesInFormat = formatter.formatBytes(bytesInRate);
+                        thisObj.bytesInRate.innerHTML = "(" + 
bytesInFormat.value;
+                        thisObj.bytesInRateUnits.innerHTML = 
bytesInFormat.units + "/s)";
+
+                        thisObj.msgDropRate.innerHTML = msgDropRate.toFixed(0);
+                        var bytesDropFormat = 
formatter.formatBytes(bytesDropRate);
+                        thisObj.bytesDropRate.innerHTML = "(" + 
bytesDropFormat.value;
+                        thisObj.bytesDropRateUnits.innerHTML = 
bytesDropFormat.units + "/s)"
+
+                    }
+
+                    thisObj.sampleTime = sampleTime;
+                    thisObj.messageIn = messageIn;
+                    thisObj.bytesIn = bytesIn;
+                    thisObj.messageDrop = messageDrop;
+                    thisObj.bytesDrop = bytesDrop;
+
+                    // update bindings
+                    thisObj.bindingsGrid.update(thisObj.exchangeData.bindings)
+
+                }, function (error)
+                {
+                    util.tabErrorHandler(error, {
+                        updater: thisObj,
+                        contentPane: thisObj.tabObject.contentPane,
+                        tabContainer: 
thisObj.tabObject.controller.tabContainer,
+                        name: thisObj.modelObj.name,
+                        category: "Exchange"
+                    });
+                });
+        };
+
+        Exchange.prototype.deleteExchange = function ()
+        {
+            if (confirm("Are you sure you want to delete exchange '" + 
this.name + "'?"))
+            {
+                var that = this;
+                this.management.remove(this.modelObj)
+                    .then(function (data)
+                    {
+                        that.contentPane.onClose()
+                        
that.controller.tabContainer.removeChild(that.contentPane);
+                        that.contentPane.destroyRecursive();
+                    }, util.xhrErrorHandler);
+            }
+        }
 
-           function Exchange(name, parent, controller)
-           {
-               this.name = name;
-               this.controller = controller;
-               this.management = controller.management;
-               this.modelObj = {
-                   type: "exchange",
-                   name: name,
-                   parent: parent
-               };
-           }
-
-           Exchange.prototype.getExchangeName = function ()
-           {
-               return this.name;
-           };
-
-           Exchange.prototype.getVirtualHostName = function ()
-           {
-               return this.modelObj.parent.name;
-           };
-
-           Exchange.prototype.getVirtualHostNodeName = function ()
-           {
-               return this.modelObj.parent.parent.name;
-           };
-
-           Exchange.prototype.getTitle = function ()
-           {
-               return "Exchange: " + this.name;
-           };
-
-           Exchange.prototype.open = function (contentPane)
-           {
-               var that = this;
-               this.contentPane = contentPane;
-
-               contentPane.containerNode.innerHTML = template;
-               parser.parse(contentPane.containerNode).then(function 
(instances)
-                                                            {
-
-                                                                
that.exchangeUpdater = new ExchangeUpdater(that);
-                                                                var 
addBindingButton = query(".addBindingButton",
-                                                                               
              contentPane.containerNode)[0];
-                                                                
connect.connect(registry.byNode(addBindingButton),
-                                                                               
 "onClick",
-                                                                               
 function (evt)
-                                                                               
 {
-                                                                               
     addBinding.show(that.management,
-                                                                               
                     that.modelObj);
-                                                                               
 });
-
-                                                                var 
deleteBindingButton = query(".deleteBindingButton",
-                                                                               
                 contentPane.containerNode)[0];
-                                                                
connect.connect(registry.byNode(deleteBindingButton),
-                                                                               
 "onClick",
-                                                                               
 function (evt)
-                                                                               
 {
-                                                                               
     that.deleteBindings();
-                                                                               
 });
-
-                                                                var isStandard 
= util.isReservedExchangeName(that.name);
-                                                                var 
deleteExchangeButton = query(".deleteExchangeButton",
-                                                                               
                  contentPane.containerNode)[0];
-                                                                var node = 
registry.byNode(deleteExchangeButton);
-                                                                if (isStandard)
-                                                                {
-                                                                    
node.set('disabled', true);
-                                                                }
-                                                                else
-                                                                {
-                                                                    
connect.connect(node, "onClick", function (evt)
-                                                                    {
-                                                                        
that.deleteExchange();
-                                                                    });
-                                                                }
-
-                                                                
that.exchangeUpdater.update(function ()
-                                                                               
             {
-                                                                               
                 updater.add(that.exchangeUpdater)
-                                                                               
             });
-                                                            });
-           };
-
-           Exchange.prototype.close = function ()
-           {
-               updater.remove(this.exchangeUpdater);
-           };
-
-           Exchange.prototype.deleteBindings = function ()
-           {
-               
util.deleteSelectedObjects(this.exchangeUpdater.bindingsGrid.grid,
-                                          "Are you sure you want to delete 
binding",
-                                          this.management,
-                                          {
-                                              type: "binding",
-                                              parent: this.modelObj
-                                          },
-                                          this.exchangeUpdater);
-           }
-
-           function ExchangeUpdater(exchangeTab)
-           {
-               var that = this;
-               this.tabObject = exchangeTab;
-               this.management = exchangeTab.controller.management;
-               this.modelObj = exchangeTab.modelObj;
-               var containerNode = exchangeTab.contentPane.containerNode;
-
-               function findNode(name)
-               {
-                   return query("." + name, containerNode)[0];
-               }
-
-               function storeNodes(names)
-               {
-                   for (var i = 0; i < names.length; i++)
-                   {
-                       that[names[i]] = findNode(names[i]);
-                   }
-               }
-
-               storeNodes(["name",
-                           "type",
-                           "state",
-                           "durable",
-                           "lifetimePolicy",
-                           "alertRepeatGap",
-                           "alertRepeatGapUnits",
-                           "alertThresholdMessageAge",
-                           "alertThresholdMessageAgeUnits",
-                           "alertThresholdMessageSize",
-                           "alertThresholdMessageSizeUnits",
-                           "alertThresholdQueueDepthBytes",
-                           "alertThresholdQueueDepthBytesUnits",
-                           "alertThresholdQueueDepthMessages",
-                           "msgInRate",
-                           "bytesInRate",
-                           "bytesInRateUnits",
-                           "msgDropRate",
-                           "bytesDropRate",
-                           "bytesDropRateUnits"]);
-
-               that.exchangeData = {};
-
-               that.bindingsGrid = new UpdatableStore([], 
findNode("bindings"), [{
-                   name: "Queue",
-                   field: "queue",
-                   width: "40%"
-               },
-                   {
-                       name: "Binding Key",
-                       field: "name",
-                       width: "30%"
-                   },
-                   {
-                       name: "Arguments",
-                       field: "argumentString",
-                       width: "30%"
-                   }], null, {
-                   keepSelection: true,
-                   plugins: {
-                       pagination: {
-                           pageSizes: ["10", "25", "50", "100"],
-                           description: true,
-                           sizeSwitch: true,
-                           pageStepper: true,
-                           gotoButton: true,
-                           maxPageStep: 4,
-                           position: "bottom"
-                       },
-                       indirectSelection: true
-
-                   }
-               }, EnhancedGrid);
-           }
-
-           ExchangeUpdater.prototype.updateHeader = function ()
-           {
-               this.name.innerHTML = 
entities.encode(String(this.exchangeData["name"]));
-               this["type"].innerHTML = 
entities.encode(String(this.exchangeData["type"]));
-
-               this.state.innerHTML = 
entities.encode(String(this.exchangeData["state"]));
-               this.durable.innerHTML = 
entities.encode(String(this.exchangeData["durable"]));
-               this.lifetimePolicy.innerHTML = 
entities.encode(String(this.exchangeData["lifetimePolicy"]));
-
-           };
-
-           ExchangeUpdater.prototype.update = function (callback)
-           {
-
-               var thisObj = this;
-
-               this.management.load(this.modelObj).then(function (data)
-                                                        {
-                                                            
thisObj.exchangeData = data[0];
-
-                                                            if (callback)
-                                                            {
-                                                                callback();
-                                                            }
-
-                                                            
util.flattenStatistics(thisObj.exchangeData);
-
-                                                            var bindings = 
thisObj.exchangeData["bindings"];
-
-                                                            if (bindings)
-                                                            {
-                                                                for (var i = 
0; i < bindings.length; i++)
-                                                                {
-                                                                    if 
(bindings[i].arguments)
-                                                                    {
-                                                                        
bindings[i].argumentString =
-                                                                            
dojo.toJson(bindings[i].arguments);
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                        
bindings[i].argumentString = "";
-                                                                    }
-                                                                }
-                                                            }
-
-                                                            var sampleTime = 
new Date();
-
-                                                            
thisObj.updateHeader();
-
-                                                            var messageIn = 
thisObj.exchangeData["messagesIn"];
-                                                            var bytesIn = 
thisObj.exchangeData["bytesIn"];
-                                                            var messageDrop = 
thisObj.exchangeData["messagesDropped"];
-                                                            var bytesDrop = 
thisObj.exchangeData["bytesDropped"];
-
-                                                            if 
(thisObj.sampleTime)
-                                                            {
-                                                                var 
samplePeriod = sampleTime.getTime()
-                                                                               
    - thisObj.sampleTime.getTime();
-
-                                                                var msgInRate 
= (1000 * (messageIn - thisObj.messageIn))
-                                                                               
 / samplePeriod;
-                                                                var 
msgDropRate = (1000 * (messageDrop
-                                                                               
            - thisObj.messageDrop))
-                                                                               
   / samplePeriod;
-                                                                var 
bytesInRate = (1000 * (bytesIn - thisObj.bytesIn))
-                                                                               
   / samplePeriod;
-                                                                var 
bytesDropRate = (1000 * (bytesDrop
-                                                                               
              - thisObj.bytesDrop))
-                                                                               
     / samplePeriod;
-
-                                                                
thisObj.msgInRate.innerHTML = msgInRate.toFixed(0);
-                                                                var 
bytesInFormat = formatter.formatBytes(bytesInRate);
-                                                                
thisObj.bytesInRate.innerHTML =
-                                                                    "(" + 
bytesInFormat.value;
-                                                                
thisObj.bytesInRateUnits.innerHTML =
-                                                                    
bytesInFormat.units + "/s)";
-
-                                                                
thisObj.msgDropRate.innerHTML = msgDropRate.toFixed(0);
-                                                                var 
bytesDropFormat = formatter.formatBytes(
-                                                                    
bytesDropRate);
-                                                                
thisObj.bytesDropRate.innerHTML =
-                                                                    "(" + 
bytesDropFormat.value;
-                                                                
thisObj.bytesDropRateUnits.innerHTML =
-                                                                    
bytesDropFormat.units + "/s)"
-
-                                                            }
-
-                                                            thisObj.sampleTime 
= sampleTime;
-                                                            thisObj.messageIn 
= messageIn;
-                                                            thisObj.bytesIn = 
bytesIn;
-                                                            
thisObj.messageDrop = messageDrop;
-                                                            thisObj.bytesDrop 
= bytesDrop;
-
-                                                            // update bindings
-                                                            
thisObj.bindingsGrid.update(thisObj.exchangeData.bindings)
-
-                                                        }, function (error)
-                                                        {
-                                                            
util.tabErrorHandler(error, {
-                                                                updater: 
thisObj,
-                                                                contentPane: 
thisObj.tabObject.contentPane,
-                                                                tabContainer: 
thisObj.tabObject.controller.tabContainer,
-                                                                name: 
thisObj.modelObj.name,
-                                                                category: 
"Exchange"
-                                                            });
-                                                        });
-           };
-
-           Exchange.prototype.deleteExchange = function ()
-           {
-               if (confirm("Are you sure you want to delete exchange '" + 
this.name + "'?"))
-               {
-                   var that = this;
-                   this.management.remove(this.modelObj).then(function (data)
-                                                              {
-                                                                  
that.contentPane.onClose()
-                                                                  
that.controller.tabContainer.removeChild(that.contentPane);
-                                                                  
that.contentPane.destroyRecursive();
-                                                              }, 
util.xhrErrorHandler);
-               }
-           }
-
-           return Exchange;
-       });
+        return Exchange;
+    });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js?rev=1741993&r1=1741992&r2=1741993&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
 Mon May  2 15:57:52 2016
@@ -35,200 +35,215 @@ define(["dojo/parser",
         "dojox/grid/enhanced/plugins/Pagination",
         "dojox/grid/enhanced/plugins/IndirectSelection",
         "dojo/domReady!"],
-       function (parser, query, connect, array, event, properties, updater, 
util, UpdatableStore, EnhancedGrid, registry, entities, template, 
addGroupProvider)
-       {
+    function (parser,
+              query,
+              connect,
+              array,
+              event,
+              properties,
+              updater,
+              util,
+              UpdatableStore,
+              EnhancedGrid,
+              registry,
+              entities,
+              template,
+              addGroupProvider)
+    {
+
+        function GroupProvider(name, parent, controller)
+        {
+            this.name = name;
+            this.controller = controller;
+            this.management = controller.management;
+            this.modelObj = {
+                type: "groupprovider",
+                name: name,
+                parent: parent
+            };
+        }
+
+        GroupProvider.prototype.getTitle = function ()
+        {
+            return "GroupProvider: " + this.name;
+        };
+
+        GroupProvider.prototype.open = function (contentPane)
+        {
+            var that = this;
+            this.contentPane = contentPane;
+            contentPane.containerNode.innerHTML = template;
+            parser.parse(contentPane.containerNode)
+                .then(function (instances)
+                {
+                    that.onOpen();
+                });
+        };
+
+        GroupProvider.prototype.onOpen = function ()
+        {
+            var that = this;
+            var contentPane = this.contentPane;
+            this.groupProviderUpdater = new GroupProviderUpdater(this);
+            this.groupProviderUpdater.update(function ()
+            {
+                that._onOpenAfterUpdate();
+            });
+        };
+
+        GroupProvider.prototype._onOpenAfterUpdate = function ()
+        {
+            var that = this;
+            var contentPane = this.contentPane;
+            this.deleteButton = 
registry.byNode(query(".deleteGroupProviderButton", 
contentPane.containerNode)[0]);
+            this.deleteButton.on("click", function (evt)
+            {
+                event.stop(evt);
+                that.deleteGroupProvider();
+            });
+
+            this.editButton = 
registry.byNode(query(".editGroupProviderButton", 
contentPane.containerNode)[0]);
+            this.editButton.on("click", function (evt)
+            {
+                event.stop(evt);
+                that.editGroupProvider();
+            });
+
+            var type = this.groupProviderUpdater.groupProviderData.type;
+            var providerDetailsNode = query(".providerDetails", 
contentPane.containerNode)[0];
+
+            require(["qpid/management/groupprovider/" + 
encodeURIComponent(type.toLowerCase()) + "/show"],
+                function (DetailsUI)
+                {
+                    that.groupProviderUpdater.details = new DetailsUI({
+                        containerNode: providerDetailsNode,
+                        parent: that
+                    });
+                    
that.groupProviderUpdater.details.update(that.groupProviderUpdater.groupProviderData);
+                });
+
+            var managedInterfaces = 
this.management.metadata.getMetaData("GroupProvider", type).managedInterfaces;
+            if (managedInterfaces)
+            {
+
+                var managedInterfaceUI = 
this.groupProviderUpdater.managedInterfaces;
+
+                array.forEach(managedInterfaces, function (managedInterface)
+                {
+                    require(["qpid/management/groupprovider/" + 
encodeURIComponent(managedInterface)],
+                        function (ManagedInterface)
+                        {
+                            managedInterfaceUI[ManagedInterface] =
+                                new ManagedInterface(providerDetailsNode, 
that.modelObj, that.controller);
+                            
managedInterfaceUI[ManagedInterface].update(that.groupProviderUpdater.groupProviderData);
+                        });
+                });
+            }
+
+            updater.add(this.groupProviderUpdater);
+        };
+
+        GroupProvider.prototype.close = function ()
+        {
+            updater.remove(this.groupProviderUpdater);
+        };
+
+        GroupProvider.prototype.deleteGroupProvider = function ()
+        {
+            var warnMessage = "";
+            if (this.groupProviderUpdater.groupProviderData && 
this.groupProviderUpdater.groupProviderData.type.indexOf(
+                    "File") != -1)
+            {
+                warnMessage = "NOTE: provider deletion will also remove the 
group file on disk.\n\n";
+            }
+            if (confirm(warnMessage + "Are you sure you want to delete group 
provider '" + this.name + "'?"))
+            {
+                var that = this;
+                this.controller.management.remove(this.modelObj)
+                    .then(function (data)
+                    {
+                        that.close();
+                        that.contentPane.onClose()
+                        
that.controller.tabContainer.removeChild(that.contentPane);
+                        that.contentPane.destroyRecursive();
+                    }, util.xhrErrorHandler);
+            }
+        };
+
+        GroupProvider.prototype.editGroupProvider = function ()
+        {
+            addGroupProvider.show(this.controller.management,
+                this.modelObj,
+                this.groupProviderUpdater.groupProviderData);
+        }
+
+        function GroupProviderUpdater(groupProviderTab)
+        {
+            this.tabObject = groupProviderTab;
+            var controller = groupProviderTab.controller;
+            var groupProviderObj = groupProviderTab.modelObj;
+            var node = groupProviderTab.contentPane.containerNode;
+            this.controller = controller;
+            this.management = controller.management;
+            this.modelObj = groupProviderObj;
+            this.name = query(".name", node)[0];
+            this.type = query(".type", node)[0];
+            this.state = query(".state", node)[0];
+            this.managedInterfaces = {};
+            this.details = null;
+        }
+
+        GroupProviderUpdater.prototype.updateHeader = function ()
+        {
+            this.name.innerHTML = 
entities.encode(String(this.groupProviderData["name"]));
+            this.type.innerHTML = 
entities.encode(String(this.groupProviderData["type"]));
+            this.state.innerHTML = 
entities.encode(String(this.groupProviderData["state"]));
+        };
+
+        GroupProviderUpdater.prototype.update = function (callback)
+        {
+            var that = this;
+            var management = this.controller.management;
+            management.load(this.modelObj)
+                .then(function (data)
+                {
+                    that._update(data[0]);
+                    if (callback)
+                    {
+                        callback();
+                    }
+                }, function (error)
+                {
+                    util.tabErrorHandler(error, {
+                        updater: that,
+                        contentPane: that.tabObject.contentPane,
+                        tabContainer: that.tabObject.controller.tabContainer,
+                        name: that.modelObj.name,
+                        category: "Group Provider"
+                    });
+                });
+        };
+
+        GroupProviderUpdater.prototype._update = function (data)
+        {
+            this.groupProviderData = data;
+            util.flattenStatistics(this.groupProviderData);
+            this.updateHeader();
+
+            if (this.details)
+            {
+                this.details.update(this.groupProviderData);
+            }
+
+            for (var managedInterface in this.managedInterfaces)
+            {
+                var managedInterfaceUI = 
this.managedInterfaces[managedInterface];
+                if (managedInterfaceUI)
+                {
+                    managedInterfaceUI.update(this.groupProviderData);
+                }
+            }
+        };
 
-           function GroupProvider(name, parent, controller)
-           {
-               this.name = name;
-               this.controller = controller;
-               this.management = controller.management;
-               this.modelObj = {
-                   type: "groupprovider",
-                   name: name,
-                   parent: parent
-               };
-           }
-
-           GroupProvider.prototype.getTitle = function ()
-           {
-               return "GroupProvider: " + this.name;
-           };
-
-           GroupProvider.prototype.open = function (contentPane)
-           {
-               var that = this;
-               this.contentPane = contentPane;
-               contentPane.containerNode.innerHTML = template;
-               parser.parse(contentPane.containerNode).then(function 
(instances)
-                                                            {
-                                                                that.onOpen();
-                                                            });
-           };
-
-           GroupProvider.prototype.onOpen = function ()
-           {
-               var that = this;
-               var contentPane = this.contentPane;
-               this.groupProviderUpdater = new GroupProviderUpdater(this);
-               this.groupProviderUpdater.update(function ()
-                                                {
-                                                    that._onOpenAfterUpdate();
-                                                });
-           };
-
-           GroupProvider.prototype._onOpenAfterUpdate = function ()
-           {
-               var that = this;
-               var contentPane = this.contentPane;
-               this.deleteButton = 
registry.byNode(query(".deleteGroupProviderButton", 
contentPane.containerNode)[0]);
-               this.deleteButton.on("click", function (evt)
-               {
-                   event.stop(evt);
-                   that.deleteGroupProvider();
-               });
-
-               this.editButton = 
registry.byNode(query(".editGroupProviderButton", 
contentPane.containerNode)[0]);
-               this.editButton.on("click", function (evt)
-               {
-                   event.stop(evt);
-                   that.editGroupProvider();
-               });
-
-               var type = this.groupProviderUpdater.groupProviderData.type;
-               var providerDetailsNode = query(".providerDetails", 
contentPane.containerNode)[0];
-
-               require(["qpid/management/groupprovider/" + 
encodeURIComponent(type.toLowerCase()) + "/show"],
-                       function (DetailsUI)
-                       {
-                           that.groupProviderUpdater.details = new DetailsUI({
-                               containerNode: providerDetailsNode,
-                               parent: that
-                           });
-                           
that.groupProviderUpdater.details.update(that.groupProviderUpdater.groupProviderData);
-                       });
-
-               var managedInterfaces = 
this.management.metadata.getMetaData("GroupProvider", type).managedInterfaces;
-               if (managedInterfaces)
-               {
-
-                   var managedInterfaceUI = 
this.groupProviderUpdater.managedInterfaces;
-
-                   array.forEach(managedInterfaces, function (managedInterface)
-                   {
-                       require(["qpid/management/groupprovider/" + 
encodeURIComponent(managedInterface)],
-                               function (ManagedInterface)
-                               {
-                                   managedInterfaceUI[ManagedInterface] =
-                                       new 
ManagedInterface(providerDetailsNode, that.modelObj, that.controller);
-                                   
managedInterfaceUI[ManagedInterface].update(that.groupProviderUpdater.groupProviderData);
-                               });
-                   });
-               }
-
-               updater.add(this.groupProviderUpdater);
-           };
-
-           GroupProvider.prototype.close = function ()
-           {
-               updater.remove(this.groupProviderUpdater);
-           };
-
-           GroupProvider.prototype.deleteGroupProvider = function ()
-           {
-               var warnMessage = "";
-               if (this.groupProviderUpdater.groupProviderData
-                   && 
this.groupProviderUpdater.groupProviderData.type.indexOf("File") != -1)
-               {
-                   warnMessage = "NOTE: provider deletion will also remove the 
group file on disk.\n\n";
-               }
-               if (confirm(warnMessage + "Are you sure you want to delete 
group provider '" + this.name + "'?"))
-               {
-                   var that = this;
-                   
this.controller.management.remove(this.modelObj).then(function (data)
-                                                                         {
-                                                                             
that.close();
-                                                                             
that.contentPane.onClose()
-                                                                             
that.controller.tabContainer.removeChild(
-                                                                               
  that.contentPane);
-                                                                             
that.contentPane.destroyRecursive();
-                                                                         }, 
util.xhrErrorHandler);
-               }
-           };
-
-           GroupProvider.prototype.editGroupProvider = function ()
-           {
-               addGroupProvider.show(this.controller.management,
-                                     this.modelObj,
-                                     
this.groupProviderUpdater.groupProviderData);
-           }
-
-           function GroupProviderUpdater(groupProviderTab)
-           {
-               this.tabObject = groupProviderTab;
-               var controller = groupProviderTab.controller;
-               var groupProviderObj = groupProviderTab.modelObj;
-               var node = groupProviderTab.contentPane.containerNode;
-               this.controller = controller;
-               this.management = controller.management;
-               this.modelObj = groupProviderObj;
-               this.name = query(".name", node)[0];
-               this.type = query(".type", node)[0];
-               this.state = query(".state", node)[0];
-               this.managedInterfaces = {};
-               this.details = null;
-           }
-
-           GroupProviderUpdater.prototype.updateHeader = function ()
-           {
-               this.name.innerHTML = 
entities.encode(String(this.groupProviderData["name"]));
-               this.type.innerHTML = 
entities.encode(String(this.groupProviderData["type"]));
-               this.state.innerHTML = 
entities.encode(String(this.groupProviderData["state"]));
-           };
-
-           GroupProviderUpdater.prototype.update = function (callback)
-           {
-               var that = this;
-               var management = this.controller.management;
-               management.load(this.modelObj).then(function (data)
-                                                   {
-                                                       that._update(data[0]);
-                                                       if (callback)
-                                                       {
-                                                           callback();
-                                                       }
-                                                   }, function (error)
-                                                   {
-                                                       
util.tabErrorHandler(error, {
-                                                           updater: that,
-                                                           contentPane: 
that.tabObject.contentPane,
-                                                           tabContainer: 
that.tabObject.controller.tabContainer,
-                                                           name: 
that.modelObj.name,
-                                                           category: "Group 
Provider"
-                                                       });
-                                                   });
-           };
-
-           GroupProviderUpdater.prototype._update = function (data)
-           {
-               this.groupProviderData = data;
-               util.flattenStatistics(this.groupProviderData);
-               this.updateHeader();
-
-               if (this.details)
-               {
-                   this.details.update(this.groupProviderData);
-               }
-
-               for (var managedInterface in this.managedInterfaces)
-               {
-                   var managedInterfaceUI = 
this.managedInterfaces[managedInterface];
-                   if (managedInterfaceUI)
-                   {
-                       managedInterfaceUI.update(this.groupProviderData);
-                   }
-               }
-           };
-
-           return GroupProvider;
-       });
+        return GroupProvider;
+    });



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to