QPID-5984: [Java Broker] Queue tab improvements

* Revert to two column layout to optimise use of screen space
* Expose flow control, oldest message age and maximum delivery attempt attributes

git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1617160 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
index 025390b..59e49f3 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
@@ -333,7 +333,11 @@
                            "bytesInRateUnits",
                            "msgOutRate",
                            "bytesOutRate",
-                           "bytesOutRateUnits"]);
+                           "bytesOutRateUnits",
+                           "queueFlowResumeSizeBytes",
+                           "queueFlowControlSizeBytes",
+                           "maximumDeliveryAttempts",
+                           "oldestMessageAge"]);
 
 
 
@@ -413,6 +417,13 @@
                {
                    this.messageGroups.style.display = "none";
                }
+
+               this.queueFlowControlSizeBytes.innerHTML = entities.encode(String(this.queueData[ "queueFlowControlSizeBytes" ]));
+               this.queueFlowResumeSizeBytes.innerHTML = entities.encode(String(this.queueData[ "queueFlowResumeSizeBytes" ]));
+
+               this.oldestMessageAge.innerHTML = entities.encode(String(this.queueData[ "oldestMessageAge" ] / 1000));
+               var maximumDeliveryAttempts = this.queueData[ "maximumDeliveryAttempts" ];
+               this.maximumDeliveryAttempts.innerHTML = entities.encode(String( maximumDeliveryAttempts == 0 ? "" : maximumDeliveryAttempts));
            };
 
            QueueUpdater.prototype.update = function()
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
index 52903a8..961f60e 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
@@ -20,22 +20,81 @@
  -->
 <div class="queue">
     <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Queue Attributes',  open: true">
+
         <div class="clear">
             <div class="formLabel-labelCell">Name:</div>
-            <div class="name"></div>
+            <div class="name formValue-valueCell"></div>
         </div>
         <div class="clear">
-            <div class="formLabel-labelCell">State:</div>
-            <div class="state"></div>
+        <div class="alignLeft">
+            <div class="clear">
+                <div class="formLabel-labelCell">Type:</div>
+                <div class="type formValue-valueCell"></div>
+                <div class="typeQualifier formValue-valueCell"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">State:</div>
+                <div class="state formValue-valueCell"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">Durable:</div>
+                <div class="durable formValue-valueCell"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">Lifespan:</div>
+                <div class="lifetimePolicy formValue-valueCell"></div>
+            </div>
+            <div class="clear">
+                <div class="formLabel-labelCell">Persist Messages:</div>
+                <div class="messageDurability formValue-valueCell"></div>
+            </div>
         </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Durable:</div>
-            <div class="durable"></div>
+        <div class="alignRight">
+            <div>
+                <div class="formLabel-labelCell">Inbound:</div>
+                <div class="formValue-valueCell">
+                    <span class="msgInRate"></span>
+                    <span> msg/s</span>
+                    <span class="bytesInRate"></span>
+                    <span class="bytesInRateUnits"></span>
+                </div>
+            </div>
+            <div>
+                <div class="formLabel-labelCell">Outbound:</div>
+                <div class="formValue-valueCell">
+                    <span class="msgOutRate"></span>
+                    <span> msg/s</span>
+                    <span class="bytesOutRate"></span>
+                    <span class="bytesOutRateUnits"></span>
+                </div>
+            </div>
+            <div>
+                <div class="formLabel-labelCell">Size:</div>
+                <div class="formValue-valueCell">
+                    <span class="queueDepthMessages"></span>
+                    <span> msgs</span>
+                    <span class="queueDepthBytes">(</span>
+                    <span class="queueDepthBytesUnits">)</span>
+                </div>
+            </div>
+            <div>
+                <div class="formLabel-labelCell">Pre-fetched:</div>
+                <div class="formValue-valueCell">
+                    <span class="unacknowledgedMessages"></span>
+                    <span> msgs</span>
+                    <span class="unacknowledgedBytes">(</span>
+                    <span class="unacknowledgedBytesUnits">)</span>
+                </div>
+            </div>
+            <div>
+                <div class="formLabel-labelCell">Oldest Message Age:</div>
+                <div class="formValue-valueCell">
+                    <span class="oldestMessageAge"></span>
+                    <span> secs</span>
+                </div>
+            </div>
         </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Persist Messages:</div>
-            <div class="messageDurability"></div>
-        </div>
+        <div class="clear"></div>
         <div class="clear">
             <div class="formLabel-labelCell">Enforced Max. Ttl(ms):</div>
             <div class="maximumMessageTtl"></div>
@@ -53,56 +112,13 @@
             <div class="owner"></div>
         </div>
         <div class="clear">
-            <div class="formLabel-labelCell">Lifespan:</div>
-            <div class="lifetimePolicy"></div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Type:</div>
-            <div>
-                <span class="type"></span>
-                <span class="typeQualifier"></span>
-            </div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Size:</div>
-            <div>
-                <span class="queueDepthMessages"></span>
-                <span> msgs</span>
-                <span class="queueDepthBytes">(</span>
-                <span class="queueDepthBytesUnits">)</span>
-            </div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Pre-fetched:</div>
-            <div>
-                <span class="unacknowledgedMessages"></span>
-                <span> msgs</span>
-                <span class="unacknowledgedBytes">(</span>
-                <span class="unacknowledgedBytesUnits">)</span>
-            </div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Inbound:</div>
-            <div>
-                <span class="msgInRate"></span>
-                <span> msg/s</span>
-                <span class="bytesInRate">(</span>
-                <span class="bytesInRateUnits">)</span>
-            </div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">Outbound:</div>
-            <div>
-                <span class="msgOutRate"></span>
-                <span> msg/s</span>
-                <span class="bytesOutRate">(</span>
-                <span class="bytesOutRateUnits">)</span>
-            </div>
-        </div>
-        <div class="clear">
-            <div class="formLabel-labelCell">AlternateExchange:</div>
+            <div class="formLabel-labelCell">Alternate Exchange:</div>
             <div class="alternateExchange"></div>
         </div>
+        <div class="clear">
+            <div class="formLabel-labelCell">Maximum Delivery Attempts:</div>
+            <div class="maximumDeliveryAttempts"></div>
+        </div>
         <div class="clear messageGroups">
           <div class="clear">
             <div class="messageGroupKeyLabel formLabel-labelCell ">Message Group Key:</div>
@@ -133,6 +149,25 @@
         <button data-dojo-type="dijit.form.Button" class="copyMessagesButton" type="button">Copy Messages</button>
     </div>
     <br/>
+    <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Flow Control Settings', open: false">
+        <div class="clear">
+            <div class="formLabel-labelCell">Capacity:</div>
+            <div>
+                <span class="queueFlowControlSizeBytes"></span>
+                <span>B</span>
+            </div>
+        </div>
+        <div class="clear">
+            <div class="formLabel-labelCell">Resume Capacity:</div>
+            <div>
+                <span class="queueFlowResumeSizeBytes"></span>
+                <span>B</span>
+            </div>
+        </div>
+        <div class="clear"></div>
+    </div>
+
+    <br/>
     <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Alerting Thresholds', open: false">
       <div class="clear">
             <div class="formLabel-labelCell">Queue Depth:</div>