activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jstrac...@apache.org
Subject svn commit: r397209 [5/5] - in /incubator/activemq/trunk/activemq-web-console: ./ .settings/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/activemq/ src/main/java/org/apache/activemq/web/ src/main/j...
Date Wed, 26 Apr 2006 14:45:12 GMT
Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/rico.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/rico.js
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/rico.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js Wed Apr 26 07:45:03 2006
@@ -0,0 +1,185 @@
+addEvent(window, "load", sortables_init);
+
+var SORT_COLUMN_INDEX;
+
+function sortables_init() {
+    // Find all tables with class sortable and make them sortable
+    if (!document.getElementsByTagName) return;
+    tbls = document.getElementsByTagName("table");
+    for (ti=0;ti<tbls.length;ti++) {
+        thisTbl = tbls[ti];
+        if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) {
+            //initTable(thisTbl.id);
+            ts_makeSortable(thisTbl);
+        }
+    }
+}
+
+function ts_makeSortable(table) {
+    if (table.rows && table.rows.length > 0) {
+        var firstRow = table.rows[0];
+    }
+    if (!firstRow) return;
+    
+    // We have a first row: assume it's the header, and make its contents clickable links
+    for (var i=0;i<firstRow.cells.length;i++) {
+        var cell = firstRow.cells[i];
+        var txt = ts_getInnerText(cell);
+        cell.innerHTML = '<a href="#" class="sortheader" '+ 
+        'onclick="ts_resortTable(this, '+i+');return false;">' + 
+        txt+'<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';
+    }
+}
+
+function ts_getInnerText(el) {
+	if (typeof el == "string") return el;
+	if (typeof el == "undefined") { return el };
+	if (el.innerText) return el.innerText;	//Not needed but it is faster
+	var str = "";
+	
+	var cs = el.childNodes;
+	var l = cs.length;
+	for (var i = 0; i < l; i++) {
+		switch (cs[i].nodeType) {
+			case 1: //ELEMENT_NODE
+				str += ts_getInnerText(cs[i]);
+				break;
+			case 3:	//TEXT_NODE
+				str += cs[i].nodeValue;
+				break;
+		}
+	}
+	return str;
+}
+
+function ts_resortTable(lnk,clid) {
+    // get the span
+    var span;
+    for (var ci=0;ci<lnk.childNodes.length;ci++) {
+        if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
+    }
+    var spantext = ts_getInnerText(span);
+    var td = lnk.parentNode;
+    var column = clid || td.cellIndex;
+    var table = getParent(td,'TABLE');
+    
+    // Work out a type for the column
+    if (table.rows.length <= 1) return;
+    var itm = ts_getInnerText(table.rows[1].cells[column]);
+    sortfn = ts_sort_caseinsensitive;
+    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;
+    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;
+    if (itm.match(/^[£$]/)) sortfn = ts_sort_currency;
+    if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric;
+    SORT_COLUMN_INDEX = column;
+    var firstRow = new Array();
+    var newRows = new Array();
+    for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
+    for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; }
+
+    newRows.sort(sortfn);
+
+    if (span.getAttribute("sortdir") == 'down') {
+        ARROW = '&nbsp;&nbsp;&uarr;';
+        newRows.reverse();
+        span.setAttribute('sortdir','up');
+    } else {
+        ARROW = '&nbsp;&nbsp;&darr;';
+        span.setAttribute('sortdir','down');
+    }
+    
+    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
+    // don't do sortbottom rows
+    for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
+    // do sortbottom rows only
+    for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}
+    
+    // Delete any other arrows there may be showing
+    var allspans = document.getElementsByTagName("span");
+    for (var ci=0;ci<allspans.length;ci++) {
+        if (allspans[ci].className == 'sortarrow') {
+            if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
+                allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
+            }
+        }
+    }
+        
+    span.innerHTML = ARROW;
+}
+
+function getParent(el, pTagName) {
+	if (el == null) return null;
+	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
+		return el;
+	else
+		return getParent(el.parentNode, pTagName);
+}
+function ts_sort_date(a,b) {
+    // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
+    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
+    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
+    if (aa.length == 10) {
+        dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
+    } else {
+        yr = aa.substr(6,2);
+        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
+        dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
+    }
+    if (bb.length == 10) {
+        dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
+    } else {
+        yr = bb.substr(6,2);
+        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
+        dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
+    }
+    if (dt1==dt2) return 0;
+    if (dt1<dt2) return -1;
+    return 1;
+}
+
+function ts_sort_currency(a,b) { 
+    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
+    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
+    return parseFloat(aa) - parseFloat(bb);
+}
+
+function ts_sort_numeric(a,b) { 
+    aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));
+    if (isNaN(aa)) aa = 0;
+    bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); 
+    if (isNaN(bb)) bb = 0;
+    return aa-bb;
+}
+
+function ts_sort_caseinsensitive(a,b) {
+    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
+    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
+    if (aa==bb) return 0;
+    if (aa<bb) return -1;
+    return 1;
+}
+
+function ts_sort_default(a,b) {
+    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
+    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
+    if (aa==bb) return 0;
+    if (aa<bb) return -1;
+    return 1;
+}
+
+
+function addEvent(elm, evType, fn, useCapture)
+// addEvent and removeEvent
+// cross-browser event handling for IE5+,  NS6 and Mozilla
+// By Scott Andrew
+{
+  if (elm.addEventListener){
+    elm.addEventListener(evType, fn, useCapture);
+    return true;
+  } else if (elm.attachEvent){
+    var r = elm.attachEvent("on"+evType, fn);
+    return r;
+  } else {
+    alert("Handler could not be removed");
+  }
+} 

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/sorttable.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js Wed Apr 26 07:45:03 2006
@@ -0,0 +1,428 @@
+/**
+ * Written by Neil Crosby. 
+ * http://www.workingwith.me.uk/articles/scripting/standardista_table_sorting
+ *
+ * This module is based on Stuart Langridge's "sorttable" code.  Specifically, 
+ * the determineSortFunction, sortCaseInsensitive, sortDate, sortNumeric, and
+ * sortCurrency functions are heavily based on his code.  This module would not
+ * have been possible without Stuart's earlier outstanding work.
+ *
+ * Use this wherever you want, but please keep this comment at the top of this file.
+ *
+ * Copyright (c) 2006 Neil Crosby
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy 
+ * of this software and associated documentation files (the "Software"), to deal 
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
+ * copies of the Software, and to permit persons to whom the Software is 
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in 
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+ * SOFTWARE.
+ **/
+var standardistaTableSorting = {
+
+	that: false,
+	isOdd: false,
+
+	sortColumnIndex : -1,
+	lastAssignedId : 0,
+	newRows: -1,
+	lastSortedTable: -1,
+
+	/**
+	 * Initialises the Standardista Table Sorting module
+	 **/
+	init : function() {
+		// first, check whether this web browser is capable of running this script
+		if (!document.getElementsByTagName) {
+			return;
+		}
+		
+		this.that = this;
+		
+		this.run();
+		
+	},
+	
+	/**
+	 * Runs over each table in the document, making it sortable if it has a class
+	 * assigned named "sortable" and an id assigned.
+	 **/
+	run : function() {
+		var tables = document.getElementsByTagName("table");
+		
+		for (var i=0; i < tables.length; i++) {
+			var thisTable = tables[i];
+			
+			if (css.elementHasClass(thisTable, 'sortable')) {
+				this.makeSortable(thisTable);
+			}
+		}
+	},
+	
+	/**
+	 * Makes the given table sortable.
+	 **/
+	makeSortable : function(table) {
+	
+		// first, check if the table has an id.  if it doesn't, give it one
+		if (!table.id) {
+			table.id = 'sortableTable'+this.lastAssignedId++;
+		}
+		
+		// if this table does not have a thead, we don't want to know about it
+		if (!table.tHead || !table.tHead.rows || 0 == table.tHead.rows.length) {
+			return;
+		}
+		
+		// we'll assume that the last row of headings in the thead is the row that 
+		// wants to become clickable
+		var row = table.tHead.rows[table.tHead.rows.length - 1];
+		
+		for (var i=0; i < row.cells.length; i++) {
+		
+			// create a link with an onClick event which will 
+			// control the sorting of the table
+			var linkEl = createElement('a');
+			linkEl.href = '#';
+			linkEl.onclick = this.headingClicked;
+			linkEl.setAttribute('columnId', i);
+			linkEl.title = 'Click to sort';
+			
+			// move the current contents of the cell that we're 
+			// hyperlinking into the hyperlink
+			var innerEls = row.cells[i].childNodes;
+			for (var j = 0; j < innerEls.length; j++) {
+				linkEl.appendChild(innerEls[j]);
+			}
+			
+			// and finally add the new link back into the cell
+			row.cells[i].appendChild(linkEl);
+
+			var spanEl = createElement('span');
+			spanEl.className = 'tableSortArrow';
+			spanEl.appendChild(document.createTextNode('\u00A0\u00A0'));
+			row.cells[i].appendChild(spanEl);
+
+		}
+	
+		if (css.elementHasClass(table, 'autostripe')) {
+			this.isOdd = false;
+			var rows = table.tBodies[0].rows;
+		
+			// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
+			for (var i=0;i<rows.length;i++) { 
+				this.doStripe(rows[i]);
+			}
+		}
+	},
+	
+	headingClicked: function(e) {
+		
+		var that = standardistaTableSorting.that;
+		
+		// linkEl is the hyperlink that was clicked on which caused
+		// this method to be called
+		var linkEl = getEventTarget(e);
+		
+		// directly outside it is a td, tr, thead and table
+		var td     = linkEl.parentNode;
+		var tr     = td.parentNode;
+		var thead  = tr.parentNode;
+		var table  = thead.parentNode;
+		
+		// if the table we're looking at doesn't have any rows
+		// (or only has one) then there's no point trying to sort it
+		if (!table.tBodies || table.tBodies[0].rows.length <= 1) {
+			return false;
+		}
+
+		// the column we want is indicated by td.cellIndex
+		var column = linkEl.getAttribute('columnId') || td.cellIndex;
+		//var column = td.cellIndex;
+		
+		// find out what the current sort order of this column is
+		var arrows = css.getElementsByClass(td, 'tableSortArrow', 'span');
+		var previousSortOrder = '';
+		if (arrows.length > 0) {
+			previousSortOrder = arrows[0].getAttribute('sortOrder');
+		}
+		
+		// work out how we want to sort this column using the data in the first cell
+		// but just getting the first cell is no good if it contains no data
+		// so if the first cell just contains white space then we need to track
+		// down until we find a cell which does contain some actual data
+		var itm = ''
+		var rowNum = 0;
+		while ('' == itm && rowNum < table.tBodies[0].rows.length) {
+			itm = that.getInnerText(table.tBodies[0].rows[rowNum].cells[column]);
+			rowNum++;
+		}
+		var sortfn = that.determineSortFunction(itm);
+
+		// if the last column that was sorted was this one, then all we need to 
+		// do is reverse the sorting on this column
+		if (table.id == that.lastSortedTable && column == that.sortColumnIndex) {
+			newRows = that.newRows;
+			newRows.reverse();
+		// otherwise, we have to do the full sort
+		} else {
+			that.sortColumnIndex = column;
+			var newRows = new Array();
+
+			for (var j = 0; j < table.tBodies[0].rows.length; j++) { 
+				newRows[j] = table.tBodies[0].rows[j]; 
+			}
+
+			newRows.sort(sortfn);
+		}
+
+		that.moveRows(table, newRows);
+		that.newRows = newRows;
+		that.lastSortedTable = table.id;
+		
+		// now, give the user some feedback about which way the column is sorted
+		
+		// first, get rid of any arrows in any heading cells
+		var arrows = css.getElementsByClass(tr, 'tableSortArrow', 'span');
+		for (var j = 0; j < arrows.length; j++) {
+			var arrowParent = arrows[j].parentNode;
+			arrowParent.removeChild(arrows[j]);
+
+			if (arrowParent != td) {
+				spanEl = createElement('span');
+				spanEl.className = 'tableSortArrow';
+				spanEl.appendChild(document.createTextNode('\u00A0\u00A0'));
+				arrowParent.appendChild(spanEl);
+			}
+		}
+		
+		// now, add back in some feedback 
+		var spanEl = createElement('span');
+		spanEl.className = 'tableSortArrow';
+		if (null == previousSortOrder || '' == previousSortOrder || 'DESC' == previousSortOrder) {
+			spanEl.appendChild(document.createTextNode(' \u2191'));
+			spanEl.setAttribute('sortOrder', 'ASC');
+		} else {
+			spanEl.appendChild(document.createTextNode(' \u2193'));
+			spanEl.setAttribute('sortOrder', 'DESC');
+		}
+		
+		td.appendChild(spanEl);
+		
+		return false;
+	},
+
+	getInnerText : function(el) {
+		
+		if ('string' == typeof el || 'undefined' == typeof el) {
+			return el;
+		}
+		
+		if (el.innerText) {
+			return el.innerText;  // Not needed but it is faster
+		}
+
+		var str = el.getAttribute('standardistaTableSortingInnerText');
+		if (null != str && '' != str) {
+			return str;
+		}
+		str = '';
+
+		var cs = el.childNodes;
+		var l = cs.length;
+		for (var i = 0; i < l; i++) {
+			// 'if' is considerably quicker than a 'switch' statement, 
+			// in Internet Explorer which translates up to a good time 
+			// reduction since this is a very often called recursive function
+			if (1 == cs[i].nodeType) { // ELEMENT NODE
+				str += this.getInnerText(cs[i]);
+				break;
+			} else if (3 == cs[i].nodeType) { //TEXT_NODE
+				str += cs[i].nodeValue;
+				break;
+			}
+		}
+		
+		// set the innertext for this element directly on the element
+		// so that it can be retrieved early next time the innertext
+		// is requested
+		el.setAttribute('standardistaTableSortingInnerText', str);
+		
+		return str;
+	},
+
+	determineSortFunction : function(itm) {
+		
+		var sortfn = this.sortCaseInsensitive;
+		
+		if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) {
+			sortfn = this.sortDate;
+		}
+		if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) {
+			sortfn = this.sortDate;
+		}
+		if (itm.match(/^[£$]/)) {
+			sortfn = this.sortCurrency;
+		}
+		if (itm.match(/^\d?\.?\d+$/)) {
+			sortfn = this.sortNumeric;
+		}
+		if (itm.match(/^[+-]?\d*\.?\d+([eE]-?\d+)?$/)) {
+			sortfn = this.sortNumeric;
+		}
+    		if (itm.match(/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/)) {
+        		sortfn = this.sortIP;
+   		}
+
+		return sortfn;
+	},
+	
+	sortCaseInsensitive : function(a, b) {
+		var that = standardistaTableSorting.that;
+		
+		var aa = that.getInnerText(a.cells[that.sortColumnIndex]).toLowerCase();
+		var bb = that.getInnerText(b.cells[that.sortColumnIndex]).toLowerCase();
+		if (aa==bb) {
+			return 0;
+		} else if (aa<bb) {
+			return -1;
+		} else {
+			return 1;
+		}
+	},
+	
+	sortDate : function(a,b) {
+		var that = standardistaTableSorting.that;
+
+		// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
+		var aa = that.getInnerText(a.cells[that.sortColumnIndex]);
+		var bb = that.getInnerText(b.cells[that.sortColumnIndex]);
+		
+		var dt1, dt2, yr = -1;
+		
+		if (aa.length == 10) {
+			dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
+		} else {
+			yr = aa.substr(6,2);
+			if (parseInt(yr) < 50) { 
+				yr = '20'+yr; 
+			} else { 
+				yr = '19'+yr; 
+			}
+			dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
+		}
+		
+		if (bb.length == 10) {
+			dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
+		} else {
+			yr = bb.substr(6,2);
+			if (parseInt(yr) < 50) { 
+				yr = '20'+yr; 
+			} else { 
+				yr = '19'+yr; 
+			}
+			dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
+		}
+		
+		if (dt1==dt2) {
+			return 0;
+		} else if (dt1<dt2) {
+			return -1;
+		}
+		return 1;
+	},
+
+	sortCurrency : function(a,b) { 
+		var that = standardistaTableSorting.that;
+
+		var aa = that.getInnerText(a.cells[that.sortColumnIndex]).replace(/[^0-9.]/g,'');
+		var bb = that.getInnerText(b.cells[that.sortColumnIndex]).replace(/[^0-9.]/g,'');
+		return parseFloat(aa) - parseFloat(bb);
+	},
+
+	sortNumeric : function(a,b) { 
+		var that = standardistaTableSorting.that;
+
+		var aa = parseFloat(that.getInnerText(a.cells[that.sortColumnIndex]));
+		if (isNaN(aa)) { 
+			aa = 0;
+		}
+		var bb = parseFloat(that.getInnerText(b.cells[that.sortColumnIndex])); 
+		if (isNaN(bb)) { 
+			bb = 0;
+		}
+		return aa-bb;
+	},
+
+	makeStandardIPAddress : function(val) {
+		var vals = val.split('.');
+
+		for (x in vals) {
+			val = vals[x];
+
+			while (3 > val.length) {
+				val = '0'+val;
+			}
+			vals[x] = val;
+		}
+
+		val = vals.join('.');
+
+		return val;
+	},
+
+	sortIP : function(a,b) { 
+		var that = standardistaTableSorting.that;
+
+		var aa = that.makeStandardIPAddress(that.getInnerText(a.cells[that.sortColumnIndex]).toLowerCase());
+		var bb = that.makeStandardIPAddress(that.getInnerText(b.cells[that.sortColumnIndex]).toLowerCase());
+		if (aa==bb) {
+			return 0;
+		} else if (aa<bb) {
+			return -1;
+		} else {
+			return 1;
+		}
+	},
+
+	moveRows : function(table, newRows) {
+		this.isOdd = false;
+
+		// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
+		for (var i=0;i<newRows.length;i++) { 
+			var rowItem = newRows[i];
+
+			this.doStripe(rowItem);
+
+			table.tBodies[0].appendChild(rowItem); 
+		}
+	},
+	
+	doStripe : function(rowItem) {
+		if (this.isOdd) {
+			css.addClassToElement(rowItem, 'odd');
+		} else {
+			css.removeClassFromElement(rowItem, 'odd');
+		}
+		
+		this.isOdd = !this.isOdd;
+	}
+
+}
+
+function standardistaTableSortingInit() {
+	standardistaTableSorting.init();
+}
+
+addEvent(window, 'load', standardistaTableSortingInit)
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/js/standardista-table-sorting.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,59 @@
+<html>
+<head>
+<title>Message ${requestContext.messageBrowser.id}</title>
+</head>
+<body>
+
+<table id="message" class="sortable autostripe">
+<thead>
+<tr>
+<th>
+    Message Details
+</th>
+</tr>
+</thead>
+
+<tbody>
+<tr>
+<td class="label">Message ID</td>
+<td>${row.JMSMessageID</td>
+</tr>
+<tr>
+<td class="label">Destination</td>
+<td>${row.JMSDestination}</td>
+</tr>
+<tr>
+<td class="label">Correlation ID</td>
+<td>${row.JMSCorrelationID}</td>
+</tr>
+<tr>
+<td class="label">Persistence</td>
+<td><jms:persistent message="${row}"/></td>
+</tr>
+<tr>
+<td class="label">Priority</td>
+<td>${row.JMSPriority}</td>
+</tr>
+<tr>
+<td class="label">Redelivered</td>
+<td>${row.JMSRedelivered}</td>
+</tr>
+<tr>
+<td class="label">Reply To</td>
+<td>${row.JMSReplyTo}</td>
+</tr>
+<tr>
+<td class="label">Timestamp</td>
+<td>${row.JMSTimestamp}</td>
+</tr>
+<tr>
+<td class="label">Type</td>
+<td>${row.JMSType}</td>
+</tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,61 @@
+<html>
+<head>
+<title>Queues</title>
+</head>
+<body>
+
+<div>
+<form action="createDestination.action" method="get">
+    <input type="hidden" name="JMSDestinationType" value="queue"/>
+
+    <label name="destination">Queue Name</label>
+    <input type="text" name="JMSDestination" value=""/>
+
+    <input type="submit" value="Create"/>
+</form>
+</div>
+
+<h2>Queues</h2>
+
+<table id="queues" class="sortable autostripe">
+<thead>
+<tr>
+<th>Name</th>
+<th>Number Of Pending Messages</th>
+<th>Number Of Consumers</th>
+<th>Messages Sent</th>
+<th>Messages Received</th>
+<th>Views</th>
+<th>Operations</th>
+</tr>
+</thead>
+<tbody>
+<c:forEach items="${requestContext.brokerQuery.queues}" var="row">
+<tr>
+<td><a href="browse.jsp?JMSDestination=${row.name}">${row.name}</a></td>
+<td>${row.queueSize}</td>
+<td>${row.consumerCount}</td>
+<td>${row.enqueueCount}</td>
+<td>${row.dequeueCount}</td>
+<td>
+    <a href="browse.jsp?JMSDestination=${row.name}">Browse</a>
+<%--    
+    <a href="graph.jsp?JMSDestination=${row.name}">Graph</a>
+--%>    
+    <a href="queueBrowse/${row.name}?view=rss&feedType=atom_1.0" title="Atom 1.0"><img src="images/atombadge.png"/></a>
+    <a href="queueBrowse/${row.name}?view=rss&ffeedType=rss_2.0" title="RSS 2.0"><img src="images/rssbadge.gif"/></a>
+</td>
+<td>
+    <a href="send.jsp?JMSDestination=${row.name}&JMSDestinationType=queue">Send To</a>
+    <a href="purgeDestination.action?JMSDestination=${row.name}&JMSDestinationType=queue">Purge</a>
+    <a href="deleteDestination.action?JMSDestination=${row.name}&JMSDestinationType=queue">Delete</a>
+</td>
+</tr>
+</c:forEach>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/queues.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,128 @@
+<html>
+<head>
+<title>Send Messages</title>
+</head>
+<body>
+
+<h1>Send a JMS Message</h1>
+
+<form action="sendMessage.action" method="post">
+
+<table id="headers" class="autostripe">
+<thead>
+<tr>
+<th colspan="4">Message Header</th>
+</tr>
+</thead>
+
+<tbody>
+<tr>
+	<td class="label">
+	    <label for="JMSDestination">Destination</label>
+	</td>
+	<td>
+	    <form:text name="JMSDestination"/>
+	</td>
+	<td class="label">
+	    <label for="queue">Queue or Topic</label>
+	</td>
+	<td>
+	    <select name="JMSDestinationType">
+	      <form:option name="JMSDestinationType" value="queue" label="Queue"/>
+	      <form:option name="JMSDestinationType" value="topic" label="Topic"/>
+	   </select>
+	</td>
+</tr>
+<tr>
+	<td class="label">
+	    <label for="JMSCorrelationID">Correlation ID</label>
+	</td>
+	<td>
+	    <form:text name="JMSCorrelationID"/>
+	</td>
+	<td class="label">
+	    <label for="JMSPersistent">Persistent Delivery</label>
+	</td>
+	<td>
+	    <form:checkbox name="JMSPersistent"/>
+	</td>
+</tr>
+<tr>
+	<td class="label">
+	    <label for="JMSReplyTo">Reply To</label>
+	</td>
+	<td>
+	    <form:text name="JMSReplyTo"/>
+	</td>
+	<td class="label">
+	    <label for="JMSPriority">Priority</label>
+	</td>
+	<td>
+	    <form:text name="JMSPriority"/>
+	</td>
+</tr>
+<tr>
+	<td class="label">
+	    <label for="JMSType">Type</label>
+	</td>
+	<td>
+	    <form:text name="JMSType"/>
+	</td>
+	<td class="label">
+	    <label for="JMSTimeToLive">Time to live</label>
+	</td>
+	<td>
+	    <form:text name="JMSTimeToLive"/>
+	</td>
+</tr>
+<tr>
+	<td class="label">
+	    <label for="JMSXGroupID">Message Group</label>
+	</td>
+	<td>
+	    <form:text name="JMSXGroupID"/>
+	</td>
+	<td class="label">
+	    <label for="JMSXGroupSeq">Message Group Sequence Number</label>
+	</td>
+	<td>
+	    <form:text name="JMSXGroupSeq"/>
+	</td>
+</tr>
+<tr>
+	<td class="label">
+	    <label for="JMSMessageCount">Number of messages to send</label>
+	</td>
+	<td>
+	    <form:text name="JMSMessageCount" defaultValue="1"/>
+	</td>
+	<td class="label">
+	    <label for="JMSMessageCountHeader">Header to store the counter</label>
+	</td>
+	<td>
+	    <form:text name="JMSMessageCountHeader" defaultValue="JMSXMessageCounter"/>
+	</td>
+</tr>
+<tr>
+	<th colspan="4" class="label">
+	    <label for="text">Message body</label>
+	</th>
+</tr>
+<tr>
+	<td colspan="4">
+	    <textarea name="JMSText" rows="30" cols="80">Enter some text here for the message body...</textarea>
+	</td>
+</tr>
+<tr>
+	<td colspan="4" align="center">
+	    <input type="submit" value="Send"/>
+	    <input type="reset"/>
+	</td>
+</tr>
+</tbody>
+</table>
+
+</form>
+
+</body>
+</html>

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/send.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,233 @@
+/**************** body and tag styles ****************/
+body {
+   margin-top: 0px;
+   margin-bottom: 30px;
+}
+
+div#page {
+   width: 750px;
+   margin: 0 auto;
+   font-family: Verdana, Arial, Helvetica, sans-serif;
+   font-size: 11px;
+   line-height: 1.6em;
+   color: #666666;
+   background-color: #FFFFFF;
+   padding-bottom: 10px;
+   border-bottom: 2px solid #2763A5;
+}
+
+div#content {
+   width: 100%;
+   margin: 0 auto;
+   font-family: Verdana, Arial, Helvetica, sans-serif;
+   font-size: 11px;
+   color: #666666;
+   background-color: #FFFFFF;
+   padding-top: 10px;
+}
+
+div#header h1 {
+   font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
+   font-weight: normal;
+   font-size: 32px;
+   color: #003366;
+   margin-bottom: 16px;
+   background-color: #FFFFFF;
+}
+
+div#header p {
+   margin-bottom: 20px;
+}
+
+div#main h1, div#main h2 {
+   color: #666666;
+   font-size: 16px;
+   font-family: Arial, Helvetica, sans-serif;
+   background-color: #FFFFFF;
+   font-weight: bold;
+}
+
+div#main h3 {
+   font-size: 14px;
+}
+
+a, a:visited {
+   color: #003366;
+   /*background-color: #FFFFFF; */
+   text-decoration: none;
+   font-weight: bold;
+}
+
+a:hover {
+   /*background-color: #FFFFFF; */
+   color: inherit;
+   font-weight: bold;
+   text-decoration: underline;
+}
+
+/**************** images styles ****************/
+a img{
+   border: none;
+}
+
+img.left,img.center,img.right {
+   padding: 4px;
+   border: 1px solid #a0a0a0;
+}
+
+img.left {
+   float: left;
+   margin: 0 12px 5px 0;
+}
+
+img.center {
+   display: block;
+   margin: 0 auto 5px auto;
+}
+
+img.right {
+   float: right;
+   margin: 0 0 5px 12px;
+}
+
+/**************** form styles ****************/
+.button, button {
+   padding: 2px;
+   background-color: #003366;
+   color: #FFFFFF;
+   border: 1px solid #2763A5;
+   font-size: 11px;
+}
+
+div#main form p {
+    border-bottom: 0px;
+    padding-bottom: 0px;
+}
+
+/**************** header styles ****************/
+div#header {
+   width: 750px;
+   border: 0px;
+   padding-bottom: 18px;
+   padding-top: 16px;
+}
+
+div#header div#branding {
+   display: none;
+}
+
+div#header p {
+   margin-top: -20px;
+   margin-left: 30px;
+   color: #999999;
+}
+
+/**************** menu styles ****************/
+div#nav {
+   float: left;
+   width: 750px;
+   font-size: 93%;
+   padding-bottom: 1px;
+   border-bottom: 4px solid #2763A5;
+   line-height: normal;
+}
+
+div#nav ul {
+   margin: 0;
+   padding: 0px 10px 0 48px;
+   list-style: none;
+}
+
+div#nav li {
+   display: inline;
+   margin: 0;
+   padding: 0;
+}
+
+div#nav a {
+   float: left;
+   background: url(../images/tableft10.gif) no-repeat left top;
+   margin: 0;
+   padding: 0 0 0 4px;
+   text-decoration: none;
+}
+
+div#nav a span {
+   float: left;
+   display: block;
+   background: url(../images/tabright10.gif) no-repeat right top;
+   padding: 3px 15px 3px 6px;
+   color: #FFF;
+}
+
+/**************** content styles ****************/
+div#main {
+   width: 520px;
+   padding-left: 10px;
+   padding-right: 10px;
+   padding-top: 10px;
+   float: left;
+}
+
+div#main p {
+   line-height: 1.6em;
+   padding-bottom: 10px;
+   border-bottom: 1px solid #DDDDDD;
+}
+
+/**************** sidebar styles ****************/
+div#sub {
+   width: 175px;
+   padding-left: 10px;
+   padding-right: 0px;
+   padding-top: 10px;
+   float: right;
+}
+
+div#sub h3 {
+   font-family: Arial, Helvetica, sans-serif;
+   font-size: 16px;
+   color: #666666;
+   padding-bottom: 5px;
+}
+
+div#sub p {
+   line-height: 1.5em;
+   padding-bottom: 10px;
+   border-bottom: 1px solid #DDDDDD;
+}
+
+/**************** footer styles ****************/
+div#footer {
+   margin-top: 15px;
+   padding-top: 0px;
+   padding-bottom: 0px;
+   padding-left: 2px;
+   padding-right: 5px;
+   clear: both;
+   width: 742px;
+   background-color: #2763A5;
+}
+
+div#footer p {
+   color: #FFFFFF;
+   padding: 5px;
+   text-align: center;
+}
+
+div#footer p a {
+   color: #FFFFFF;
+   font-weight: 100;
+   border-bottom: 1px dotted #FFFFFF;
+}
+
+div#footer p {
+   background-color: #2763A5;
+}
+
+div#footer p a:hover {
+   color: #FFFFFF;
+   text-decoration: none;
+   border-top: 1px dotted #FFFFFF;
+   border-bottom: 0px dotted #FFFFFF;
+}

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/deliciouslyblue.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,337 @@
+/* A CSS Framework by Mike Stenhouse of Content with Style */
+
+/* FORM ELEMENTS */
+/* From http://www.wufoo.com/css/global/dynamic.css */
+
+/* ----- CLASSIC WUFOO FORM ----- */
+form ul{
+    position: relative;
+    list-style: none;
+    width: 100%;
+}
+
+form li{
+    line-height: 2em;
+    margin: 0;
+    padding: 1px 1px 6px 9px;
+}
+
+form li.focused{
+    background-color: #fff7c0 !important;
+}
+ 
+form li p{
+    font-size: 9px;
+    line-height: 13px;
+    color: #444;
+}
+
+form li{
+    display: inline-block;
+}
+
+form[id] li{
+    display: block;
+}
+
+form li div{
+    display: inline-block;
+}
+
+form[id] li div{
+    display: inline;
+}
+
+form .left{
+    float: left !important;
+    margin: 0;
+}
+
+form .right{
+    float: right !important;
+    margin: 0;
+}
+
+form .clear{
+    clear: both;
+}
+
+form li div p{
+    margin: 0 0 5px 0;
+}
+
+form div.left{
+    margin-right: 2px !important;
+}
+
+form div.left[class]{
+    margin-right: 4px !important;
+}
+
+form div.left img{
+    margin: 0 0 -2px 0;
+}
+
+/* ----- INFO ----- */
+form h2{
+    font-size: 1.8em;
+    clear: left;
+}
+
+form .info{
+    display: inline-block;
+    margin: 0 0 10px 0;
+    padding: 0 0 4px 0;
+    border-bottom: 1px dotted #ccc !important;
+}
+
+form .info[class]{
+    display: block;
+}
+
+form .info p{
+    font-size: 1em;
+    line-height: 1.3em;
+    margin: 0 0 8px 0;
+}
+
+/* ----- SECTIONS ----- */
+form .section{
+    display: inline-block;
+    border-top: 1px dotted #ccc !important;
+    margin-top: 15px !important;
+    padding-top: 12px !important;
+    padding-bottom: 0px !important;
+}
+
+form .section[class]{
+    display: block;
+}
+
+form .first{
+    border-top: none !important;
+    margin-top: 0px !important;
+    padding-top: 1px !important;
+}
+
+form .section h3{
+    font-size: 1.25em;
+}
+
+form .section p{
+    font-size: 11px;
+    line-height: 13px;
+}
+
+/* ----- FIELDS AND LABELS ----- */
+label.desc{
+    margin: 4px 0 3px 0;
+    border: 0;
+    color: #444;
+    font-size: 1em;
+    line-height: 1.3em;
+    display: block;
+    font-weight: bold;
+}
+
+input.text, input.number, input.url, input.email, input.password, input.file, 
+textarea.textarea, select.select{
+    font-size: 1.2em;
+    border-top: 1px solid #7c7c7c;
+    border-left: 1px solid #c3c3c3;
+    border-right: 1px solid #c3c3c3;
+    border-bottom: 1px solid #ddd;
+    background: #fff url(../images/fieldbg.gif) repeat-x top;
+    color: #333;
+}
+
+input.text, input.number, input.url, input.email, input.password, input.file{
+    padding: 2px;
+}
+
+input.currency{
+    text-align: right;
+}
+
+input.checkbox, input.radio{
+    display: block;
+    line-height: 1.4em;
+    margin: 8px 0 0 3px;
+    width: 13px;
+    height: 13px;
+}
+
+input.focus, textarea.focus {
+    background: #ffd;
+    color: #000;
+}
+
+label.choice{
+    display: block;
+    line-height: 1.4em;
+    margin: -19px 0 0 25px;
+    padding: 4px 0 5px 0;
+    color: #444;
+    width: 80%;
+}
+
+textarea.textarea{
+    font-size: 1.1em;
+    font-family: Tahoma,"Lucida Grande", "Trebuchet MS", Verdana, sans-serif;
+    margin-bottom: 1px;
+}
+
+textarea.textarea[class]{
+    font-family: "Lucida Grande", Tahoma, "Trebuchet MS", Verdana, sans-serif;
+}
+
+select.select{
+    padding: 1px 0 0 0;
+    margin: 1px 0 3px 0;
+}
+
+select.select[class]{
+    margin: 0;
+    padding: 1px 0 1px 0;
+}
+
+/* ----- SIZES ----- */
+form .small{
+    width: 70px;
+}
+
+form .medium{
+    width: 170px;
+}
+
+form .large, form textarea.textarea{
+    width: 340px;
+}
+
+form .tags{
+    width: 320px;
+}
+
+form textarea.small{
+    height: 5.5em;
+}
+
+form textarea.medium{
+    height: 10em;
+}
+
+form textarea.large{
+    height: 20em;
+}
+
+/* ----- ERRORS ----- */
+form li.error{
+    background-color: #FFDFDF;
+    margin: 3px 0 !important;
+}
+
+input.error, textarea.error{
+    border: 1px solid #EF5959;
+    border-left: 1px solid #FF8F8F;
+    border-top: 1px solid #FF8F8F;
+    background: #fff;
+}
+
+p.error, li.error label.desc{
+    color: red !important;
+}
+
+p.error{
+    font-size: 9px !important;
+    margin: 1px 0;
+}
+
+/* ----- REQUIRED ----- */
+.req {
+    font-size: 1em !important;
+    color: red;
+    font-weight: bold;
+}
+
+/* ----- Fieldsets ----- */
+fieldset{
+    margin: 0 0 5px 0;
+    padding: 0 10px 10px 10px;
+    border: 1px solid #FFD8CF;
+    color: #444;
+}
+
+fieldset.choices{
+    padding: 10px 5px 10px 10px;
+}
+
+fieldset.fieldset{
+    padding: 0px 0 10px 0;
+}
+
+legend{
+    font-weight: bold;
+    margin: 0 0 0 -10px;
+}
+
+#formProperties[id] legend, .choices[class] legend{
+    margin: 0 0 0 -5px;
+}
+
+.fieldset legend{
+    margin: 0;
+}
+
+.fieldset[class] legend{
+    margin: 0 0 0 5px;
+}
+
+#formProperties fieldset div{
+    margin-bottom: 7px;
+}
+
+fieldset div .number{
+    margin: 7px 15px 0 0;
+}
+
+fieldset p{
+    margin: 10px;
+}
+
+/* ----- Choices ----- */
+.choices input{
+    width: 200px;
+    margin-right: 3px;
+}
+
+.choices ol{
+    margin: 10px 0 0 0;
+}
+
+.choices[class] ol{
+    margin: 0 !important;
+}
+
+.choices img{
+    margin: 0 0 1px 0;
+}
+
+fieldset ol li{
+    display: list-item !important;
+    margin: 0 5px 2px 3px !important;
+    padding: 0 !important;
+    list-style: inside decimal;
+}
+
+/* ----- Buttons ----- */
+input.button, button {
+    width: 6em;
+    padding: 2px 2px 0 0; /* fix for IE */
+}
+
+/* revert to normal for Firefox */
+li>input.button, li>button, input.button>input.button, button>button {
+    padding: 2px;
+}
+/* END FORM ELEMENTS */
+		
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/forms.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,34 @@
+/* A CSS Framework by Mike Stenhouse of Content with Style */
+ 
+/* NAV BAR AT THE TOP AND TWO COLUMNS OF CONTENT */
+    div#content {
+        position: relative;
+        width: 701px;
+        
+        margin: 0 auto 20px auto;
+        padding: 0;
+        
+        text-align: left;
+    }
+    div#main {
+        float: left;
+        width: 480px;
+        display: inline;
+    }
+    div#sub {
+        float: right;
+        width: 200px;
+        display: inline;
+    }
+    div#local {
+        display: none;
+    }
+    div#nav {
+        position: absolute;
+        top: -15px;
+        left: 0;
+        width: 100%;
+        
+        text-align: left;
+    }
+/* END CONTENT */
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout-navtop-subright.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,119 @@
+/* A CSS Framework by Mike Stenhouse of Content with Style */
+
+/* SITE SPECIFIC LAYOUT */
+    body {
+        margin: 0;
+        padding: 0;
+        
+        background: white;
+              
+        text-align: center;
+    }
+    div#page {
+        width: 780px;
+        
+        margin:  0 auto;
+        padding: 0;
+        
+        background: white;
+        text-align: center;
+    }
+    
+    /* HEADER */
+        div#header {
+            text-align: left;
+        }
+        div#branding {
+            float: left;
+            width: 40%;
+            
+            margin: 0;
+            padding: 10px 0 10px 20px;
+            
+            text-align: left;
+        }
+        div#search {
+            float: right;
+            width: 49%;
+            
+            margin: 0;
+            padding: 16px 20px 0 0;
+            
+            text-align: right;
+        }
+    /* END HEADER */
+    
+    
+    /* CONTENT */
+        div#content {
+            
+        }
+        
+        /* MAIN */
+            div#main {
+                
+            }
+        /* END MAIN */
+        
+        /* SUB */
+            div#sub {
+                
+            }
+        /* END SUB */
+        
+    /* END CONTENT */
+    
+    
+    /* FOOTER */
+        div#footer {
+            color: white;
+            background-color: black;
+        }
+        div#footer p {
+            font-size: 0.8em;
+            
+            margin: 0;
+            padding: 15px;
+        }
+    /* END FOOTER */
+/* END LAYOUT */
+
+
+
+
+/* UL.SUBNAV */
+    ul.subnav {
+        margin: 0;
+        padding: 0;
+        
+        font-size: 0.8em;
+        list-style: none;
+    }
+    ul.subnav li {
+        margin: 0 0 1em 0;
+        padding: 0;
+        list-style: none;
+    }
+    ul.subnav li a,
+    ul.subnav li a:link,
+    ul.subnav li a:visited,
+    ul.subnav li a:active {
+        text-decoration: none;
+        font-weight: bold;
+        color: black;
+    }
+    ul.subnav li a:hover {
+        text-decoration: underline;
+    }
+    ul.subnav li strong {
+        padding: 0 0 0 12px;
+        /*background: url(../i/subnav-highlight.gif) left top no-repeat transparent;*/
+    }
+    ul.subnav li strong a,
+    ul.subnav li strong a:link,
+    ul.subnav li strong a:visited,
+    ul.subnav li strong a:active {
+        color: white;
+        background-color: black;
+    }
+/* END UL.SUBNAV */

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/layout.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,49 @@
+table {
+  margin: 0px;
+  padding: 0px;
+  cell-spacing: 0px;
+  border-collapse: collapse;
+  border-bottom: 1px solid #aaa;
+  border-right: 1px solid #aaa;
+  margin-bottom: 1em;
+  
+width: 80%;
+margin: 1em auto;
+border-collapse: collapse;
+}
+
+th {
+	padding: 0.5em;
+	text-align: left;
+	border: 1px solid black;
+	background-color: #cccccc;
+}
+
+tfoot td {
+	border-top: 1px solid black;
+}
+
+td {
+	padding: 0.5em;
+        border: 1px solid black;
+}
+
+	
+tr {
+	background-color: #ffffff;
+}
+
+tr.odd {
+	background-color: #f3f3f3;
+}
+
+
+td.numeric,
+th.numeric {
+	text-align: right;
+}
+
+/** forms using table layout */
+td.label {
+	background-color: #f3f3f3;
+}

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/sorttable.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,68 @@
+/* A CSS Framework by Mike Stenhouse of Content with Style */
+
+/* clearing */
+	.stretch,
+	.clear {
+		clear:both; 
+		height:1px; 
+		margin:0; 
+		padding:0; 
+		font-size: 15px;
+		line-height: 1px;
+	}
+	.clearfix:after {
+		content: "."; 
+		display: block; 
+		height: 0; 
+		clear: both; 
+		visibility: hidden;
+	}
+	* html>body .clearfix {
+		display: inline-block; 
+		width: 100%;
+	}
+	
+	* html .clearfix {
+		/* Hides from IE-mac \*/
+		height: 1%;
+		/* End hide from IE-mac */
+	}
+/* end clearing */
+
+
+/* replace */
+	.replace {
+		display:block;
+		
+		background-repeat: no-repeat;
+		background-position: left top;
+		background-color:transparent;
+	}
+	/* tidy these up */
+	.replace * {
+		text-indent: -10000px;
+		display:block;
+		
+		background-repeat: no-repeat;
+		background-position: left top;
+		background-color:transparent;
+	}
+	.replace a {
+		text-indent:0;
+	}
+	.replace a span {
+		text-indent:-10000px;
+	}
+/* end replace */
+
+
+/* accessibility */
+     span.accesskey {
+     	text-decoration:none;
+     }
+     .accessibility {
+     	position: absolute;
+     	top: -999em;
+     	left: -999em;
+     }
+/* end accessibility */
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/tools.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css Wed Apr 26 07:45:03 2006
@@ -0,0 +1,177 @@
+/* A CSS Framework by Mike Stenhouse of Content with Style */
+
+/* TYPOGRAPHY */
+	body {
+		text-align: left;
+		font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+		font-size: 76%;
+        line-height: 1em;
+		color: #333;
+	}
+	div {
+		font-size: 1em;
+	}
+	img {
+		border: 0;
+	}
+	
+/* LINKS */
+	a,
+	a:link 
+	a:active {
+		color: blue;
+		background-color: white;
+		text-decoration: underline;
+	}
+	a:visited {
+		color: purple;
+		background-color: transparent;
+	}
+	a:hover {
+        color: white;
+        background-color: black;
+		text-decoration: none;
+	}
+/* END LINKS */
+	
+/* HEADINGS */
+	h1 {
+		font-size: 2em;
+		line-height: 1.5em;
+		margin: 0 0 0.5em 0;
+		padding: 0;
+        color: black;
+	}
+	h2 {
+		font-size: 1.5em;
+        line-height: 1.5em;
+		margin: 0 0 0.5em 0;
+		padding: 0;
+        color: black;
+	}
+	h3 {
+		font-size: 1.3em;
+		line-height: 1.3em;
+		margin: 0 0 0.5em 0;
+		padding:0;
+        color: black;
+	}
+	h4 {
+		font-size: 1.2em;
+		line-height: 1.3em;
+		margin: 0 0 0.25em 0;
+		padding: 0;
+        color: black;
+	}
+	h5 {
+		font-size: 1.1em;
+		line-height: 1.3em;
+		margin: 0 0 0.25em 0;
+		padding: 0;
+        color: black;
+	}
+	h6 {
+		font-size: 1em;
+		line-height: 1.3em;
+		margin: 0 0 0.25em 0;
+		padding: 0;
+        color: black;
+	}
+/* END HEADINGS */
+
+/* TEXT */
+	p {
+		font-size: 1em;
+		margin: 0 0 1.5em 0;
+		padding: 0;
+		line-height:1.4em;
+	}
+	blockquote {
+		border-left:10px solid #ddd;
+		margin-left:10px;
+	}
+	pre {
+		font-family: monospace;
+		font-size: 1.0em;
+	}
+	strong, b {
+		font-weight: bold;
+	}
+	em, i {
+		font-style:italic;
+	}
+    code {
+        font-family: "Courier New", Courier, monospace;
+        font-size: 1em;
+        white-space: pre;
+    }
+/* END TEXT */
+	
+/* LISTS */
+	ul {
+        line-height:1.4em;
+		margin: 0 0 1.5em 0;
+		padding: 0;
+	}
+	ul li {
+		margin: 0 0 0.25em 30px;
+		padding: 0;
+	}
+	ol {
+		font-size: 1.0em;
+		line-height: 1.4em;
+		margin: 0 0 1.5em 0;
+		padding: 0;
+	}
+	ol li {
+		font-size: 1.0em;
+		margin: 0 0 0.25em 30px;
+		padding: 0;
+	}
+	dl {
+		margin: 0 0 1.5em 0;
+		padding: 0;
+		line-height: 1.4em;
+	}
+	dl dt {
+		font-weight: bold;
+		margin: 0.25em 0 0.25em 0;
+		padding: 0;
+	}
+	dl dd {
+		margin: 0 0 0 30px;
+		padding: 0;
+	}
+/* END LISTS */
+	
+	
+/* TABLE */
+	table {
+        font-size: 1em;
+		margin: 0 0 1.5em 0;
+        padding: 0;
+	}
+	table caption {
+		font-weight: bold;
+		margin: 0 0 0 0;
+		padding: 0 0 1.5em 0;
+	}
+	th {
+		font-weight: bold;
+		text-align: left;
+	}
+	td {
+		font-size: 1em;
+	}
+/* END TABLE */	
+	
+	hr {
+		display: none;
+	}
+	div.hr {
+		height: 1px;
+		margin: 1.5em 10px;
+		border-bottom: 1px dotted black;
+	}
+	
+/* END TYPOGRAPHY */	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/styles/typo.css
------------------------------------------------------------------------------
    svn:mime-type = text/css

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,99 @@
+<html>
+<head>
+<title>Durable Topic Subscribers</title>
+</head>
+<body>
+
+<form action="createSubscriber.action" method="get">
+    <input type="hidden" name="JMSDestinationType" value="topic"/>
+
+<table id="createSubscribers" class="sortable autostripe">
+<thead>
+<tr>
+    <th colspan="4">Create Durable Topic Subscribers</th>
+</tr>
+</thead>
+<tbody>
+
+<tr>
+	<td class="label">
+	    <label name="clientId">Client ID</label>
+	</td>
+    <td>
+        <input type="text" name="clientId" value=""/>
+    </td>
+    <td class="label">
+        <label name="subscriberName">Subscriber Name</label>
+    </td>
+    <td>
+        <input type="text" name="subscriberName" value=""/>
+    </td>
+</tr>
+<tr>
+    <td>
+		<label name="JMSDestination">Topic Name</label>
+    </td>
+    <td>
+		<input type="text" name="JMSDestination" value=""/>
+    </td>
+    <td>
+        <label name="selector">JMS Selector</label>
+    </td>
+    <td>
+        <input type="text" name="selector" value=""/>
+    </td>
+</tr>
+<tr>
+    <td colspan="4" align="center">
+        <input type="submit" value="Create Durable Topic Subscriber"/>
+    </td>
+</tr>
+</tbody>
+</table>
+</form>
+
+
+<h2>Durable Topic Subscribers</h2>
+
+
+<table id="topics" class="sortable autostripe">
+<thead>
+<tr>
+<th>Client ID</th>
+<th>Subscription Name</th>
+<th>Connection ID</th>
+<th>Destination</th>
+<th>Selector</th>
+<th>Pending Queue Size</th>
+<th>Dispatched Queue Size</th>
+<th>Dispatched Counter</th>
+<th>Enqueue Counter</th>
+<th>Dequeue Counter</th>
+<th>Operations</th>
+</tr>
+</thead>
+<tbody>
+<c:forEach items="${requestContext.brokerQuery.durableTopicSubscribers}" var="row">
+<tr>
+<td>${row.clientId}</td>
+<td>${row.subscriptionName}</td>
+<td>${row.connectionId}</td>
+<td>${row.destinationName}</td>
+<td>${row.selector}</td>
+<td>${row.pendingQueueSize}</td>
+<td>${row.dispatchedQueueSize}</td>
+<td>${row.dispachedCounter}</td>
+<td>${row.enqueueCounter}</td>
+<td>${row.dequeueCounter}</td>
+<td>
+    <a href="deleteSubscriber.action?clientId=${row.clientId}&subscriberName=${row.subscriptionName}">Delete</a>
+</td>
+</tr>
+</c:forEach>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/subscribers.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,36 @@
+<html>
+<head>
+<title>Test Pages</title>
+</head>
+<body>
+
+<h2>Test Pages</h2>
+
+These pages are used to test out the environment and web framework.
+
+<table class="autostripe">
+<thead>
+<tr>
+<th colspan="2">Values</th>
+</tr>
+</thead>
+<tbody>
+<tr> 
+  <td class="label">Broker type</td>
+  <td>${requestContext.brokerQuery.broker.class}</td>
+</tr>
+<tr> 
+  <td class="label">Managed broker</td>
+  <td>${requestContext.brokerQuery.brokerAdmin.broker.class}</td>
+</tr>
+<tr> 
+  <td class="label">Destinations</td>
+  <td>${requestContext.brokerQuery.managedBroker.queueRegion.destinationMap}</td>
+</tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/dummy.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,68 @@
+<html>
+<head>
+<title>Test Pages</title>
+</head>
+<body>
+
+<h2>Test Pages</h2>
+
+These pages are used to test out the environment and web framework.
+
+<table class="autostripe">
+<thead>
+<tr>
+<th colspan="2">Headers</th>
+</tr>
+</thead>
+<tbody>
+<tr> 
+  <td class="label">request.contextPath</td>
+  <td>${request.contextPath}</td>
+</tr>
+<tr> 
+  <td class="label">request.requestURI</td>
+  <td>${request.requestURI}</td>
+</tr>
+<tr> 
+  <td class="label">request.remoteAddr</td>
+  <td>${request.remoteAddr}</td>
+</tr>
+<tr> 
+  <td class="label">request.remoteHost</td>
+  <td>${request.remoteHost}</td>
+</tr>
+<tr> 
+  <td class="label">request.queryString</td>
+  <td>${request.queryString}</td>
+</tr>
+<tr> 
+  <td class="label">request.scheme</td>
+  <td>${request.scheme}</td>
+</tr>
+<tr> 
+  <td class="label">request.serverName</td>
+  <td>${request.serverName}</td>
+</tr>
+<tr> 
+  <td class="label">request.serverPort</td>
+  <td>${request.serverPort}</td>
+</tr>
+<tr> 
+  <td class="label">Spring applicationContext</td>
+  <td>${applicationContext}</td>
+</tr>
+<tr> 
+  <td class="label">Spring requestContext</td>
+  <td>${requestContext}</td>
+</tr>
+<tr> 
+  <td class="label">System properties</td>
+  <td><%= System.getProperties() %></td>
+</tr>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/index.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,37 @@
+<html>
+<head>
+<title>Test Pages</title>
+</head>
+<body>
+
+<h2>Test Pages</h2>
+
+These pages are used to test out the environment and web framework.
+
+<table class="sortable autostripe">
+<thead>
+<tr>
+<th>System Property</th>
+<th>Value</th>
+</tr>
+</thead>
+<tbody>
+    
+<%
+    for (java.util.Iterator iter = System.getProperties().entrySet().iterator(); iter.hasNext(); ) {
+        request.setAttribute("entry", iter.next());
+%>    
+<tr> 
+  <td class="label">${entry.key}</td>
+  <td>${entry.value}</td>
+</tr>
+<%
+}
+%>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/test/systemProperties.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp (added)
+++ incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp Wed Apr 26 07:45:03 2006
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>Topics</title>
+</head>
+<body>
+
+<div>
+<form action="createDestination.action" method="get">
+    <input type="hidden" name="JMSDestinationType" value="topic"/>
+
+    <label name="destination">Topic Name</label>
+    <input type="text" name="JMSDestination" value=""/>
+
+    <input type="submit" value="Create"/>
+</form>
+</div>
+
+<h2>Topics</h2>
+
+<table id="topics" class="sortable autostripe">
+<thead>
+<tr>
+<th>Name</th>
+<th>Number Of Consumers</th>
+<th>Messages Sent</th>
+<th>Messages Received</th>
+<th>Operations</th>
+</tr>
+</thead>
+<tbody>
+<c:forEach items="${requestContext.brokerQuery.topics}" var="row">
+<tr>
+<td><a href="send.jsp?JMSDestination=${row.name}&JMSDestinationType=topic">${row.name}</a></td>
+<td>${row.consumerCount}</td>
+<td>${row.enqueueCount}</td>
+<td>${row.dequeueCount}</td>
+<td>
+    <a href="send.jsp?JMSDestination=${row.name}&JMSDestinationType=topic">Send To</a>
+    <a href="deleteDestination.action?JMSDestination=${row.name}&JMSDestinationType=topic">Delete</a>
+</td>
+</tr>
+</c:forEach>
+</tbody>
+</table>
+
+
+</body>
+</html>
+	
\ No newline at end of file

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/main/webapp/topics.jsp
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java?rev=397209&view=auto
==============================================================================
--- incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java (added)
+++ incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java Wed Apr 26 07:45:03 2006
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright 2005-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.web.tool;
+
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.nio.SelectChannelConnector;
+import org.mortbay.jetty.webapp.WebAppContext;
+
+
+/**
+ * A simple bootstrap class for starting Jetty in your IDE using the local web application.
+ * 
+ * @version $Revision$
+ */
+public class Main {
+    
+    public static final int PORT = 8080;
+
+    public static final String WEBAPP_DIR = "src/main/webapp";
+
+    public static final String WEBAPP_CTX = "/";
+
+    public static void main(String[] args) throws Exception {
+        // now lets start the web server        
+        int port = PORT;
+        if (args.length > 0) {
+            String text = args[0];
+            port = Integer.parseInt(text);
+        }
+        System.out.println("Starting Web Server on port: " + port);
+        Server server = new Server();
+        SelectChannelConnector connector = new SelectChannelConnector();
+        connector.setPort(port);
+        connector.setServer(server);
+        WebAppContext context = new WebAppContext();
+        
+        context.setResourceBase(WEBAPP_DIR);
+        context.setContextPath(WEBAPP_CTX);
+        context.setServer(server);
+        server.setHandlers(new Handler[]{context});
+        server.setConnectors(new Connector[]{connector});
+        server.start();
+        
+        System.out.println();
+        System.out.println("==============================================================================");
+        System.out.println("Started the ActiveMQ Console: point your web browser at http://localhost:" + port + "/");
+        System.out.println("==============================================================================");
+        System.out.println();
+    }
+}

Propchange: incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/activemq/trunk/activemq-web-console/src/test/java/org/apache/activemq/web/tool/Main.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message