Author: kwall
Date: Tue Jul 26 13:21:41 2016
New Revision: 1754124

URL: http://svn.apache.org/viewvc?rev=1754124&view=rev
Log:
QPID-7360: [Java Broker] [Web Management Console] Refactoring - improve tab 
creation code

Modified:
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AccessControlProvider.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Exchange.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/GroupProvider.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
 Tue Jul 26 13:21:41 2016
@@ -109,8 +109,7 @@ define(["dojo/query",
                                 queryCreateDialog.hide();
                                 var tabData = {
                                     tabType: "query",
-                                    parent: e.parentObject,
-                                    configuredObjectId: e.parentObject.id,
+                                    modelObject: e.parentObject,
                                     data: e.preference,
                                     preferenceId: e.preference.id
                                 };

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AccessControlProvider.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AccessControlProvider.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AccessControlProvider.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AccessControlProvider.js
 Tue Jul 26 13:21:41 2016
@@ -47,15 +47,12 @@ define(["dojo/parser",
               template)
     {
 
-        function AccessControlProvider(name, parent, controller)
+        function AccessControlProvider(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.modelObj = {
-                type: "accesscontrolprovider",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         AccessControlProvider.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js
 Tue Jul 26 13:21:41 2016
@@ -53,16 +53,12 @@ define(["dojo/parser",
               template)
     {
 
-        function AuthenticationProvider(name, parent, controller)
+        function AuthenticationProvider(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = management;
-            this.modelObj = {
-                type: "authenticationprovider",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         AuthenticationProvider.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
 Tue Jul 26 13:21:41 2016
@@ -88,15 +88,12 @@ define(["dojo/parser",
                                     "connection.sessionCountLimit",
                                     "connection.heartBeatDelay"];
 
-        function Broker(name, parent, controller)
+        function Broker(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "broker",
-                name: name
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Broker.prototype.getTitle = function ()

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=1754124&r1=1754123&r2=1754124&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
 Tue Jul 26 13:21:41 2016
@@ -43,16 +43,12 @@ define(["dojo/parser",
               template)
     {
 
-        function Connection(name, parent, controller)
+        function Connection(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "connection",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Connection.prototype.getTitle = function ()

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=1754124&r1=1754123&r2=1754124&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
 Tue Jul 26 13:21:41 2016
@@ -49,16 +49,12 @@ define(["dojo/_base/xhr",
               template)
     {
 
-        function Exchange(name, parent, controller)
+        function Exchange(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "exchange",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Exchange.prototype.getExchangeName = function ()

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=1754124&r1=1754123&r2=1754124&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
 Tue Jul 26 13:21:41 2016
@@ -51,16 +51,12 @@ define(["dojo/parser",
               addGroupProvider)
     {
 
-        function GroupProvider(name, parent, controller)
+        function GroupProvider(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "groupprovider",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         GroupProvider.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/KeyStore.js
 Tue Jul 26 13:21:41 2016
@@ -34,21 +34,17 @@ define(["dojo/dom",
     function (dom, parser, query, connect, registry, entities, properties, 
updater, util, formatter, addStore, template)
     {
 
-        function KeyStore(name, parent, controller)
+        function KeyStore(kwArgs)
         {
-            this.keyStoreName = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "keystore",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         KeyStore.prototype.getTitle = function ()
         {
-            return "KeyStore: " + this.keyStoreName;
+            return "KeyStore: " + this.name;
         };
 
         KeyStore.prototype.open = function (contentPane)
@@ -183,7 +179,7 @@ define(["dojo/dom",
 
         KeyStore.prototype.deleteKeyStore = function ()
         {
-            if (confirm("Are you sure you want to delete key store '" + 
this.keyStoreName + "'?"))
+            if (confirm("Are you sure you want to delete key store '" + 
this.name + "'?"))
             {
                 var that = this;
                 this.management.remove(this.modelObj)

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
 Tue Jul 26 13:21:41 2016
@@ -49,20 +49,16 @@ define(["dojo/parser",
               addLogInclusionRule)
     {
 
-        function Logger(name, parent, controller)
+        function Logger(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            var isBrokerParent = parent.type == "broker";
-            this.category = isBrokerParent ? "BrokerLogger" : 
"VirtualHostLogger";
-            this.logInclusionRuleCategory = isBrokerParent ? 
"BrokerLogInclusionRule" : "VirtualHostLogInclusionRule";
-            this.modelObj = {
-                type: this.category.toLowerCase(),
-                name: name,
-                parent: parent
-            };
-            this.userFriendlyName = (isBrokerParent ? "Broker Logger" : 
"Virtual Host Logger");
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
+            var isBrokerLogger = this.modelObj.type == "brokerlogger";
+            this.category = isBrokerLogger ? "BrokerLogger" : 
"VirtualHostLogger";
+            this.logInclusionRuleCategory = isBrokerLogger ? 
"BrokerLogInclusionRule" : "VirtualHostLogInclusionRule";
+            this.userFriendlyName = (isBrokerLogger ? "Broker Logger" : 
"Virtual Host Logger");
         }
 
         Logger.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js
 Tue Jul 26 13:21:41 2016
@@ -31,16 +31,12 @@ define(["dojo/parser",
     function (parser, query, connect, properties, util, registry, event, 
entities, template)
     {
 
-        function Plugin(name, parent, controller)
+        function Plugin(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "plugin",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Plugin.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
 Tue Jul 26 13:21:41 2016
@@ -34,16 +34,12 @@ define(["dojo/dom",
     function (dom, parser, query, connect, registry, entities, properties, 
updater, util, formatter, addPort, template)
     {
 
-        function Port(name, parent, controller)
+        function Port(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "port",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Port.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryBrowserTab.js
 Tue Jul 26 13:21:41 2016
@@ -25,10 +25,10 @@ define(["dojo/parser",
         "dojo/domReady!"],
     function (parser, query, template, QueryBrowserWidget, updater)
     {
-        function QueryBrowserTab(name, parent, controller)
+        function QueryBrowserTab(kwArgs)
         {
-            this.controller = controller;
-            this.management = controller.management;
+            this.controller = kwArgs.controller;
+            this.management = this.controller.management;
         }
 
         QueryBrowserTab.prototype.getTitle = function (changed)
@@ -65,9 +65,7 @@ define(["dojo/parser",
                     var tabData = {
                         tabType: "query",
                         data: event.preference,
-                        name: event.preference.name,
-                        parent: event.parentObject,
-                        configuredObjectId: event.parentObject.id,
+                        modelObject: event.parentObject,
                         preferenceId: event.preference.id
                     };
                     that.controller.showTab(tabData);

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
 Tue Jul 26 13:21:41 2016
@@ -45,11 +45,12 @@ define(["dojo/parser",
             return "";
         }
 
-        function QueryTab(name, parent, controller)
+        function QueryTab(kwArgs)
         {
-            this.controller = controller;
-            this.management = controller.management;
-            this.parent = parent;
+            this.controller = kwArgs.controller;
+            this.tabData = kwArgs.tabData;
+            this.parent = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
         }
 
         QueryTab.prototype.getTitle = function (changed)
@@ -152,8 +153,7 @@ define(["dojo/parser",
                 this.controller.showTab({
                     tabType: "query",
                     data: e.preference,
-                    parent: e.parentObject,
-                    configuredObjectId: e.parentObject.id
+                    modelObject: e.parentObject
                 });
             }));
             this.queryWidget.startup();

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
 Tue Jul 26 13:21:41 2016
@@ -65,16 +65,12 @@ define(["dojo/_base/declare",
               template)
     {
 
-        function Queue(name, parent, controller)
+        function Queue(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "queue",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Queue.prototype.getQueueName = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/TrustStore.js
 Tue Jul 26 13:21:41 2016
@@ -34,21 +34,17 @@ define(["dojo/dom",
     function (dom, parser, query, connect, registry, entities, properties, 
updater, util, formatter, addStore, template)
     {
 
-        function TrustStore(name, parent, controller)
+        function TrustStore(kwArgs)
         {
-            this.keyStoreName = name;
-            this.controller = controller;
-            this.modelObj = {
-                type: "truststore",
-                name: name,
-                parent: parent
-            };
-            this.management = controller.management;
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         TrustStore.prototype.getTitle = function ()
         {
-            return "TrustStore: " + this.keyStoreName;
+            return "TrustStore: " + this.name;
         };
 
         TrustStore.prototype.open = function (contentPane)

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
 Tue Jul 26 13:21:41 2016
@@ -282,7 +282,16 @@ define(["dojo/_base/lang",
                 tabs = [];
                 tabsPreference.value = {"tabs": tabs};
             }
-            tabs.push({tabType: tab.tabType, configuredObjectId: 
tab.configuredObjectId, preferenceId: tab.preferenceId});
+            var storedTab = {tabType: tab.tabType};
+            if (tab.modelObject && tab.modelObject.id)
+            {
+                storedTab.configuredObjectId = tab.modelObject.id;
+            }
+            if (tab.preferenceId)
+            {
+                storedTab.preferenceId = tab.preferenceId;
+            }
+            tabs.push(storedTab);
             this._savePreference(tabsPreference);
         }
     };
@@ -323,13 +332,13 @@ define(["dojo/_base/lang",
         var tabsPreference = this.getPreferenceByName(this.tabsPreferenceName);
         if (tabsPreference && tabsPreference.value && 
tabsPreference.value.tabs)
         {
-            var tabs = tabsPreference.value.tabs;
-            for (var i = 0; i < tabs.length; i++)
+            var savedTabs = tabsPreference.value.tabs;
+            for (var i = 0; i < savedTabs.length; i++)
             {
-                var t = tabs[i];
-                if (t.configuredObjectId === tab.configuredObjectId
-                    && t.tabType === tab.tabType
-                    && (!tab.preferenceId && !t.preferenceId || 
tab.preferenceId === t.preferenceId ))
+                var savedTab = savedTabs[i];
+                if (savedTab.tabType === tab.tabType
+                    && ((!savedTab.configuredObjectId && !tab.modelObject) || 
(savedTab.configuredObjectId && tab.modelObject && savedTab.configuredObjectId 
=== tab.modelObject.id))
+                    && (!tab.preferenceId && !savedTab.preferenceId || 
tab.preferenceId === savedTab.preferenceId ))
                 {
                     index = i;
                     break;

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
 Tue Jul 26 13:21:41 2016
@@ -57,16 +57,12 @@ define(["dojo/parser",
               template)
     {
 
-        function VirtualHost(name, parent, controller)
+        function VirtualHost(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "virtualhost",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         VirtualHost.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHostNode.js
 Tue Jul 26 13:21:41 2016
@@ -51,16 +51,12 @@ define(["dojo/parser",
               template)
     {
 
-        function VirtualHostNode(name, parent, controller)
+        function VirtualHostNode(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = controller.management;
-            this.modelObj = {
-                type: "virtualhostnode",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         VirtualHostNode.prototype.getTitle = function ()

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
 Tue Jul 26 13:21:41 2016
@@ -112,9 +112,9 @@ define(["dojo/dom",
             {
                 return tabData.preferenceId;
             }
-            else if (tabData.configuredObjectId)
+            else if (tabData.modelObject && tabData.modelObject.id)
             {
-                return tabData.configuredObjectId;
+                return tabData.modelObject.id;
             }
             else
             {
@@ -124,14 +124,12 @@ define(["dojo/dom",
 
         controller.showById = function(id)
         {
-            var item = this.structure.findById(id);
-            if (item != null)
+            var modelObject = this.structure.findById(id);
+            if (modelObject != null)
             {
                 this.showTab({
-                    tabType: item.type,
-                    name: item.name,
-                    parent: item.parent,
-                    configuredObjectId: item.id
+                    tabType: modelObject.type,
+                    modelObject: modelObject
                 });
             }
         };
@@ -139,8 +137,6 @@ define(["dojo/dom",
         controller.showTab = function (tabData)
         {
             var tabType = tabData.tabType;
-            var name = tabData.name;
-            var parent = tabData.parent;
 
             var that = this;
             var tabObjectId = generateTabObjId(tabData);
@@ -155,9 +151,10 @@ define(["dojo/dom",
                 var Constructor = constructors[tabType];
                 if (Constructor)
                 {
-                    tabObject = new Constructor(name, parent, this);
-                    tabObject.tabId = tabObjectId;
-                    tabObject.tabData = tabData;
+                    tabObject = new Constructor({
+                        tabData: tabData,
+                        controller: this
+                    });
                     this.viewedObjects[tabObjectId] = tabObject;
 
                     var contentPane = new ContentPane({
@@ -167,7 +164,7 @@ define(["dojo/dom",
                         onClose: function ()
                         {
                             tabObject.close();
-                            delete that.viewedObjects[tabObject.tabId];
+                            delete that.viewedObjects[tabObjectId];
                             return true;
                         }
                     });
@@ -176,7 +173,7 @@ define(["dojo/dom",
                     if (tabType != "broker")
                     {
                         var preferencesCheckBox = new dijit.form.CheckBox({
-                            checked: 
userPreferences.isTabStored(tabObject.tabData),
+                            checked: userPreferences.isTabStored(tabData),
                             title: "If checked the tab will be restored on 
next login"
                         });
                         var tabs = this.tabContainer.tablist.getChildren();
@@ -185,11 +182,11 @@ define(["dojo/dom",
                         {
                             if (value)
                             {
-                                userPreferences.appendTab(tabObject.tabData);
+                                userPreferences.appendTab(tabData);
                             }
                             else
                             {
-                                userPreferences.removeTab(tabObject.tabData);
+                                userPreferences.removeTab(tabData);
                             }
                         });
                     }
@@ -216,36 +213,37 @@ define(["dojo/dom",
                     controller.showById(brokers[0].id);
                 }
 
-                var tabs = management.userPreferences.getSavedTabs();
-                if (tabs)
+                var savedTabs = management.userPreferences.getSavedTabs();
+                if (savedTabs)
                 {
-                    for (var i in tabs)
+                    for (var i in savedTabs)
                     {
-                        var tab = tabs[i];
-                        if (tab.configuredObjectId)
+                        var savedTab = savedTabs[i];
+                        if (savedTab.configuredObjectId)
                         {
-                            var modelObject = 
structure.findById(tab.configuredObjectId);
+                            var modelObject = 
structure.findById(savedTab.configuredObjectId);
                             if (modelObject)
                             {
-                                if 
(management.metadata.isCategory(tab.tabType))
-                                {
-                                    tab.name = modelObject.name;
-                                    tab.parent = modelObject.parent;
-                                }
-                                else
+                                var tabData = {
+                                    tabType: savedTab.tabType,
+                                    modelObject: modelObject
+                                };
+
+                                if (savedTab.preferenceId)
                                 {
-                                    tab.parent = modelObject;
+                                    tabData["preferenceId"] = 
savedTab.preferenceId;
                                 }
-                                controller.showTab(tab);
+
+                                controller.showTab(tabData);
                             }
                             else
                             {
-                                management.userPreferences.removeTab(tab);
+                                management.userPreferences.removeTab(savedTab);
                             }
                         }
                         else
                         {
-                            controller.showTab(tab);
+                            controller.showTab(savedTab);
                         }
                     }
                 }
@@ -280,15 +278,5 @@ define(["dojo/dom",
             }));
         };
 
-        controller.update = function(tabObject, tabData)
-        {
-            var tabId = tabObject.tabId;
-            delete this.viewedObjects[tabId];
-            var newTabId = generateTabObjId(tabData.tabType, tabData.name, 
tabData.parent);
-            this.viewedObjects[newTabId] = tabObject;
-            tabObject.tabData.preferenceId = tabData.preferenceId;
-            tabObject.tabId = newTabId;
-        };
-
         return controller;
     });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js?rev=1754124&r1=1754123&r2=1754124&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/Group.js
 Tue Jul 26 13:21:41 2016
@@ -57,16 +57,12 @@ define(["dojo/parser",
               showGroup)
     {
 
-        function Group(name, parent, controller)
+        function Group(kwArgs)
         {
-            this.name = name;
-            this.controller = controller;
-            this.management = management;
-            this.modelObj = {
-                type: "group",
-                name: name,
-                parent: parent
-            };
+            this.controller = kwArgs.controller;
+            this.modelObj = kwArgs.tabData.modelObject;
+            this.management = this.controller.management;
+            this.name = this.modelObj.name;
         }
 
         Group.prototype.getGroupName = function ()




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

Reply via email to