JBoss Rich Faces SVN: r9703 - in trunk/sandbox/ui/extendedDataTable/src/main: javascript/ClientUI/controls/datatable and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: pkawiak
Date: 2008-07-21 07:17:43 -0400 (Mon, 21 Jul 2008)
New Revision: 9703
Added:
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-dt-drag-indicator.js
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-draggable.js
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-dropzone.js
Removed:
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/dt-drag-indicator.js
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-draggable.js
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-dropzone.js
Modified:
trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx
Log:
Colgroup surrounding cols added, changed getters and setters of columns, changed names of several files
Modified: trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java 2008-07-21 11:17:43 UTC (rev 9703)
@@ -99,7 +99,7 @@
private static final String GROUP_TOGGLE_ACTION_NAME = "groupToggleAction";
- private static final String MIN_COLUMN_WIDTH = "100";
+ private static final String MIN_COLUMN_WIDTH = "20";
/**
* Encode all table structure - colgroups definitions, caption, header,
@@ -110,16 +110,10 @@
* @throws IOException
*/
- public void encodeTableStructure(FacesContext context,
+ public void encodeColumns(FacesContext context,
UIExtendedDataTable table) throws IOException {
ResponseWriter writer = context.getResponseWriter();
- // int columns = getColumnsCount(table);
Iterator<UIColumn> cols = table.getSortedColumns();
- // columns = extendedDataTable.getVisibleColumnsCount();
- // Encode colgroup definition.
- // writer.startElement("colgroup", table);
- // writer.writeAttribute("span", String.valueOf(columns), null);
-
while (cols.hasNext()) {
UIColumn col = cols.next();
if (col.isRendered()) {
@@ -134,9 +128,7 @@
}
}
writer.startElement("col", table);
- writer.writeAttribute("width", "1*", null);
writer.endElement("col");
- // writer.endElement("colgroup");
}
public void encodeHeader(FacesContext context, UIExtendedDataTable table)
@@ -433,6 +425,8 @@
int columns = table.getVisibleColumnsCount() + 1;
if (footer != null || columnFacetPresent) {
writer.startElement("tfoot", table);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, table.getBaseClientId(context)
+ + ":footer", null);
String footerClass = (String) table.getAttributes().get(
"footerClass");
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -32,6 +32,17 @@
Utils.Condition.ElementPresent(id+':header'), 5);
},
+ setColumnWidth: function(columnIndex, newWidth) {
+ ClientUILib.log(ClientUILogger.INFO, "columnIndex: " + columnIndex);
+ if (columnIndex >= this.getColumnsNumber) {
+ return false;
+ }else{
+ ClientUILib.log(ClientUILogger.INFO, "newWidth inside method: " + newWidth);
+ this.getColumns()[columnIndex].width = newWidth;
+ ClientUILib.log(ClientUILogger.INFO, "newWidth after: " + this.getColumnWidth(columnIndex));
+ }
+ },
+
_findParentElement: function(event, element) {
var el = null;
if(ClientUILib.isSafari) {
@@ -127,19 +138,18 @@
imageDiv.setAttribute('alternatesrc', src);
},
- getColumnWidth: function(columnNumber) {
+ getColumnWidth: function(columnNumber) {
if ((columnNumber < this.getColumnsNumber()) && (columnNumber >=0)) {
- var col = this.getColumns()[columnNumber+this.getColumnsNumber()];
+ var col = this.getColumns()[columnNumber];
if (col.offsetWidth) {
return col.offsetWidth;
}else{
- //cols don't have offsetWidth in Opera
return parseInt(col.width);
}
}else{
return null;
}
- },
+ },
setGroupExpanded: function(iGroupIndex, bValue) {
var group = this.groups[iGroupIndex];
@@ -172,6 +182,7 @@
createControls: function() {
var id = this.id;
this.table = new ClientUI.common.box.Box(this.id +":tu",null,true);
+ var table = this.table;
this.mainDiv = new ClientUI.common.box.Box(this.id,null,true);
this.outerDiv = new ClientUI.common.box.Box(this.id +":od",null,true);
this.tableB = new ClientUI.common.box.Box(this.id +":n",null,true);
@@ -179,11 +190,13 @@
this.fakeIeBodyRow = $(this.id +":body:fakeIeRow");
this.header = new ExtendedDataTable.DataTable.header(this.id +":header",this);
this.header.minColumnWidth = this.minColumnWidth;
- this.cols = this.table.getElement().getElementsByTagName("col");
- this.columnsNumber = this.cols.length/2;
+ var colgroup = $(this.id +":colgroup:body");
+ this.cols = colgroup.getElementsByTagName("col");
+ this.columnsNumber = this.cols.length;
this.scrollingDiv = new ClientUI.common.box.Box(this.id +":sd",null,true);
this.groupRows = [];
-
+ var tfoot = table.getElement().getElementsByTagName('tfoot');
+ this.footer = $(this.id +":footer");
if (ClientUILib.isOpera) {
//no overflow-x nor overflow-y in Opera
this.scrollingDiv.setStyle({overflow: 'scroll',
@@ -206,9 +219,10 @@
var sd = this.scrollingDiv.getElement();
return sd.offsetWidth - sd.clientWidth;
},
- validateColumnsWidth: function(columns,excessWidth) {
+ validateColumnsWidth: function(columns,excessWidth) {
+ ClientUILib.log(ClientUILogger.INFO, "validatingColumnsWidth: "+excessWidth);
var i=1;
- var endIndex = columns.length/2-1;
+ var endIndex = columns.length-1;
while ((i < endIndex) && (excessWidth > 0)) {
var col = columns[columns.length-i-1];
var spareWidth = col.offsetWidth - this.minColumnWidth;
@@ -223,7 +237,16 @@
}
i++;
}
- },
+ },
+
+ getFooterHeight: function() {
+ if (this.footer) {
+ return this.footer.getHeight();
+ }else{
+ return 0;
+ }
+ },
+
updateLayout: function() {
var table = this.table.getElement();
this.grid = table;
@@ -236,41 +259,36 @@
var headerChildren = header.getColumnCells();
var footers = table.getElementsByTagName('tfoot');
- var footerHeight = 0;
- if (footers.length > 0) {
- footerHeight = footers[0].offsetHeight;
- }
+ var footerHeight = this.getFooterHeight();
+
var columnsNumber = this.getColumnsNumber();
var visibleHeaderWidth = this.header.getVisibleWidth();
- var excessWidth = this.header.getVisibleWidth() - this.mainDiv.getWidth();
+ ClientUILib.log(ClientUILogger.INFO, "visibleHeaderWidth: "+visibleHeaderWidth);
+ ClientUILib.log(ClientUILogger.INFO, "mainDivWidth: " + this.mainDiv.getWidth());
+ var scrollbarWidth = scrollingDiv.getElement().offsetWidth - scrollingDiv.getElement().clientWidth;
+ var maxAllowedWidth = this.mainDiv.getWidth() - scrollbarWidth;
+ var excessWidth = this.header.getVisibleWidth() - maxAllowedWidth;
+ ClientUILib.log(ClientUILogger.ALERT, "1");
if (excessWidth > 0) {
- var scrollbarExcess = scrollingDiv.getElement().offsetWidth - scrollingDiv.getElement().clientWidth;
- excessWidth += scrollbarExcess;
+ ClientUILib.log(ClientUILogger.INFO, "excessWidth: " + excessWidth);
this.validateColumnsWidth(cols,excessWidth);
- }else{
- var excessWidth = visibleHeaderWidth - scrollingDiv.getElement().clientWidth;
- if (excessWidth>0) {
- this.validateColumnsWidth(cols,excessWidth);
- }
- }
+ };
+ ClientUILib.log(ClientUILogger.ALERT, "2");
if (ClientUILib.isOpera) {
var _stl = headerChildren[0].getStyles().borderRightWidth;
_stl = parseInt(_stl.replace(/"px"/,""))*2;
var newWidth = mainDivWidth - visibleHeaderWidth - (this.header.getColumnsNumber()-1)*_stl;
- cols[columnsNumber-1].width = newWidth;
- ClientUILib.log(ClientUILogger.INFO, "_stl: " + _stl);
- ClientUILib.log(ClientUILogger.INFO, "newWidth: " + newWidth);
+ cols[columnsNumber-1].width = null;
newWidth -= this.getScrollbarWidth()-1;
if (newWidth <= 0) {
newWidth = 1;
}
- cols[cols.length-1].width = newWidth;
- ClientUILib.log(ClientUILogger.EVENT, "newWidth: " + newWidth);
+ cols[cols.length-1].width = null;
var cols = this.header.getColumns();
var columnsNumber = this.header.getColumnsNumber();
for (var i=0; i<columnsNumber-1; i++) {
- cols[i].width = parseInt(cols[i+columnsNumber].width) - _stl;
+ cols[i].width = this.getColumnWidth(i) - _stl;
}
}else{
cols[columnsNumber-1].width = null;
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -24,9 +24,8 @@
},
getVisibleWidth: function() {
var sum = 0;
- var cols = this.getColumns();
for(var i=0; i<this.getColumnsNumber()-1; i++){
- sum += parseInt(cols[i].width);
+ sum += this.getColumnWidth(i);
}
return sum;
},
@@ -49,9 +48,10 @@
}
this.headerRow = new ClientUI.common.box.Box(this.extDtId +":headerRow",this.getElement(),true);
this.filterRow = new ClientUI.common.box.Box(this.extDtId +":filterRow",this.getElement(),true);
- this.cols = this.extDt.table.getElement().getElementsByTagName("col");
+ var colgroup = $(this.extDtId +":colgroup:header");
+ this.cols = colgroup.getElementsByTagName("col");
+ this.columnsNumber = this.cols.length;
this.columnCells = this.headerRow.getElement().childElements();
- this.columnsNumber = this.columnCells.length;
return true;
},
getColumns: function() {
@@ -64,22 +64,35 @@
return this.columnsNumber;
},
+ setColumnWidth: function(columnIndex, newWidth) {
+ if (columnIndex >= this.getColumnsNumber) {
+ return false;
+ }else{
+ if (!newWidth) {
+ newWidth = null;
+ }
+ ClientUILib.log(ClientUILogger.INFO, "newWidth inside method: " + newWidth);
+ this.getColumns()[columnIndex].width = newWidth;
+ }
+ },
+
getColumnWidth: function(columnNumber) {
if ((columnNumber < this.getColumnsNumber()) && (columnNumber >=0)) {
var col = this.columnCells[columnNumber];
- if (col.offsetWidth) {
- return col.offsetWidth;
- }else{
- //cols don't have offsetWidth in Opera
- return parseInt(col.width);
- }
+ if (col.offsetWidth) {
+ return col.offsetWidth;
+ }else{
+ return parseInt(col.width);
+ }
}else{
return null;
}
},
+
getHeightWithoutFacets: function() {
return this.headerRow.getHeight() + this.filterRow.getHeight();
},
+
OnMenuImageMouseDown: function(event) {
var el = this.extDt._findParentElement(event, "th");
var columnId = (el) ? el.id : null;
@@ -156,13 +169,16 @@
};
var srcElement = this.dragColumnInfo.srcElement;
if (ClientUILib.isOpera) {
- this.maxDelta = this.extDt.getColumnWidth(this.getColumnsNumber()-1);
+ this.maxDelta = this.getColumnWidth(this.getColumnsNumber()-1);
+ if (ClientUILib.isOpera) {
+ this.maxDelt -= 1;
+ };
ClientUILib.log(ClientUILogger.INFO, "this.maxDelta: " + this.maxDelta);
}else{
- this.maxDelta = this.getColumnWidth(this.getColumnsNumber()-1);
- ClientUILib.log(ClientUILogger.INFO, "this.maxDelta: " + this.maxDelta);
- this.maxDelta -= this.extDt.getScrollbarWidth();
- ClientUILib.log(ClientUILogger.INFO, "this.extDt.getScrollbarWidth() " + this.extDt.getScrollbarWidth());
+ this.maxDelta = this.getColumnWidth(this.getColumnsNumber()-1);
+ ClientUILib.log(ClientUILogger.INFO, "this.maxDelta: " + this.maxDelta);
+ this.maxDelta -= this.extDt.getScrollbarWidth();
+ ClientUILib.log(ClientUILogger.INFO, "this.extDt.getScrollbarWidth() " + this.extDt.getScrollbarWidth());
}
this.minDelta = this.minColumnWidth - this.getColumnWidth(srcElement.columnIndex);
Event.observe(document, 'mousemove', this.eventSepMouseMove, true);
@@ -195,11 +211,9 @@
},
OnSepMouseUp: function(event) {
- var colsNumber = this.getColumnsNumber();
Event.stop(event);
Event.stopObserving(document, 'mousemove', this.eventSepMouseMove);
Event.stopObserving(document, 'mouseup', this.eventSepMouseUp);
- var cols = this.getColumns();
if(this.dragColumnInfo && this.dragColumnInfo.dragStarted) {
this.dragColumnInfo.dragStarted = false;
@@ -218,18 +232,20 @@
// sep span width
delta -= 6;
}
+ ClientUILib.log(ClientUILogger.INFO, "delta: " + delta);
var columnIndex = this.dragColumnInfo.srcElement.columnIndex;
var newWidth = this.getColumnWidth(columnIndex) + delta;
- cols[columnIndex].width = newWidth;
- cols[columnIndex+this.getColumnsNumber()].width = newWidth;
-
+ this.extDt.setColumnWidth(columnIndex, newWidth);
+ this.setColumnWidth(columnIndex,newWidth);
+ ClientUILib.log(ClientUILogger.ALERT, "newWidth: " + newWidth);
+ ClientUILib.log(ClientUILogger.INFO, "newWidth 1: " + this.extDt.getColumnWidth(1));
this.extDt.updateLayout();
if (this.extDt.onColumnResize){
//set properly value to this.columnWidths
this.extDt.columnWidths = "";
for (i=0; i<this.columnsNumber; i++){
- this.extDt.columnWidths += "" + this.cols[i].width + ";";
+ this.extDt.columnWidths += "" + this.getColumnWidth(i) + ";";
}//for
this.extDt.onColumnResize(event, this.extDt.columnWidths);
}
@@ -254,7 +270,7 @@
}
ClientUILib.log(ClientUILogger.INFO, "maxDelta: " + this.maxDelta);
var x = this.dragColumnInfo.originalX + delta;
- var finalX = x - this.minColumnWidth - 6;
+ var finalX = x - this.minColumnWidth - 6 //6 stands for sep span width;
this.columnSplitter.moveToX(finalX);
Event.stop(event);
}
@@ -263,7 +279,7 @@
var tr = table.insertRow(0);
var td = tr.insertCell(0);
td.setAttribute("colspan", 5);
- td.innerHTML = "FU SAFARI!!!";
+ td.innerHTML = "safari-must-have-something-inserted-to-redraw-table";
table.deleteRow(tr);
}
});
\ No newline at end of file
Deleted: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/dt-drag-indicator.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/dt-drag-indicator.js 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/dt-drag-indicator.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -1,209 +0,0 @@
-DragIndicator = {
-
- init: function(event) {
- var ieVersion = RichFaces.getIEVersion();
- DragIndicator.isIE6 = (ieVersion && ieVersion < 7);
- },
-
- setContent: function(name, single, params) {
- Element.clearChildren(this);
-
- var p = DnD.getDnDDefaultParams(this);
-
- if (!p) {
- p = {};
- }
-
- if (params) {
- Object.extend(p, params);
- }
-
- if (!p['marker']) {
- if (p[name]) {
- p['marker'] = p[name];
- } else {
- p['marker'] = this.markers[name];
- }
- }
-
- var parts;
-
- if (single) {
- parts = this.indicatorTemplates['single'];
- } else {
- parts = this.indicatorTemplates['multi'];
- }
-
- new Insertion.Top(this, parts.invoke('getContent', p).join(''));
-
- if (DragIndicator.isIE6) {
- this.initIFrame();
- }
- },
-
- show: function() {
- if (!this.floatedToBody) {
- if (!this.realParent) {
- this.realParent = this.parentNode;
- this._nextSibling = this.nextSibling;
- }
- this.realParent.removeChild(this);
- document.body.appendChild(this);
- this.floatedToBody = true;
- }
- Element.show(this);
- this.style.position = 'absolute';
- },
-
- hide: function() {
- Element.hide(this);
- this.style.position = '';
- this.offsets = undefined;
- this.leave();
- if (this.floatedToBody && this.realParent) {
- document.body.removeChild(this);
- if (this._nextSibling) {
- this.realParent.insertBefore(this, this._nextSibling);
- } else {
- this.realParent.appendChild(this);
- }
- this.floatedToBody = false;
- }
- },
-
- position: function(x, y) {
- if (!this.offsets) {
- Element.show(this);
- this.style.position = 'absolute';
- }
- Element.setStyle(this, {"left": x + "px", "top": y + "px"});
- },
-
- accept: function() {
- Element.removeClassName(this, 'drgind_default');
- Element.removeClassName(this, 'drgind_reject');
- Element.addClassName(this, 'drgind_accept');
-
- var acceptClass = this.getAcceptClass();
- if (acceptClass) {
- Element.addClassName(this, acceptClass);
- }
- },
-
- reject: function() {
- Element.removeClassName(this, 'drgind_default');
- Element.removeClassName(this, 'drgind_accept');
- Element.addClassName(this, 'drgind_reject');
-
- var rejectClass = this.getRejectClass();
- if (rejectClass) {
- Element.addClassName(this, rejectClass);
- }
- },
-
- leave: function() {
- Element.removeClassName(this, 'drgind_accept');
- //Element.removeClassName(this, 'drgind_reject');
- //Element.addClassName(this, 'drgind_default');
- Element.removeClassName(this, 'drgind_default');
- Element.addClassName(this, 'drgind_reject');
-
- var acceptClass = this.getAcceptClass();
- var rejectClass = this.getRejectClass();
- if (acceptClass) {
- Element.removeClassName(this, acceptClass);
- }
- if (rejectClass) {
- Element.removeClassName(this, rejectClass);
- }
- },
-
- getAcceptClass: function() {
- return this.ils_acceptClass;
- },
-
- getRejectClass: function() {
- return this.ils_rejectClass;
- },
-
- initIFrame: function() {
- var iframe = document.createElement("iframe");
- Element.addClassName(iframe, 'rich-dragindicator-iframe');
- this.insertBefore(iframe, this.firstChild);
- var table = iframe.nextSibling;
- iframe.style.width = table.offsetWidth + "px";
- iframe.style.height = table.offsetHeight + "px";
- }
-};
-
-function createDragIndicator(elt, acceptClass, rejectClass) {
- Object.extend(elt, DragIndicator);
- elt.init();
-
- elt.ils_acceptClass = acceptClass;
- elt.ils_rejectClass = rejectClass;
-}
-
-// <table border="0" cellpadding="3" cellspacing="0" class="drgind_internal" style="height : 100%">
-// <tr>
-// <td class="drgind_marker">
-// {marker}
-// </td>
-// <td class="drgind_text">
-// <div class="drgind_wordcut drgind_text_content">
-// {label}
-// </div>
-// </td>
-// </tr>
-// </table>
-// <div class="drgind_shadow" />
-DefaultDragIndicatorView =
-[
- new E('table',
- {
- 'style':'height : 100%; z-index: 2;',
- 'className':'drgind_internal',
- 'cellspacing':'0',
- 'cellpadding':'3',
- 'border':'0'
- },
- [
- new E('tbody',{},
- [
- new E('tr',{},
- [
- new E('td',
- {
- 'className':'drgind_marker'
- },
- [
- new ET(function (context) { return Richfaces.eval("marker", context)})
- ]
- ),
- new E('td',
- {
- 'className':'drgind_text'
- },
- [
- new E('div',
- {
- 'className':'drgind_wordcut drgind_text_content'
- },
- [
- new ET(function (context) { return Richfaces.eval("label", context)})
- ]
- )
- ]
- )
- ]
- )
- ]
- )
- ]
- ),
- new E('div',
- {
- 'className':'drgind_shadow'
- }
- )
-];
Copied: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-dt-drag-indicator.js (from rev 9269, trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/dt-drag-indicator.js)
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-dt-drag-indicator.js (rev 0)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-dt-drag-indicator.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -0,0 +1,209 @@
+DragIndicator = {
+
+ init: function(event) {
+ var ieVersion = RichFaces.getIEVersion();
+ DragIndicator.isIE6 = (ieVersion && ieVersion < 7);
+ },
+
+ setContent: function(name, single, params) {
+ Element.clearChildren(this);
+
+ var p = DnD.getDnDDefaultParams(this);
+
+ if (!p) {
+ p = {};
+ }
+
+ if (params) {
+ Object.extend(p, params);
+ }
+
+ if (!p['marker']) {
+ if (p[name]) {
+ p['marker'] = p[name];
+ } else {
+ p['marker'] = this.markers[name];
+ }
+ }
+
+ var parts;
+
+ if (single) {
+ parts = this.indicatorTemplates['single'];
+ } else {
+ parts = this.indicatorTemplates['multi'];
+ }
+
+ new Insertion.Top(this, parts.invoke('getContent', p).join(''));
+
+ if (DragIndicator.isIE6) {
+ this.initIFrame();
+ }
+ },
+
+ show: function() {
+ if (!this.floatedToBody) {
+ if (!this.realParent) {
+ this.realParent = this.parentNode;
+ this._nextSibling = this.nextSibling;
+ }
+ this.realParent.removeChild(this);
+ document.body.appendChild(this);
+ this.floatedToBody = true;
+ }
+ Element.show(this);
+ this.style.position = 'absolute';
+ },
+
+ hide: function() {
+ Element.hide(this);
+ this.style.position = '';
+ this.offsets = undefined;
+ this.leave();
+ if (this.floatedToBody && this.realParent) {
+ document.body.removeChild(this);
+ if (this._nextSibling) {
+ this.realParent.insertBefore(this, this._nextSibling);
+ } else {
+ this.realParent.appendChild(this);
+ }
+ this.floatedToBody = false;
+ }
+ },
+
+ position: function(x, y) {
+ if (!this.offsets) {
+ Element.show(this);
+ this.style.position = 'absolute';
+ }
+ Element.setStyle(this, {"left": x + "px", "top": y + "px"});
+ },
+
+ accept: function() {
+ Element.removeClassName(this, 'drgind_default');
+ Element.removeClassName(this, 'drgind_reject');
+ Element.addClassName(this, 'drgind_accept');
+
+ var acceptClass = this.getAcceptClass();
+ if (acceptClass) {
+ Element.addClassName(this, acceptClass);
+ }
+ },
+
+ reject: function() {
+ Element.removeClassName(this, 'drgind_default');
+ Element.removeClassName(this, 'drgind_accept');
+ Element.addClassName(this, 'drgind_reject');
+
+ var rejectClass = this.getRejectClass();
+ if (rejectClass) {
+ Element.addClassName(this, rejectClass);
+ }
+ },
+
+ leave: function() {
+ Element.removeClassName(this, 'drgind_accept');
+ //Element.removeClassName(this, 'drgind_reject');
+ //Element.addClassName(this, 'drgind_default');
+ Element.removeClassName(this, 'drgind_default');
+ Element.addClassName(this, 'drgind_reject');
+
+ var acceptClass = this.getAcceptClass();
+ var rejectClass = this.getRejectClass();
+ if (acceptClass) {
+ Element.removeClassName(this, acceptClass);
+ }
+ if (rejectClass) {
+ Element.removeClassName(this, rejectClass);
+ }
+ },
+
+ getAcceptClass: function() {
+ return this.ils_acceptClass;
+ },
+
+ getRejectClass: function() {
+ return this.ils_rejectClass;
+ },
+
+ initIFrame: function() {
+ var iframe = document.createElement("iframe");
+ Element.addClassName(iframe, 'rich-dragindicator-iframe');
+ this.insertBefore(iframe, this.firstChild);
+ var table = iframe.nextSibling;
+ iframe.style.width = table.offsetWidth + "px";
+ iframe.style.height = table.offsetHeight + "px";
+ }
+};
+
+function createDragIndicator(elt, acceptClass, rejectClass) {
+ Object.extend(elt, DragIndicator);
+ elt.init();
+
+ elt.ils_acceptClass = acceptClass;
+ elt.ils_rejectClass = rejectClass;
+}
+
+// <table border="0" cellpadding="3" cellspacing="0" class="drgind_internal" style="height : 100%">
+// <tr>
+// <td class="drgind_marker">
+// {marker}
+// </td>
+// <td class="drgind_text">
+// <div class="drgind_wordcut drgind_text_content">
+// {label}
+// </div>
+// </td>
+// </tr>
+// </table>
+// <div class="drgind_shadow" />
+DefaultDragIndicatorView =
+[
+ new E('table',
+ {
+ 'style':'height : 100%; z-index: 2;',
+ 'className':'drgind_internal',
+ 'cellspacing':'0',
+ 'cellpadding':'3',
+ 'border':'0'
+ },
+ [
+ new E('tbody',{},
+ [
+ new E('tr',{},
+ [
+ new E('td',
+ {
+ 'className':'drgind_marker'
+ },
+ [
+ new ET(function (context) { return Richfaces.eval("marker", context)})
+ ]
+ ),
+ new E('td',
+ {
+ 'className':'drgind_text'
+ },
+ [
+ new E('div',
+ {
+ 'className':'drgind_wordcut drgind_text_content'
+ },
+ [
+ new ET(function (context) { return Richfaces.eval("label", context)})
+ ]
+ )
+ ]
+ )
+ ]
+ )
+ ]
+ )
+ ]
+ ),
+ new E('div',
+ {
+ 'className':'drgind_shadow'
+ }
+ )
+];
Copied: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-draggable.js (from rev 9269, trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-draggable.js)
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-draggable.js (rev 0)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-draggable.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -0,0 +1,121 @@
+DnD.ExtSimpleDraggable = Class.create();
+
+Object.extend(DnD.ExtSimpleDraggable.prototype, DnD.Draggable.prototype);
+Object.extend(DnD.ExtSimpleDraggable.prototype, {
+ initialize: function(id, options) {
+ this.id = $(id);
+
+ if (!this.id) {
+ alert("drag: Element with [" + id + "] ID was not found in the DOM tree. Probably element has no client ID or client ID hasn't been written. DnD's disabled. Check please!");
+ return ;
+ }
+
+ this.options = options;
+
+ this.dragIndicatorId = this.options.dragIndicator;
+
+ this.eventMouseDown = this.initDrag.bindAsEventListener(this);
+
+ Event.observe(this.id, "mousedown", this.eventMouseDown);
+
+ this.form = this.id;
+ while (this.form && !/^form$/i.test(this.form.tagName)) {
+ this.form = this.form.parentNode;
+ }
+
+ this.enableDraggableCursors(this.options.grab, this.options.grabbing);
+ },
+
+ getDnDDragParams: function() {
+ if (this.options.dndParams) {
+ return this.options.dndParams.parseJSON(EventHandlersWalk);
+ }
+
+ return null;
+ },
+
+ getIndicator: function() {
+ var dragIndicator = $(this.dragIndicatorId);
+ if (!dragIndicator) {
+ dragIndicator = this.getOrCreateDefaultIndicator();
+ }
+
+ return dragIndicator;
+ },
+
+ ondragstart : function(event, drag) {
+ this.showDropTargets();
+ drag.params = this.options.parameters;
+ drag.params[this.id] = this.id;
+
+ this.setIndicator(event);
+
+ this.getIndicator().leave();
+
+ //this.dragEnter(event);
+
+ if (this.form) {
+ drag.params[this.form.id] = this.form.id;
+ }
+ },
+
+ ondragend: function (event, drag) {
+ this.hideDropTargets();
+ },
+
+ getContentType: function() {
+ return this.options.dragType;
+ },
+
+ getDraggableOptions: function() {
+ return this.options;
+ },
+
+ initDrag: function(event) {
+ if (Event.isLeftClick(event)) {
+ var src = Event.element(event);
+ if(src.tagName && /^INPUT|SELECT|OPTION|BUTTON|TEXTAREA$/i.test(src.tagName))
+ return;
+
+ Event.stop(event);
+
+ this.startDrag(event);
+ //Event.observe(document, "mousemove", this.listenDragBound);
+ //Event.observe(document, "mouseup", this.stopListenDragBound);
+ }
+ },
+
+ showDropTargets: function(){
+ var idStr = this.id.id;
+ var ind = idStr.lastIndexOf('_');
+ var prefix = idStr.substring(0,ind).replace("hdrag", "hdrop");
+ var spans = document.getElementsByTagName("span");
+ for(i=0;i<spans.length;i++){
+ var s = spans[i];
+ if (s.id.indexOf(prefix) == 0){
+ //s.style.zIndex = '70';
+ s.style.visibility = "visible";
+ //change dropzone style
+ s.childNodes[0].style.visibility="hidden";//top element
+ s.childNodes[1].style.visibility="hidden";//bottom element
+ }
+ }//for
+ },
+
+ hideDropTargets: function(){
+ var idStr = this.id.id;
+ var ind = idStr.lastIndexOf('_');
+ var prefix = idStr.substring(0,ind).replace("hdrag", "hdrop");
+ var spans = document.getElementsByTagName("span");
+ for (i=0;i<spans.length;i++){
+ var s = spans[i];
+ if (s.id.indexOf(prefix) == 0){
+ //s.style.zIndex = '59';
+ s.style.visibility = "hidden";
+ //change dropzone style
+ s.childNodes[0].style.visibility="hidden";//top element
+ s.childNodes[1].style.visibility="hidden";//bottom element
+ }
+ }//for
+ }
+});
\ No newline at end of file
Copied: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-dropzone.js (from rev 9269, trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-dropzone.js)
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-dropzone.js (rev 0)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/ext-simple-dropzone.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -0,0 +1,99 @@
+DnD.ExtSimpleDropZone = Class.create();
+Object.extend(DnD.ExtSimpleDropZone.prototype, DnD.Dropzone.prototype);
+Object.extend(DnD.ExtSimpleDropZone.prototype, {
+ initialize: function(id, options) {
+ this.id = id;
+ var element = $(id);
+
+ if (!element) {
+ alert("drop: Element with [" + id + "] ID was not found in the DOM tree. Probably element has no client ID or client ID hasn't been written. DnD's disabled. Check please!");
+ return ;
+ }
+
+ this.element = element;
+ if (options.acceptedTypes) {
+ this.acceptedTypes = options.acceptedTypes;
+ } else {
+ this.acceptedTypes = [];
+ }
+
+ if (options.typeMapping) {
+ this.typeMapping = options.typeMapping;
+ } else {
+ this.typeMapping = {};
+ }
+
+ if (options.cursorTypeMapping) {
+ this.cursorTypeMapping = options.cursorTypeMapping;
+ } else {
+ this.cursorTypeMapping = {};
+ }
+
+ this.mouseoverBound = this.mouseover.bindAsEventListener(this);
+ this.mouseoutBound = this.mouseout.bindAsEventListener(this);
+ this.mouseupBound = this.mouseup.bindAsEventListener(this);
+
+ Event.observe(element, "mouseover", this.mouseoverBound);
+ Event.observe(element, "mouseout", this.mouseoutBound);
+ Event.observe(element, "mouseup", this.mouseupBound);
+
+
+
+ this.options = options || {};
+ this.enableDropzoneCursors(options.acceptCursor,options.rejectCursor);
+
+ },
+
+ getDropzoneOptions: function() {
+ return this.options;
+ },
+
+ getDnDDropParams: function() {
+ if (this.options.dndParams) {
+ return this.options.dndParams.parseJSON(EventHandlersWalk);
+ }
+
+ return null;
+ },
+
+ mouseover: function(event) {
+ if (window.drag){
+ this.dragEnter(event);
+ //change dropzone style
+ this.element.childNodes[0].style.visibility="visible";//top element
+ this.element.childNodes[1].style.visibility="visible";//bottom element
+ }
+ },
+
+ mouseup: function(event) {
+ this.dragUp(event);
+ },
+
+ mouseout: function(event) {
+ if (window.drag){
+ this.dragLeave(event);
+ //change dropzone style
+ this.element.childNodes[0].style.visibility="hidden";//top element
+ this.element.childNodes[1].style.visibility="hidden";//bottom element
+ }
+ },
+ getAcceptedTypes: function() {
+ return this.acceptedTypes;
+ },
+ getTypeMapping: function() {
+ return this.typeMapping;
+ },
+
+ getCursorTypeMapping: function() {
+ return this.cursorTypeMapping;
+ },
+
+ drop: function(event, drag){
+ alert('I drop');
+ },
+ onafterdrag: function(drag) {
+ if (this.options.onafterdrag) {
+ this.options.onafterdrag.call(this, drag);
+ }
+ }
+});
\ No newline at end of file
Deleted: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-draggable.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-draggable.js 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-draggable.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -1,121 +0,0 @@
-DnD.G3SimpleDraggable = Class.create();
-
-Object.extend(DnD.G3SimpleDraggable.prototype, DnD.Draggable.prototype);
-Object.extend(DnD.G3SimpleDraggable.prototype, {
- initialize: function(id, options) {
- this.id = $(id);
-
- if (!this.id) {
- alert("drag: Element with [" + id + "] ID was not found in the DOM tree. Probably element has no client ID or client ID hasn't been written. DnD's disabled. Check please!");
- return ;
- }
-
- this.options = options;
-
- this.dragIndicatorId = this.options.dragIndicator;
-
- this.eventMouseDown = this.initDrag.bindAsEventListener(this);
-
- Event.observe(this.id, "mousedown", this.eventMouseDown);
-
- this.form = this.id;
- while (this.form && !/^form$/i.test(this.form.tagName)) {
- this.form = this.form.parentNode;
- }
-
- this.enableDraggableCursors(this.options.grab, this.options.grabbing);
- },
-
- getDnDDragParams: function() {
- if (this.options.dndParams) {
- return this.options.dndParams.parseJSON(EventHandlersWalk);
- }
-
- return null;
- },
-
- getIndicator: function() {
- var dragIndicator = $(this.dragIndicatorId);
- if (!dragIndicator) {
- dragIndicator = this.getOrCreateDefaultIndicator();
- }
-
- return dragIndicator;
- },
-
- ondragstart : function(event, drag) {
- this.showDropTargets();
- drag.params = this.options.parameters;
- drag.params[this.id] = this.id;
-
- this.setIndicator(event);
-
- this.getIndicator().leave();
-
- //this.dragEnter(event);
-
- if (this.form) {
- drag.params[this.form.id] = this.form.id;
- }
- },
-
- ondragend: function (event, drag) {
- this.hideDropTargets();
- },
-
- getContentType: function() {
- return this.options.dragType;
- },
-
- getDraggableOptions: function() {
- return this.options;
- },
-
- initDrag: function(event) {
- if (Event.isLeftClick(event)) {
- var src = Event.element(event);
- if(src.tagName && /^INPUT|SELECT|OPTION|BUTTON|TEXTAREA$/i.test(src.tagName))
- return;
-
- Event.stop(event);
-
- this.startDrag(event);
- //Event.observe(document, "mousemove", this.listenDragBound);
- //Event.observe(document, "mouseup", this.stopListenDragBound);
- }
- },
-
- showDropTargets: function(){
- var idStr = this.id.id;
- var ind = idStr.lastIndexOf('_');
- var prefix = idStr.substring(0,ind).replace("hdrag", "hdrop");
- var spans = document.getElementsByTagName("span");
- for(i=0;i<spans.length;i++){
- var s = spans[i];
- if (s.id.indexOf(prefix) == 0){
- //s.style.zIndex = '70';
- s.style.visibility = "visible";
- //change dropzone style
- s.childNodes[0].style.visibility="hidden";//top element
- s.childNodes[1].style.visibility="hidden";//bottom element
- }
- }//for
- },
-
- hideDropTargets: function(){
- var idStr = this.id.id;
- var ind = idStr.lastIndexOf('_');
- var prefix = idStr.substring(0,ind).replace("hdrag", "hdrop");
- var spans = document.getElementsByTagName("span");
- for (i=0;i<spans.length;i++){
- var s = spans[i];
- if (s.id.indexOf(prefix) == 0){
- //s.style.zIndex = '59';
- s.style.visibility = "hidden";
- //change dropzone style
- s.childNodes[0].style.visibility="hidden";//top element
- s.childNodes[1].style.visibility="hidden";//bottom element
- }
- }//for
- }
-});
\ No newline at end of file
Deleted: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-dropzone.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-dropzone.js 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/scripts/simple-dropzone.js 2008-07-21 11:17:43 UTC (rev 9703)
@@ -1,99 +0,0 @@
-DnD.G3SimpleDropZone = Class.create();
-Object.extend(DnD.G3SimpleDropZone.prototype, DnD.Dropzone.prototype);
-Object.extend(DnD.G3SimpleDropZone.prototype, {
- initialize: function(id, options) {
- this.id = id;
- var element = $(id);
-
- if (!element) {
- alert("drop: Element with [" + id + "] ID was not found in the DOM tree. Probably element has no client ID or client ID hasn't been written. DnD's disabled. Check please!");
- return ;
- }
-
- this.element = element;
- if (options.acceptedTypes) {
- this.acceptedTypes = options.acceptedTypes;
- } else {
- this.acceptedTypes = [];
- }
-
- if (options.typeMapping) {
- this.typeMapping = options.typeMapping;
- } else {
- this.typeMapping = {};
- }
-
- if (options.cursorTypeMapping) {
- this.cursorTypeMapping = options.cursorTypeMapping;
- } else {
- this.cursorTypeMapping = {};
- }
-
- this.mouseoverBound = this.mouseover.bindAsEventListener(this);
- this.mouseoutBound = this.mouseout.bindAsEventListener(this);
- this.mouseupBound = this.mouseup.bindAsEventListener(this);
-
- Event.observe(element, "mouseover", this.mouseoverBound);
- Event.observe(element, "mouseout", this.mouseoutBound);
- Event.observe(element, "mouseup", this.mouseupBound);
-
-
-
- this.options = options || {};
- this.enableDropzoneCursors(options.acceptCursor,options.rejectCursor);
-
- },
-
- getDropzoneOptions: function() {
- return this.options;
- },
-
- getDnDDropParams: function() {
- if (this.options.dndParams) {
- return this.options.dndParams.parseJSON(EventHandlersWalk);
- }
-
- return null;
- },
-
- mouseover: function(event) {
- if (window.drag){
- this.dragEnter(event);
- //change dropzone style
- this.element.childNodes[0].style.visibility="visible";//top element
- this.element.childNodes[1].style.visibility="visible";//bottom element
- }
- },
-
- mouseup: function(event) {
- this.dragUp(event);
- },
-
- mouseout: function(event) {
- if (window.drag){
- this.dragLeave(event);
- //change dropzone style
- this.element.childNodes[0].style.visibility="hidden";//top element
- this.element.childNodes[1].style.visibility="hidden";//bottom element
- }
- },
- getAcceptedTypes: function() {
- return this.acceptedTypes;
- },
- getTypeMapping: function() {
- return this.typeMapping;
- },
-
- getCursorTypeMapping: function() {
- return this.cursorTypeMapping;
- },
-
- drop: function(event, drag){
- alert('I drop');
- },
- onafterdrag: function(drag) {
- if (this.options.onafterdrag) {
- this.options.onafterdrag.call(this, drag);
- }
- }
-});
\ No newline at end of file
Modified: trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx 2008-07-21 10:30:06 UTC (rev 9702)
+++ trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx 2008-07-21 11:17:43 UTC (rev 9703)
@@ -39,10 +39,10 @@
/org/richfaces/renderkit/html/script/controlUtils.js,
/org/richfaces/renderkit/html/scripts/extended-data-table.js,
- /org/richfaces/renderkit/html/scripts/dt-drag-indicator.js,
+ /org/richfaces/renderkit/html/scripts/ext-dt-drag-indicator.js,
- /org/richfaces/renderkit/html/scripts/simple-draggable.js,
- /org/richfaces/renderkit/html/scripts/simple-dropzone.js
+ /org/richfaces/renderkit/html/scripts/ext-simple-draggable.js,
+ /org/richfaces/renderkit/html/scripts/ext-simple-dropzone.js
</h:scripts>
<f:clientid var="clientId"/>
@@ -81,7 +81,9 @@
style="visibility:hidden;"
width="100%"
>
- <f:call name="encodeTableStructure"/>
+ <colgroup id="#{clientId}:colgroup:header">
+ <f:call name="encodeColumns"/>
+ </colgroup>
<f:call name="encodeHeader"/>
<f:call name="encodeCaption"/>
<tbody>
@@ -94,7 +96,9 @@
<f:call name="utils.encodePassThruWithExclusions">
<f:parameter value="height,value,name,type,id,class,rows,style,width" />
</f:call>
- <f:call name="encodeTableStructure"/>
+ <colgroup id="#{clientId}:colgroup:body">
+ <f:call name="encodeColumns"/>
+ </colgroup>
<tbody id="#{clientId}:tb">
<vcp:body>
<f:call name="encodeRows"/>
16 years, 2 months
JBoss Rich Faces SVN: r9702 - in trunk/samples/richfaces-demo/src/main: webapp/WEB-INF and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2008-07-21 06:30:06 -0400 (Mon, 21 Jul 2008)
New Revision: 9702
Added:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeDndBean.java
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simple-tree-data-dnd.properties
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simpleDnd.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/simple-tree-dnd.xhtml
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeBean.java
trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml
Log:
simple-tree-dnd draft
Modified: trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeBean.java
===================================================================
--- trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeBean.java 2008-07-21 09:02:31 UTC (rev 9701)
+++ trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeBean.java 2008-07-21 10:30:06 UTC (rev 9702)
@@ -23,9 +23,12 @@
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
@@ -39,7 +42,6 @@
private TreeNode rootNode = null;
private String nodeTitle;
-
private static final String DATA_PATH = "/richfaces/tree/examples/simple-tree-data.properties";
private void addNodes(String path, TreeNode node, Properties properties) {
@@ -54,9 +56,7 @@
TreeNodeImpl nodeImpl = new TreeNodeImpl();
nodeImpl.setData(value);
node.addChild(new Integer(counter), nodeImpl);
-
addNodes(key, nodeImpl, properties);
-
counter++;
} else {
end = true;
@@ -96,10 +96,7 @@
return rootNode;
}
- public void processSelection(NodeSelectedEvent event) {
- UITree tree = (UITree) event.getComponent();
- nodeTitle = (String) tree.getRowData();
- }
+
public String getNodeTitle() {
return nodeTitle;
@@ -108,5 +105,6 @@
public void setNodeTitle(String nodeTitle) {
this.nodeTitle = nodeTitle;
}
+
}
Added: trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeDndBean.java
===================================================================
--- trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeDndBean.java (rev 0)
+++ trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/tree/SimpleTreeDndBean.java 2008-07-21 10:30:06 UTC (rev 9702)
@@ -0,0 +1,211 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.demo.tree;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.context.AjaxContext;
+import org.richfaces.component.UITree;
+import org.richfaces.component.UITreeNode;
+import org.richfaces.component.html.HtmlTree;
+import org.richfaces.event.DropEvent;
+import org.richfaces.event.NodeSelectedEvent;
+import org.richfaces.model.TreeNode;
+import org.richfaces.model.TreeNodeImpl;
+import org.richfaces.model.TreeRowKey;
+
+public class SimpleTreeDndBean {
+
+ private TreeNode rootNode = null;
+ private List<String> selectedNodeChildren = new ArrayList<String>();
+ private String nodeTitle;
+
+ private static final String DATA_PATH = "/richfaces/tree/examples/simple-tree-data-dnd.properties";
+
+ private void addNodes(String path, TreeNode node, Properties properties) {
+ boolean end = false;
+ int counter = 1;
+
+ while (!end) {
+ String key = path != null ? path + '.' + counter : String.valueOf(counter);
+
+ String value = properties.getProperty(key);
+ if (value != null) {
+ TreeNodeImpl nodeImpl = new TreeNodeImpl();
+ nodeImpl.setData(value);
+ node.addChild(new Integer(counter), nodeImpl);
+
+ addNodes(key, nodeImpl, properties);
+
+ counter++;
+ } else {
+ end = true;
+ }
+ }
+ }
+
+ private void loadTree() {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ ExternalContext externalContext = facesContext.getExternalContext();
+ InputStream dataStream = externalContext.getResourceAsStream(DATA_PATH);
+ try {
+ Properties properties = new Properties();
+ properties.load(dataStream);
+
+ rootNode = new TreeNodeImpl();
+ addNodes(null, rootNode, properties);
+
+ } catch (IOException e) {
+ throw new FacesException(e.getMessage(), e);
+ } finally {
+ if (dataStream != null) {
+ try {
+ dataStream.close();
+ } catch (IOException e) {
+ externalContext.log(e.getMessage(), e);
+ }
+ }
+ }
+ }
+
+ public void processSelection(NodeSelectedEvent event) {
+ HtmlTree tree = (HtmlTree) event.getComponent();
+ nodeTitle = (String) tree.getRowData();
+ selectedNodeChildren.clear();
+ TreeNode currentNode = tree.getModelTreeNode(tree.getRowKey());
+ if (currentNode.isLeaf()){
+ selectedNodeChildren.add((String)currentNode.getData());
+ }else
+ {
+ Iterator<Map.Entry<Object, TreeNode>> it = currentNode.getChildren();
+ while (it!=null &&it.hasNext()) {
+ Map.Entry<Object, TreeNode> entry = it.next();
+ selectedNodeChildren.add(entry.getValue().getData().toString());
+ }
+ }
+ }
+
+ private Object getNewId(TreeNode parentNode) {
+ Map<Object, TreeNode> childs = new HashMap<Object, TreeNode>();
+ Iterator<Map.Entry<Object, TreeNode>> iter = parentNode.getChildren();
+ while (iter != null && iter.hasNext()) {
+ Map.Entry<Object, TreeNode> entry = iter.next();
+ childs.put(entry.getKey(), entry.getValue());
+ }
+
+ Integer index = 1;
+ while (childs.containsKey(index)) {
+ index++;
+ }
+ return index;
+ }
+
+ public void dropListener(DropEvent dropEvent) {
+ // resolve drag source attributes
+ UITreeNode srcNode = (dropEvent.getDraggableSource() instanceof UITreeNode) ? (UITreeNode) dropEvent.getDraggableSource() : null;
+ UITree srcTree = srcNode != null ? srcNode.getUITree() : null;
+ TreeRowKey dragNodeKey = (dropEvent.getDragValue() instanceof TreeRowKey) ? (TreeRowKey) dropEvent.getDragValue() : null;
+ TreeNode draggedNode = dragNodeKey != null ? srcTree.getTreeNode(dragNodeKey) : null;
+
+ // resolve drag destination attributes
+ UITreeNode destNode = (dropEvent.getSource() instanceof UITreeNode) ? (UITreeNode) dropEvent.getSource() : null;
+ UITree destTree = destNode != null ? destNode.getUITree() : null;
+ TreeRowKey dropNodeKey = (dropEvent.getDropValue() instanceof TreeRowKey) ? (TreeRowKey) dropEvent.getDropValue() : null;
+ TreeNode droppedInNode = dropNodeKey != null ? destTree.getTreeNode(dropNodeKey) : null;
+
+ // Note: check if we dropped node on to itself or to item instead of folder here
+ if (droppedInNode != null && (droppedInNode.equals(draggedNode) || droppedInNode.getParent().getParent() != null || draggedNode.getParent().getParent() == null)) {
+ System.out.println("Warning: Can't drop on itself or to pic itself! Also can't move folders");
+ return;
+ }
+
+ FacesContext context = FacesContext.getCurrentInstance();
+
+ if (dropNodeKey != null) {
+ // add destination node for rerender
+ destTree.addRequestKey(dropNodeKey);
+
+ Object state = null;
+ if (dragNodeKey != null) { // Drag from this or other tree
+ TreeNode parentNode = draggedNode.getParent();
+ // 1. remove node from tree
+ state = srcTree.removeNode(dragNodeKey);
+ // 2. add parent for rerender
+ Object rowKey = srcTree.getTreeNodeRowKey(parentNode);
+ srcTree.addRequestKey(rowKey);
+ } else if (dropEvent.getDragValue() != null) { // Drag from some drag source
+ draggedNode = new TreeNodeImpl<String>();
+ draggedNode.setData(dropEvent.getDragValue().toString());
+ }
+
+ // generate new node id
+ Object id = getNewId(destTree.getTreeNode(dropNodeKey));
+ destTree.addNode(dropNodeKey, draggedNode, id, state);
+ }
+
+ AjaxContext ac = AjaxContext.getCurrentInstance();
+ // Add destination tree to reRender
+ try {
+ ac.addComponentToAjaxRender(destTree);
+ } catch (Exception e) {
+ System.err.print(e.getMessage());
+ }
+
+
+ }
+
+ public List<String> getSelectedNodeChildren() {
+ return selectedNodeChildren;
+ }
+
+ public void setSelectedNodeChildren(List<String> selectedNodeChildren) {
+ this.selectedNodeChildren = selectedNodeChildren;
+ }
+
+ public TreeNode getTreeNode() {
+ if (rootNode == null) {
+ loadTree();
+ }
+ return rootNode;
+ }
+
+ public String getNodeTitle() {
+ return nodeTitle;
+ }
+
+ public void setNodeTitle(String nodeTitle) {
+ this.nodeTitle = nodeTitle;
+ }
+
+}
Modified: trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml 2008-07-21 09:02:31 UTC (rev 9701)
+++ trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml 2008-07-21 10:30:06 UTC (rev 9702)
@@ -323,6 +323,11 @@
<managed-bean-class>org.richfaces.demo.slides.SlidesBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>simpleTreeDndBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.demo.tree.SimpleTreeDndBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
<navigation-rule>
<from-view-id>/richfaces/include/examples/wstep1.xhtml</from-view-id>
<navigation-case>
Added: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simple-tree-data-dnd.properties
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simple-tree-data-dnd.properties (rev 0)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simple-tree-data-dnd.properties 2008-07-21 10:30:06 UTC (rev 9702)
@@ -0,0 +1,11 @@
+1=Unsorted
+1.1=pic1.jpg
+1.2=pic2.jpg
+1.3=pic3.jpg
+1.4=pic4.jpg
+1.5=pic5.jpg
+1.6=pic6.jpg
+1.7=pic7.jpg
+1.8=pic8.jpg
+2 = Favorites
+3 = Trash
\ No newline at end of file
Added: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simpleDnd.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simpleDnd.xhtml (rev 0)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/examples/simpleDnd.xhtml 2008-07-21 10:30:06 UTC (rev 9702)
@@ -0,0 +1,40 @@
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <style>
+ .col1, .col2 {
+ width:50%;
+ vertical-align:top;
+ }
+ .rich-table-cell, .rich-table{
+ border:none;
+ }
+ </style>
+
+
+ <h:form>
+ <h:panelGrid columns="2" width="100%" columnClasses="col1,col2">
+
+ <rich:tree style="width:300px" nodeSelectListener="#{simpleTreeDndBean.processSelection}"
+ reRender="selectedNode" ajaxSubmitSelection="true" switchType="client"
+ value="#{simpleTreeDndBean.treeNode}" var="item" id="tree" dragType="pic"
+ acceptedTypes="pic" dragIndicator="indicator"
+ dropListener="#{simpleTreeDndBean.dropListener}">
+ <rich:treeNode>
+ <h:outputText value="#{item}"/>
+ </rich:treeNode>
+ </rich:tree>
+ <rich:panel id="selectedNode">
+ <rich:dataGrid value="#{simpleTreeDndBean.selectedNodeChildren}" var="pic" columns="3" border="0">
+ <h:graphicImage value="/richfaces/jQuery/images/#{pic}"/>
+ </rich:dataGrid>
+ </rich:panel>
+ </h:panelGrid>
+
+ </h:form>
+
+</ui:composition>
\ No newline at end of file
Added: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/simple-tree-dnd.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/simple-tree-dnd.xhtml (rev 0)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree/simple-tree-dnd.xhtml 2008-07-21 10:30:06 UTC (rev 9702)
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+ <ui:composition template="/templates/component-sample.xhtml">
+ <ui:define name="sample">
+
+ <p>
+ Tree Dnd Example
+ </p>
+
+ <div class="sample-container" >
+ <ui:include src="/richfaces/tree/examples/simpleDnd.xhtml"/>
+ <ui:include src="/templates/include/sourceview.xhtml">
+ <ui:param name="sourcepath" value="/richfaces/tree/examples/simpleDnd.xhtml"/>
+ <ui:param name="openlabel" value="Open Page Source" />
+ </ui:include>
+ </div>
+ </ui:define>
+ </ui:composition>
+</html>
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml 2008-07-21 09:02:31 UTC (rev 9701)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/tree.xhtml 2008-07-21 10:30:06 UTC (rev 9702)
@@ -18,6 +18,9 @@
<rich:tab name="model" label="Default Tree Model">
<ui:include src="/richfaces/tree/simple-tree.xhtml" />
</rich:tab>
+ <rich:tab name="dnd" label="Editable Tree with Drag and Drop support">
+ <ui:include src="/richfaces/tree/simple-tree-dnd.xhtml" />
+ </rich:tab>
<rich:tab name="info" label="Tag Information">
<rich:insert src="/WEB-INF/#{componentNavigator.currentComponent.tagInfoLocation}"
errorContent="/templates/include/tagInfoNotes.xhtml" />
16 years, 2 months
JBoss Rich Faces SVN: r9700 - in trunk/ui/dataTable/src/main: java/org/richfaces/renderkit and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: dmorozov
Date: 2008-07-21 04:46:16 -0400 (Mon, 21 Jul 2008)
New Revision: 9700
Modified:
trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx
Log:
https://jira.jboss.org/jira/browse/RF-3841
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-07-21 08:39:43 UTC (rev 9699)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-07-21 08:46:16 UTC (rev 9700)
@@ -21,6 +21,7 @@
package org.richfaces.component;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -28,27 +29,35 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.el.ELContext;
import javax.el.ELException;
import javax.el.ValueExpression;
import javax.faces.FacesException;
+import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
+import org.ajax4jsf.component.AjaxChildrenEncoder;
import org.ajax4jsf.component.SequenceDataAdaptor;
+import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.renderkit.AjaxChildrenRenderer;
import org.richfaces.model.AbstractModifiableModel;
import org.richfaces.model.FilterField;
import org.richfaces.model.ModifiableModel;
import org.richfaces.model.SortField2;
+import org.richfaces.renderkit.AbstractTableRenderer;
/**
* JSF component class
*
*/
-public abstract class UIDataTable extends SequenceDataAdaptor implements Sortable2, Filterable{
+public abstract class UIDataTable extends SequenceDataAdaptor implements Sortable2, Filterable, AjaxChildrenEncoder {
Collection<Object> sortPriority = new ArrayList<Object>();
@@ -181,5 +190,25 @@
sortPriority = (Collection<Object>)states[1];
}
+ @Override
+ public void encodeAjaxChild(FacesContext context,
+ String path,Set<String> ids,Set<String> renderedAreas) throws IOException {
+
+ if (this.isRendered()) {
+ Renderer renderer = this.getRenderer(context);
+ if (renderer instanceof AbstractTableRenderer) {
+ AbstractTableRenderer r = (AbstractTableRenderer) renderer;
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+ r.encodeTBodyAjax(context, this);
+ ajaxContext.getAjaxRenderedAreas().add(this.getClientId(context) + ":tb");
+ }
+
+ AjaxChildrenRenderer childrenRenderer = getChildrenRenderer();
+ String childsPath = path + getId() + NamingContainer.SEPARATOR_CHAR;
+ for (UIComponent component : getFacets().values()) {
+ childrenRenderer.encodeAjaxComponent(context, component, childsPath, ids, renderedAreas);
+ }
+ }
+ }
}
\ No newline at end of file
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2008-07-21 08:39:43 UTC (rev 9699)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2008-07-21 08:46:16 UTC (rev 9700)
@@ -26,7 +26,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
@@ -57,6 +56,37 @@
private static final String FILTER_INPUT_FACET_NAME = "filterValueInput";
/**
+ * Encode data table body
+ * @param context
+ * @param table
+ * @throws IOException
+ */
+ public void encodeTBody (FacesContext context, UIDataTable table) throws IOException {
+ String clientId = table.getClientId(context);
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("tbody", table);
+ writer.writeAttribute("id", clientId + ":tb", null);
+
+ encodeRows(context, table);
+
+ writer.endElement("tbody");
+ }
+
+ /**
+ * Helper method for rendering data table tBody only.
+ * For HTML consistency it wrap tBody with extra fake "table" tag
+ * @param context
+ * @param table
+ * @throws IOException
+ */
+ public void encodeTBodyAjax (FacesContext context, UIDataTable table) throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("table", table);
+ encodeTBody(context, table);
+ writer.endElement("table");
+ }
+
+ /**
* Encode all table structure - colgroups definitions, caption, header,
* footer
*
@@ -64,7 +94,6 @@
* @param table
* @throws IOException
*/
-
public void encodeTableStructure(FacesContext context, UIDataTable table)
throws IOException {
ResponseWriter writer = context.getResponseWriter();
@@ -515,23 +544,12 @@
}
}
+
AjaxContext ajaxContext = AjaxContext.getCurrentInstance();
- ajaxContext.addComponentToAjaxRender(component);
- ajaxContext.addRenderedArea(clientId+ ":tb");
ajaxContext.addRegionsFromComponent(component);
}
}
- @Override
- public void encodeEnd(FacesContext context, UIComponent component)
- throws IOException {
- super.encodeEnd(context, component);
- String clientId = component.getClientId(context);
- Set<String> ajaxRenderedAreas = AjaxContext.getCurrentInstance().getAjaxRenderedAreas();
- if(ajaxRenderedAreas.contains(clientId+ ":tb")) {
- ajaxRenderedAreas.remove(clientId);
- }
- }
protected void addInplaceInput(FacesContext context, UIComponent column,
String buffer) throws IOException {
UIInput filterValueInput = (UIInput) column
Modified: trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx
===================================================================
--- trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx 2008-07-21 08:39:43 UTC (rev 9699)
+++ trunk/ui/dataTable/src/main/templates/org/richfaces/htmlDataTable.jspx 2008-07-21 08:46:16 UTC (rev 9700)
@@ -20,17 +20,16 @@
</h:scripts>
<f:clientid var="clientId"/>
<table id="#{clientId}"
- class="dr-table rich-table #{component.attributes['styleClass']}" style="#{component.attributes['style']}"
- >
+ class="dr-table rich-table #{component.attributes['styleClass']}" style="#{component.attributes['style']}" >
<f:call name="utils.encodePassThruWithExclusions">
<f:parameter value="value,name,type,id,class,rows,style" />
</f:call>
- <f:call name="encodeTableStructure"/>
- <tbody id="#{clientId}:tb">
- <vcp:body>
- <f:call name="encodeRows"/>
- </vcp:body>
- </tbody>
+
+ <f:call name="encodeTableStructure"/>
+
+ <vcp:body>
+ <f:call name="encodeTBody"/>
+ </vcp:body>
</table>
</f:root>
\ No newline at end of file
16 years, 2 months
JBoss Rich Faces SVN: r9699 - in trunk/test-applications/jsp/src/main/webapp: DataGrid and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: adubovsky
Date: 2008-07-21 04:39:43 -0400 (Mon, 21 Jul 2008)
New Revision: 9699
Added:
trunk/test-applications/jsp/src/main/webapp/DataGrid/
trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGrid.jsp
trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGridProperty.jsp
trunk/test-applications/jsp/src/main/webapp/WEB-INF/classes/
trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataGrid.xml
Log:
Added: trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGrid.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGrid.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGrid.jsp 2008-07-21 08:39:43 UTC (rev 9699)
@@ -0,0 +1,57 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<f:subview id="dataGridSubviewID">
+
+ <rich:dataGrid id="dataGridID" value="#{dataGrid.allCars}" var="car" columns="#{dataGrid.columns}"
+ elements="#{dataGrid.elements}" first="#{dataGrid.first}" binding="#{dataGrid.htmlDataGrid}"
+ dir="#{dataGrid.dir}" border="#{dataGrid.border}"
+ cellpadding="#{dataGrid.cellpadding}" cellspacing="#{dataGrid.cellspacing}"
+ rendered="#{dataGrid.rendered}" width="#{dataGrid.width}"
+ captionClass="#{style.captionClass}"
+ captionStyle="#{style.captionStyle}"
+ columnClasses="#{style.columnClasses}"
+ footerClass="#{style.footerClass}"
+ headerClass="#{style.headerClass}"
+ rowClasses="#{style.rowClasses}"
+ style="#{style.style}"
+ styleClass="#{style.styleClass}"
+ onclick="#{event.onclick}"
+ ondblclick="#{event.ondblclick}"
+ onkeydown="#{event.onkeydown}"
+ onkeypress="#{event.onkeypress}"
+ onkeyup="#{event.onkeyup}"
+ onmousedown="#{event.onmousedown}"
+ onmousemove="#{event.onmousemove}"
+ onmouseout="#{event.onmouseout}"
+ onmouseover="#{event.onmouseover}"
+ onmouseup="#{event.onmouseup}"
+ onRowClick="#{event.onRowClick}"
+ onRowDblClick="#{event.onRowDblClick}"
+ onRowMouseDown="#{event.onRowMouseDown}"
+ onRowMouseMove="#{event.onRowMouseMove}"
+ onRowMouseOut="#{event.onRowMouseOut}"
+ onRowMouseOver="#{event.onRowMouseOver}"
+ onRowMouseUp="#{event.onRowMouseUp}" >
+ <f:facet name="header">
+ <h:outputText value="Car Store"></h:outputText>
+ </f:facet>
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="#{car.make} #{car.model}"></h:outputText>
+ </f:facet>
+ <h:panelGrid columns="2">
+ <h:outputText value="Price:"></h:outputText>
+ <h:outputText value="#{car.price}" />
+ <h:outputText value="Mileage:"></h:outputText>
+ <h:outputText value="#{car.mileage}" />
+ <rich:inplaceInput defaultLabel="add comment here.." />
+ </h:panelGrid>
+ </rich:panel>
+ <f:facet name="footer">
+ <rich:datascroller></rich:datascroller>
+ </f:facet>
+ </rich:dataGrid>
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGridProperty.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGridProperty.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/DataGrid/DataGridProperty.jsp 2008-07-21 08:39:43 UTC (rev 9699)
@@ -0,0 +1,48 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<f:subview id="dataGridPropertySubviewID">
+
+ <h:commandButton action="#{dataGrid.submit}" value="Submit" />
+ <a4j:commandButton action="#{dataGrid.submitAjax}" value="Submit Ajax" reRender="panel" />
+ <br />
+ <h:commandButton value="add test" action="#{dataGrid.addHtmlDataGrid}"></h:commandButton>
+
+ <h:panelGrid columns="2">
+ <h:outputText value="rendered: " />
+ <h:selectBooleanCheckbox onchange="submit();" label="rendered" value="#{dataGrid.rendered}" />
+
+ <h:outputText value="columns: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.columns}" />
+
+ <h:outputText value="elements: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.elements}" />
+
+ <h:outputText value="border: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.border}" />
+
+ <h:outputText value="dir: " />
+ <h:selectOneRadio value="#{dataGrid.dir}" onchange="submit();">
+ <f:selectItem itemValue="LTR" itemLabel="LTR" />
+ <f:selectItem itemValue="RTL" itemLabel="RTL" />
+ </h:selectOneRadio>
+
+ <h:outputText value="first: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.first}" />
+
+ <h:outputText value="border: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.border}" />
+
+ <h:outputText value="cellspacing: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.cellspacing}" />
+
+ <h:outputText value="cellpadding: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.cellpadding}" />
+
+ <h:outputText value="width: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.width}" />
+ </h:panelGrid>
+
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataGrid.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataGrid.xml (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataGrid.xml 2008-07-21 08:39:43 UTC (rev 9699)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+<faces-config>
+ <managed-bean>
+ <managed-bean-name>dataGrid</managed-bean-name>
+ <managed-bean-class>dataGrid.DataGrid</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>table</managed-bean-name>
+ <managed-bean-class>dataGrid.Table</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>cell</managed-bean-name>
+ <managed-bean-class>dataGrid.Cell</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+</faces-config>
\ No newline at end of file
16 years, 2 months
JBoss Rich Faces SVN: r9698 - in trunk/test-applications/facelets/src/main: java/dataGrid and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: adubovsky
Date: 2008-07-21 04:39:17 -0400 (Mon, 21 Jul 2008)
New Revision: 9698
Added:
trunk/test-applications/facelets/src/main/java/dataGrid/
trunk/test-applications/facelets/src/main/java/dataGrid/Car.java
trunk/test-applications/facelets/src/main/java/dataGrid/DataGrid.java
trunk/test-applications/facelets/src/main/webapp/DataGrid/
trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGrid.xhtml
trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGridProperty.xhtml
trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-DataGrid.xml
Log:
Added: trunk/test-applications/facelets/src/main/java/dataGrid/Car.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/dataGrid/Car.java (rev 0)
+++ trunk/test-applications/facelets/src/main/java/dataGrid/Car.java 2008-07-21 08:39:17 UTC (rev 9698)
@@ -0,0 +1,49 @@
+package dataGrid;
+
+public class Car {
+
+ private String make;
+ private String model;
+ private String mileage;
+ private String price;
+
+ public Car(String make, String model, String mileage, String price) {
+ this.make = make;
+ this.model = model;
+ this.mileage = mileage;
+ this.price = price;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public String getMileage() {
+ return mileage;
+ }
+
+ public void setMileage(String mileage) {
+ this.mileage = mileage;
+ }
+
+ public String getPrice() {
+ return price;
+ }
+
+ public void setPrice(String price) {
+ this.price = price;
+ }
+
+}
Added: trunk/test-applications/facelets/src/main/java/dataGrid/DataGrid.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/dataGrid/DataGrid.java (rev 0)
+++ trunk/test-applications/facelets/src/main/java/dataGrid/DataGrid.java 2008-07-21 08:39:17 UTC (rev 9698)
@@ -0,0 +1,172 @@
+package dataGrid;
+import java.util.ArrayList;
+import java.util.List;
+import org.richfaces.component.html.HtmlDataGrid;
+
+
+import util.componentInfo.ComponentInfo;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+public class DataGrid {
+
+ public static final String[] carMake = {"Mersedes-Benz", "Audi", "BMW", "Ford", "Ferrari"};
+ public static final String[] carModel = {"S65AMG", "RS4", "M6", "GT40", "550 Maranello"};
+ public static final String[] carMileage = {"0 km", "0 km", "0 km", "0 km", "0 km"};
+ public static final String[] carPrice = {"125000 eur", "55000 eur", "75000 eur", "255000 eur", "246000 eur"};
+
+ public DataGrid() {
+ border = "2px";
+ dir = "LTR";
+ bindLabel = "not ready";
+ elements = "4";
+ first = "0";
+ columns = "2";
+ cellpadding = "1";
+ cellspacing = "1";
+ rendered = true;
+ width = "";
+
+ for(int i = 0; i < carMake.length; i++) {
+ Car car = new Car(carMake[i], carModel[i], carMileage[i], carPrice[i]);
+ allCars.add(car);
+ }
+ }
+
+ private List<Car> allCars = new ArrayList<Car>();
+ private HtmlDataGrid myDataGrid = null;
+ private String bindLabel;
+ private String elements;
+ private HtmlDataGrid htmlDataGrid = null;
+ private String border;
+ private String dir;
+ private String first;
+ private String columns;
+ private String cellpadding;
+ private String cellspacing;
+ private boolean rendered;
+ private String width;
+
+ public String getWidth() {
+ return width;
+ }
+
+ public void setWidth(String width) {
+ this.width = width;
+ }
+
+ public boolean isRendered() {
+ return rendered;
+ }
+
+ public void setRendered(boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ public String getCellpadding() {
+ return cellpadding;
+ }
+
+ public void setCellpadding(String cellpadding) {
+ this.cellpadding = cellpadding;
+ }
+
+ public String getCellspacing() {
+ return cellspacing;
+ }
+
+ public void setCellspacing(String cellspacing) {
+ this.cellspacing = cellspacing;
+ }
+
+ public String getColumns() {
+ return columns;
+ }
+
+ public void setColumns(String columns) {
+ this.columns = columns;
+ }
+
+ public String getFirst() {
+ return first;
+ }
+
+ public void setFirst(String first) {
+ this.first = first;
+ }
+
+ public void addHtmlDataGrid(){
+ ComponentInfo info = ComponentInfo.getInstance();
+ info.addField(htmlDataGrid);
+ }
+
+ public String getElements() {
+ return elements;
+ }
+
+ public void setElements(String elements) {
+ this.elements = elements;
+ }
+
+ public String submit() {
+ return null;
+ }
+
+ public void submitAjax() {
+
+ }
+
+ public void checkBinding(ActionEvent actionEvent){
+ FacesContext context = FacesContext.getCurrentInstance();
+ bindLabel = myDataGrid.getBaseClientId(context);
+ }
+
+ public List<Car> getAllCars() {
+ return allCars;
+ }
+
+ public void setAllCars(List<Car> allCars) {
+ this.allCars = allCars;
+ }
+
+ public HtmlDataGrid getMyDataGrid() {
+ return myDataGrid;
+ }
+
+ public void setMyDataGrid(HtmlDataGrid myDataGrid) {
+ this.myDataGrid = myDataGrid;
+ }
+
+ public String getBindLabel() {
+ return bindLabel;
+ }
+
+ public void setBindLabel(String bindLabel) {
+ this.bindLabel = bindLabel;
+ }
+
+ public HtmlDataGrid getHtmlDataGrid() {
+ return htmlDataGrid;
+ }
+
+ public void setHtmlDataGrid(HtmlDataGrid htmlDataGrid) {
+ this.htmlDataGrid = htmlDataGrid;
+ }
+
+ public String getBorder() {
+ return border;
+ }
+
+ public void setBorder(String border) {
+ this.border = border;
+ }
+
+ public String getDir() {
+ return dir;
+ }
+
+ public void setDir(String dir) {
+ this.dir = dir;
+ }
+}
Added: trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGrid.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGrid.xhtml (rev 0)
+++ trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGrid.xhtml 2008-07-21 08:39:17 UTC (rev 9698)
@@ -0,0 +1,56 @@
+<f:subview xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:rich="http://richfaces.org/rich" id="dataGridSubviewID">
+
+ <rich:dataGrid id="dataGridID" value="#{dataGrid.allCars}" var="car" columns="#{dataGrid.columns}"
+ elements="#{dataGrid.elements}" first="#{dataGrid.first}" binding="#{dataGrid.htmlDataGrid}"
+ dir="#{dataGrid.dir}" border="#{dataGrid.border}"
+ cellpadding="#{dataGrid.cellpadding}" cellspacing="#{dataGrid.cellspacing}"
+ rendered="#{dataGrid.rendered}" width="#{dataGrid.width}"
+ captionClass="#{style.captionClass}"
+ captionStyle="#{style.captionStyle}"
+ columnClasses="#{style.columnClasses}"
+ footerClass="#{style.footerClass}"
+ headerClass="#{style.headerClass}"
+ rowClasses="#{style.rowClasses}"
+ style="#{style.style}"
+ styleClass="#{style.styleClass}"
+ onclick="#{event.onclick}"
+ ondblclick="#{event.ondblclick}"
+ onkeydown="#{event.onkeydown}"
+ onkeypress="#{event.onkeypress}"
+ onkeyup="#{event.onkeyup}"
+ onmousedown="#{event.onmousedown}"
+ onmousemove="#{event.onmousemove}"
+ onmouseout="#{event.onmouseout}"
+ onmouseover="#{event.onmouseover}"
+ onmouseup="#{event.onmouseup}"
+ onRowClick="#{event.onRowClick}"
+ onRowDblClick="#{event.onRowDblClick}"
+ onRowMouseDown="#{event.onRowMouseDown}"
+ onRowMouseMove="#{event.onRowMouseMove}"
+ onRowMouseOut="#{event.onRowMouseOut}"
+ onRowMouseOver="#{event.onRowMouseOver}"
+ onRowMouseUp="#{event.onRowMouseUp}" >
+ <f:facet name="header">
+ <h:outputText value="Car Store"></h:outputText>
+ </f:facet>
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="#{car.make} #{car.model}"></h:outputText>
+ </f:facet>
+ <h:panelGrid columns="2">
+ <h:outputText value="Price:"></h:outputText>
+ <h:outputText value="#{car.price}" />
+ <h:outputText value="Mileage:"></h:outputText>
+ <h:outputText value="#{car.mileage}" />
+ <rich:inplaceInput defaultLabel="add comment here.." />
+ </h:panelGrid>
+ </rich:panel>
+ <f:facet name="footer">
+ <rich:datascroller></rich:datascroller>
+ </f:facet>
+ </rich:dataGrid>
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGridProperty.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGridProperty.xhtml (rev 0)
+++ trunk/test-applications/facelets/src/main/webapp/DataGrid/DataGridProperty.xhtml 2008-07-21 08:39:17 UTC (rev 9698)
@@ -0,0 +1,47 @@
+<f:subview xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:rich="http://richfaces.org/rich" id="dataGridPropertySubviewID">
+
+ <h:commandButton action="#{dataGrid.submit}" value="Submit" />
+ <a4j:commandButton action="#{dataGrid.submitAjax}" value="Submit Ajax" reRender="panel" />
+ <br />
+ <h:commandButton value="add test" action="#{dataGrid.addHtmlDataGrid}"></h:commandButton>
+
+ <h:panelGrid columns="2">
+ <h:outputText value="rendered: " />
+ <h:selectBooleanCheckbox onchange="submit();" label="rendered" value="#{dataGrid.rendered}" />
+
+ <h:outputText value="columns: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.columns}" />
+
+ <h:outputText value="elements: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.elements}" />
+
+ <h:outputText value="border: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.border}" />
+
+ <h:outputText value="dir: " />
+ <h:selectOneRadio value="#{dataGrid.dir}" onchange="submit();">
+ <f:selectItem itemValue="LTR" itemLabel="LTR" />
+ <f:selectItem itemValue="RTL" itemLabel="RTL" />
+ </h:selectOneRadio>
+
+ <h:outputText value="first: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.first}" />
+
+ <h:outputText value="border: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.border}" />
+
+ <h:outputText value="cellspacing: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.cellspacing}" />
+
+ <h:outputText value="cellpadding: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.cellpadding}" />
+
+ <h:outputText value="width: " />
+ <h:inputText onchange="submit();" value="#{dataGrid.width}" />
+ </h:panelGrid>
+
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-DataGrid.xml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-DataGrid.xml (rev 0)
+++ trunk/test-applications/facelets/src/main/webapp/WEB-INF/faces-config-DataGrid.xml 2008-07-21 08:39:17 UTC (rev 9698)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+<faces-config>
+ <managed-bean>
+ <managed-bean-name>dataGrid</managed-bean-name>
+ <managed-bean-class>dataGrid.DataGrid</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>table</managed-bean-name>
+ <managed-bean-class>dataGrid.Table</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+ <managed-bean>
+ <managed-bean-name>cell</managed-bean-name>
+ <managed-bean-class>dataGrid.Cell</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+</faces-config>
\ No newline at end of file
16 years, 2 months
JBoss Rich Faces SVN: r9697 - in trunk/test-applications/facelets/src/main: java/gmap and 7 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: adubovsky
Date: 2008-07-21 04:36:40 -0400 (Mon, 21 Jul 2008)
New Revision: 9697
Removed:
trunk/test-applications/facelets/src/main/java/dataTable/Cell.java
trunk/test-applications/facelets/src/main/java/dataTable/Table.java
trunk/test-applications/facelets/src/main/java/dataTable/TestBean.java
Modified:
trunk/test-applications/facelets/src/main/java/gmap/Gmap.java
trunk/test-applications/facelets/src/main/java/rich/RichBean.java
trunk/test-applications/facelets/src/main/webapp/DataTable/DataTable.xhtml
trunk/test-applications/facelets/src/main/webapp/DataTable/DataTableProperty.xhtml
trunk/test-applications/facelets/src/main/webapp/DragAndDrop/DragAndDrop.xhtml
trunk/test-applications/facelets/src/main/webapp/Gmap/Gmap.xhtml
trunk/test-applications/facelets/src/main/webapp/Gmap/GmapProperty.xhtml
trunk/test-applications/facelets/src/main/webapp/ModalPanel/ModalPanel.xhtml
trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarth.xhtml
trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarthProperty.xhtml
trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
Log:
1) Add page for dataGrid
2) Modify dataTable
3) Changes in Gmap, VirtualEarth, DnD
Deleted: trunk/test-applications/facelets/src/main/java/dataTable/Cell.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/dataTable/Cell.java 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/java/dataTable/Cell.java 2008-07-21 08:36:40 UTC (rev 9697)
@@ -1,13 +0,0 @@
-package dataTable;
-public class Cell {
- private Integer value;
-
- public Integer getValue() {
- return value;
- }
-
- public void setValue(Integer value) {
- this.value = value;
- }
-
-}
Deleted: trunk/test-applications/facelets/src/main/java/dataTable/Table.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/dataTable/Table.java 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/java/dataTable/Table.java 2008-07-21 08:36:40 UTC (rev 9697)
@@ -1,15 +0,0 @@
-package dataTable;
-import java.util.ArrayList;
-import java.util.List;
-
-public class Table {
- private List<Cell> cells = new ArrayList<Cell>();
-
- public List<Cell> getCells() {
- return cells;
- }
-
- public void setCells(List<Cell> cells) {
- this.cells = cells;
- }
-}
Deleted: trunk/test-applications/facelets/src/main/java/dataTable/TestBean.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/dataTable/TestBean.java 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/java/dataTable/TestBean.java 2008-07-21 08:36:40 UTC (rev 9697)
@@ -1,73 +0,0 @@
-package dataTable;
-import java.util.ArrayList;
-import java.util.List;
-import org.richfaces.component.html.HtmlDataGrid;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-
-public class TestBean {
-
- private List<Table> tables = new ArrayList<Table>();
- private HtmlDataGrid myDataGrid = null;
- private String bindLabel;
- private String elements;
-
- public String getElements() {
- return elements;
- }
-
- public void setElements(String elements) {
- this.elements = elements;
- }
-
- public TestBean() {
- Table t1 = new Table();
- tables.add(t1);
- t1.getCells().add(new Cell());
- t1.getCells().add(new Cell());
-
- Table t2 = new Table();
- tables.add(t2);
- t2.getCells().add(new Cell());
- t2.getCells().add(new Cell());
- bindLabel = "not ready";
- elements = "0";
- }
-
- public String submit() {
- return null;
- }
-
- public void submitAjax() {
-
- }
-
- public void checkBinding(ActionEvent actionEvent){
- FacesContext context = FacesContext.getCurrentInstance();
- bindLabel = myDataGrid.getBaseClientId(context);
- }
-
- public List<Table> getTables() {
- return tables;
- }
-
- public void setTables(List<Table> tables) {
- this.tables = tables;
- }
-
- public HtmlDataGrid getMyDataGrid() {
- return myDataGrid;
- }
-
- public void setMyDataGrid(HtmlDataGrid myDataGrid) {
- this.myDataGrid = myDataGrid;
- }
-
- public String getBindLabel() {
- return bindLabel;
- }
-
- public void setBindLabel(String bindLabel) {
- this.bindLabel = bindLabel;
- }
-}
Modified: trunk/test-applications/facelets/src/main/java/gmap/Gmap.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/gmap/Gmap.java 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/java/gmap/Gmap.java 2008-07-21 08:36:40 UTC (rev 9697)
@@ -24,7 +24,16 @@
private String zoom;
private boolean rendered;
private HtmlGmap htmlGMap = null;
+ private String locale;
+ public String getLocale() {
+ return locale;
+ }
+
+ public void setLocale(String locale) {
+ this.locale = locale;
+ }
+
public HtmlGmap getHtmlGMap() {
return htmlGMap;
}
@@ -40,6 +49,7 @@
}
public Gmap() {
+ locale = "en";
zoom = "17";
mapType ="G_NORMAL_MAP";
lng = "44.44";
Modified: trunk/test-applications/facelets/src/main/java/rich/RichBean.java
===================================================================
--- trunk/test-applications/facelets/src/main/java/rich/RichBean.java 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/java/rich/RichBean.java 2008-07-21 08:36:40 UTC (rev 9697)
@@ -72,6 +72,7 @@
map.add("Skinning", add("/Skinning/Skinning", new boolean [] {false, false, false}));
map.add("HotKey", add("/HotKey/HotKey", new boolean [] {false, false, false}));
map.add("Validator", add("/Validator/Validator", new boolean [] {true, true, true}));
+ map.add("DataGrid", add("/DataGrid/DataGrid", new boolean [] {false, true, false}));
Iterator<String> iterator = map.getSet().iterator();
while(iterator.hasNext()){
list.add(new SelectItem(iterator.next()));
Modified: trunk/test-applications/facelets/src/main/webapp/DataTable/DataTable.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/DataTable/DataTable.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/DataTable/DataTable.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -1,8 +1,9 @@
<f:subview xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.org/rich" id="DataTableSubviewID">
+
<rich:dataTable id="dataTableID" var="dataTableID" value="#{dataTable.mounths}" rowKeyVar="key"
captionClass="#{style.captionClass}" rowClasses="#{style.rowClasses}" headerClass="#{style.headerClass}" footerClass="#{style.footerClass}" styleClass="#{style.styleClass}" captionStyle="#{style.captionStyle}" columnClasses="#{style.columnClasses}"
- onRowClick="#{event.onRowClick};alert('row #{key}');" rendered="#{dataTable.rendered}"
+ onRowClick="#{event.onRowClick};" rendered="#{dataTable.rendered}"
align="#{dataTable.align}" bgcolor="red" border="#{dataTable.border}" columnsWidth="#{dataTable.columnsWidth}"
width="#{dataTable.width}" title="DataTableTite" onRowDblClick="#{event.onRowDblClick}" onRowMouseDown="#{event.onRowMouseDown}"
onRowMouseMove="#{event.onRowMouseMove}" onRowMouseOut="#{event.onRowMouseOut}" onRowMouseOver="#{event.onRowMouseOver}"
@@ -72,22 +73,4 @@
</rich:column>
</rich:dataTable>
- <h1>Test page</h1>
- <a4j:outputPanel id="panel">
- <h:dataTable id="c1" border="1" value="#{testBean.tables}"
- var="table">
- <h:column>
- <rich:dataGrid id="c2" columns="2" value="#{table.cells}"
- var="cell" binding="#{testBean.myDataGrid}" border="12px" dir="RTL"
- elements="#{testBean.elements}">
- <h:outputLabel value="Value:" for="field" />
- <h:inputText id="field" value="#{cell.value}"/>
- </rich:dataGrid>
- </h:column>
- </h:dataTable>
- <h:messages />
- </a4j:outputPanel>
- <h:commandButton action="#{testBean.submit}" value="Submit" />
- <a4j:commandButton action="#{testBean.submitAjax}" value="Submit Ajax" reRender="panel"/>
-
</f:subview>
Modified: trunk/test-applications/facelets/src/main/webapp/DataTable/DataTableProperty.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/DataTable/DataTableProperty.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/DataTable/DataTableProperty.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -37,22 +37,6 @@
<h:selectBooleanCheckbox value="#{dataTable.r2rendered}"
onclick="submit();" />
- <h:commandButton actionListener="#{testBean.checkBinding}"
- value="DG_binding"></h:commandButton>
- <h:outputText value="#{testBean.bindLabel}"></h:outputText>
-
- <h:outputText value="elements:"></h:outputText>
- <h:outputText value="#{testBean.elements}"></h:outputText>
</h:panelGrid>
<br />
- <br />
- <div style="FONT-WEIGHT: bold;">rich:findComponent</div>
- <h:panelGrid columns="2">
- <rich:column>
- <a4j:commandLink value="getRowCount" reRender="findID"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID">
- <h:outputText value="#{rich:findComponent('dataTableID').rowCount}" />
- </rich:column>
- </h:panelGrid>
</f:subview>
\ No newline at end of file
Modified: trunk/test-applications/facelets/src/main/webapp/DragAndDrop/DragAndDrop.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/DragAndDrop/DragAndDrop.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/DragAndDrop/DragAndDrop.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -27,7 +27,7 @@
action="#{dndBean.dragAction}"
dragListener="#{dndBean.processDrag}"
oncomplete="#{event.oncomplete}" ondragend="#{event.ondragend}"
- ondragstart="#{event.ondragstart}" onsubmit="#{event.onsubmit}"
+ ondragstart="#{event.ondragstart}"
onbeforedomupdate="#{event.onbeforedomupdate}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
id="dragSupportID" binding="#{dndBean.htmlDrag}">
@@ -47,7 +47,6 @@
ondragenter="#{event.ondragenter}"
ondragexit="#{event.ondragexit}" ondrop="#{event.ondrop}"
ondropend="#{event.ondropend}" oncomplete="#{event.oncomplete}"
- onsubmit="#{event.onsubmit}"
onbeforedomupdate="#{event.onbeforedomupdate}" binding="#{dndBean.htmlDrop}">
</rich:dropSupport>
</h:panelGrid>
@@ -104,7 +103,7 @@
<h:panelGrid styleClass="dropzoneDecoration" id="grid1">
<f:verbatim>Accepts file and folder... Customizes</f:verbatim>
<rich:dropSupport id="zone1" oncomplete="#{event.oncomplete}"
- onsubmit="#{event.onsubmit}" ondragenter="#{event.ondragenter}"
+ ondragenter="#{event.ondragenter}"
ondragexit="#{event.ondragexit}" ondropend="#{event.ondropend}"
ondrop="#{event.ondrop}"
onbeforedomupdate="#{event.onbeforedomupdate}"
@@ -125,7 +124,7 @@
<h:panelGrid styleClass="dropzoneDecoration" id="grid3">
<f:verbatim>Accepts none... Customizes</f:verbatim>
<rich:dropSupport typeMapping="{file: testDrop}"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
ondragenter="#{event.ondragenter}" ondragexit="#{event.ondragexit}"
ondropend="#{event.ondropend}" ondrop="#{event.ondrop}"
onbeforedomupdate="#{event.onbeforedomupdate}">
@@ -139,7 +138,7 @@
<h:panelGrid styleClass="dropzoneDecoration" id="grid4">
<f:verbatim>Accepts file and folder</f:verbatim>
<rich:dropSupport acceptedTypes="file, folder"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
ondragenter="#{event.ondragenter}" ondragexit="#{event.ondragexit}"
ondropend="#{event.ondropend}" ondrop="#{event.ondrop}"
onbeforedomupdate="#{event.onbeforedomupdate}">
@@ -151,7 +150,6 @@
<rich:dragSupport dragType="file" ondragend="#{event.ondragend}"
ondragstart="#{event.ondragstart}" ondropout="#{event.ondropout}"
ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
- onsubmit="#{event.onsubmit}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue" />
@@ -163,7 +161,7 @@
<rich:dragSupport dragType="file" dragIndicator="indicator"
ondragend="#{event.ondragend}" ondragstart="#{event.ondragstart}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue" />
@@ -175,7 +173,7 @@
<rich:dragSupport dragType="folder" dragIndicator="indicator"
ondragend="#{event.ondragend}" ondragstart="#{event.ondragstart}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue for Folder" />
@@ -189,7 +187,6 @@
<rich:dragSupport dragType="folder" ondragend="#{event.ondragend}"
ondragstart="#{event.ondragstart}" ondropout="#{event.ondropout}"
ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
- onsubmit="#{event.onsubmit}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue for Folder" />
@@ -212,7 +209,7 @@
<rich:dragSupport dragType="folder" dragIndicator="defaultIndicator"
ondragend="#{event.ondragend}" ondragstart="#{event.ondragstart}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="testDragValue for Folder" />
</rich:dragSupport>
@@ -225,7 +222,7 @@
<rich:dragSupport dragType="file" dragIndicator="defaultIndicator"
ondragend="#{event.ondragend}" ondragstart="#{event.ondragstart}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
- oncomplete="#{event.oncomplete}" onsubmit="#{event.onsubmit}"
+ oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="marker" value="testMarkerValue" />
<rich:dndParam name="label" value="testDragValue" />
@@ -237,27 +234,5 @@
</h:panelGrid>
<br />
<br />
- <div style="FONT-WEIGHT: bold;">rich:findComponent</div>
- <h:panelGrid columns="2">
- <rich:column>
- <a4j:commandLink value="getDragValue" reRender="findID1"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID1">
- <h:outputText
- value="#{rich:findComponent('dragSupportID').dragValue}" />
- </rich:column>
- <rich:column>
- <a4j:commandLink value="getDropValue" reRender="findID2"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID2">
- <h:outputText
- value="#{rich:findComponent('dropSupportID').dropValue}" />
- </rich:column>
- <rich:column>
- <a4j:commandLink value="getAcceptClass" reRender="findID3"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID3">
- <h:outputText value="#{rich:findComponent('indicator').acceptClass}" />
- </rich:column>
- </h:panelGrid>
+
</f:subview>
Modified: trunk/test-applications/facelets/src/main/webapp/Gmap/Gmap.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/Gmap/Gmap.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/Gmap/Gmap.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -3,13 +3,13 @@
<rich:gmap id="gMapID" enableInfoWindow="#{gmap.enableInfoWindow}" mapType="#{gmap.mapType}" lng="#{gmap.lng}" lat="#{gmap.lat}"
warningMessage="#{gmap.warningMessage}" rendered="#{gmap.rendered}" zoom="#{gmap.zoom}"
enableContinuousZoom="#{gmap.continuousZoom}" enableDoubleClickZoom="#{gmap.doubleClickZoom}" enableDragging="#{gmap.dragging}"
- gmapVar="map" oninit="alert('init ...')" showGLargeMapControl="#{gmap.showGLargeMapControl}" showGMapTypeControl="#{gmap.showGMapTypeControl}"
- showGScaleControl="#{gmap.showGScaleControl}"
+ gmapVar="map" oninit="#{event.oninit}" showGLargeMapControl="#{gmap.showGLargeMapControl}" showGMapTypeControl="#{gmap.showGMapTypeControl}"
+ showGScaleControl="#{gmap.showGScaleControl}" locale="#{gmap.locale}"
onclick="#{event.onclick}" ondblclick="#{event.ondblclick}" onkeydown="#{event.onkeydown}" onkeypress="#{event.onkeypress}" onkeyup="#{event.onkeyup}" onmousedown="#{event.onmousedown}" onmousemove="#{event.onmousemove}" onmouseout="#{event.onmouseout}" onmouseover="#{event.onmouseover}" onmouseup="#{event.onmouseup}"
gmapKey="ABQIAAAAxU6W9QEhFLMNdc3ATIu-VxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRkrpOGzxH8_ud3inE9pG1845-FCA" style="#{style.style}" styleClass="#{style.styleClass}" binding="#{gmap.htmlGMap}" />
<h:panelGroup>
- <f:verbatim>
+ <f:verbatim><br />
Controls:<br />
<a href="javascript:void(0);" onclick="map.hideControls();return false;">Remove</a>
<a href="javascript:void(0);" onclick="map.showControls();return false;">Show</a>
Modified: trunk/test-applications/facelets/src/main/webapp/Gmap/GmapProperty.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/Gmap/GmapProperty.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/Gmap/GmapProperty.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -14,53 +14,63 @@
</h:selectOneMenu>
<h:outputText value="enableInfoWindow:"></h:outputText>
- <h:selectBooleanCheckbox value="#{gmap.enableInfoWindow}"
- onclick="submit()"></h:selectBooleanCheckbox>
+ <h:selectOneRadio value="#{gmap.enableInfoWindow}"
+ onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="showGLargeMapControl:"></h:outputText>
- <h:selectBooleanCheckbox value="#{gmap.showGLargeMapControl}"
- onclick="submit()"></h:selectBooleanCheckbox>
+ <h:selectOneRadio value="#{gmap.showGLargeMapControl}"
+ onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="showGMapTypeControl:"></h:outputText>
- <h:selectBooleanCheckbox value="#{gmap.showGMapTypeControl}"
- onclick="submit()"></h:selectBooleanCheckbox>
+ <h:selectOneRadio value="#{gmap.showGMapTypeControl}"
+ onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="showGScaleControl:"></h:outputText>
- <h:selectBooleanCheckbox value="#{gmap.showGScaleControl}"
- onclick="submit()"></h:selectBooleanCheckbox>
+ <h:selectOneRadio value="#{gmap.showGScaleControl}"
+ onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="warningMessage:"></h:outputText>
<h:inputText value="#{gmap.warningMessage}" onclick="submit()"></h:inputText>
<h:outputText value="lng:"></h:outputText>
- <h:inputText value="#{gmap.lng}" onclick="submit()"></h:inputText>
+ <h:inputText value="#{gmap.lng}" onchange="submit()"></h:inputText>
<h:outputText value="lat:"></h:outputText>
- <h:inputText value="#{gmap.lat}" onclick="submit()"></h:inputText>
+ <h:inputText value="#{gmap.lat}" onchange="submit()"></h:inputText>
<h:outputText value="Dragging:" />
- <h:selectBooleanCheckbox value="#{gmap.dragging}" onclick="submit()" />
+ <h:selectOneRadio value="#{gmap.dragging}" onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="Continuous Zoom:" />
- <h:selectBooleanCheckbox value="#{gmap.continuousZoom}"
- onclick="submit()" />
+ <h:selectOneRadio value="#{gmap.continuousZoom}" onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="Double Click Zoom:" />
- <h:selectBooleanCheckbox value="#{gmap.doubleClickZoom}"
- onclick="submit()" />
+ <h:selectOneRadio value="#{gmap.doubleClickZoom}" onchange="submit();">
+ <f:selectItem itemLabel="on" itemValue="true" />
+ <f:selectItem itemLabel="off" itemValue="false" />
+ </h:selectOneRadio>
<h:outputText value="rendered:"></h:outputText>
<h:selectBooleanCheckbox value="#{gmap.rendered}" onchange="submit();"></h:selectBooleanCheckbox>
</h:panelGrid>
<br />
<br />
- <div style="FONT-WEIGHT: bold;">rich:findComponent</div>
- <h:panelGrid columns="2">
- <rich:column>
- <a4j:commandLink value="getRendererType" reRender="findID"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID">
- <h:outputText value="#{rich:findComponent('gMapID').rendererType}" />
- </rich:column>
- </h:panelGrid>
</f:subview>
\ No newline at end of file
Modified: trunk/test-applications/facelets/src/main/webapp/ModalPanel/ModalPanel.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/ModalPanel/ModalPanel.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/ModalPanel/ModalPanel.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -67,7 +67,6 @@
<h:outputLink onclick="Richfaces.hideModalPanel('modalPanel2ID');return false;" ><f:verbatim>Close</f:verbatim></h:outputLink>
-
</rich:modalPanel>
<rich:modalPanel id="modalPanel3ID" minHeight="100" minWidth="200" moveable="true" resizeable="false" autosized="true">
Modified: trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarth.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarth.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarth.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -2,7 +2,7 @@
<f:subview xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.org/rich" id="virtualEarthSubviewID">
<h:panelGrid columns="2">
- <rich:virtualEarth id="vEarthID" lng="#{virtualEarth.lng}" onLoadMap="alert('LoadMap')" rendered="#{virtualEarth.rendered}" version="#{virtualEarth.version}" lat="#{virtualEarth.lat}" zoom="#{virtualEarth.zoom}"
+ <rich:virtualEarth id="vEarthID" lng="#{virtualEarth.lng}" onLoadMap="#{event.onLoadMap}" rendered="#{virtualEarth.rendered}" version="#{virtualEarth.version}" lat="#{virtualEarth.lat}" zoom="#{virtualEarth.zoom}"
dashboardSize="#{virtualEarth.dashboardSize}" mapStyle="#{virtualEarth.mapStyle}" var="map"
onclick="#{event.onclick}" ondblclick="#{event.ondblclick}" onkeydown="#{event.onkeydown}" onkeypress="#{event.onkeypress}" onkeyup="#{event.onkeyup}" onmousedown="#{event.onmousedown}" onmousemove="#{event.onmousemove}"
onmouseout="#{event.onmouseout}" onmouseover="#{event.onmouseover}" onmouseup="#{event.onmouseup}" binding="#{virtualEarth.htmlVirtualEarth}"/>
Modified: trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarthProperty.xhtml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarthProperty.xhtml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/VirtualEarth/VirtualEarthProperty.xhtml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -68,13 +68,5 @@
</h:panelGroup>
<br />
<br />
- <div style="FONT-WEIGHT: bold;">rich:findComponent</div>
- <h:panelGrid columns="2">
- <rich:column>
- <a4j:commandLink value="getRendererType" reRender="findID"></a4j:commandLink>
- </rich:column>
- <rich:column id="findID">
- <h:outputText value="#{rich:findComponent('vEarthID').rendererType}" />
- </rich:column>
- </h:panelGrid>
+
</f:subview>
\ No newline at end of file
Modified: trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2008-07-21 08:15:49 UTC (rev 9696)
+++ trunk/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2008-07-21 08:36:40 UTC (rev 9697)
@@ -41,7 +41,7 @@
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
- <param-value>/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-SuggestionBox.x!
ml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF/faces-config-InplaceSelect.xml,/WEB-INF/fac!
es-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF
/faces-config-Custom.xml</param-value>
+ <param-value>/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/W!
EB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF/faces-co!
nfig-InplaceSelect.xml,/WEB-INF/faces-config-InplaceInput.xml,/WEB-INF
/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
16 years, 2 months
JBoss Rich Faces SVN: r9696 - in trunk/test-applications/jsp/src/main: java/dataGrid and 8 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: adubovsky
Date: 2008-07-21 04:15:49 -0400 (Mon, 21 Jul 2008)
New Revision: 9696
Added:
trunk/test-applications/jsp/src/main/java/dataGrid/
trunk/test-applications/jsp/src/main/java/dataGrid/Car.java
trunk/test-applications/jsp/src/main/java/dataGrid/DataGrid.java
Removed:
trunk/test-applications/jsp/src/main/java/dataTable/Cell.java
trunk/test-applications/jsp/src/main/java/dataTable/Table.java
trunk/test-applications/jsp/src/main/java/dataTable/TestBean.java
Modified:
trunk/test-applications/jsp/src/main/java/dnd/DndBean.java
trunk/test-applications/jsp/src/main/java/rich/RichBean.java
trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp
trunk/test-applications/jsp/src/main/webapp/DataTable/DataTableProperty.jsp
trunk/test-applications/jsp/src/main/webapp/DragAndDrop/DragAndDrop.jsp
trunk/test-applications/jsp/src/main/webapp/Gmap/Gmap.jsp
trunk/test-applications/jsp/src/main/webapp/VirtualEarth/VirtualEarth.jsp
trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataTable.xml
trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
Log:
Added: trunk/test-applications/jsp/src/main/java/dataGrid/Car.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dataGrid/Car.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/dataGrid/Car.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -0,0 +1,49 @@
+package dataGrid;
+
+public class Car {
+
+ private String make;
+ private String model;
+ private String mileage;
+ private String price;
+
+ public Car(String make, String model, String mileage, String price) {
+ this.make = make;
+ this.model = model;
+ this.mileage = mileage;
+ this.price = price;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public String getMileage() {
+ return mileage;
+ }
+
+ public void setMileage(String mileage) {
+ this.mileage = mileage;
+ }
+
+ public String getPrice() {
+ return price;
+ }
+
+ public void setPrice(String price) {
+ this.price = price;
+ }
+
+}
Added: trunk/test-applications/jsp/src/main/java/dataGrid/DataGrid.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dataGrid/DataGrid.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/dataGrid/DataGrid.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -0,0 +1,172 @@
+package dataGrid;
+import java.util.ArrayList;
+import java.util.List;
+import org.richfaces.component.html.HtmlDataGrid;
+
+
+import util.componentInfo.ComponentInfo;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+public class DataGrid {
+
+ public static final String[] carMake = {"Mersedes-Benz", "Audi", "BMW", "Ford", "Ferrari"};
+ public static final String[] carModel = {"S65AMG", "RS4", "M6", "GT40", "550 Maranello"};
+ public static final String[] carMileage = {"0 km", "0 km", "0 km", "0 km", "0 km"};
+ public static final String[] carPrice = {"125000 eur", "55000 eur", "75000 eur", "255000 eur", "246000 eur"};
+
+ public DataGrid() {
+ border = "2px";
+ dir = "LTR";
+ bindLabel = "not ready";
+ elements = "4";
+ first = "0";
+ columns = "2";
+ cellpadding = "1";
+ cellspacing = "1";
+ rendered = true;
+ width = "";
+
+ for(int i = 0; i < carMake.length; i++) {
+ Car car = new Car(carMake[i], carModel[i], carMileage[i], carPrice[i]);
+ allCars.add(car);
+ }
+ }
+
+ private List<Car> allCars = new ArrayList<Car>();
+ private HtmlDataGrid myDataGrid = null;
+ private String bindLabel;
+ private String elements;
+ private HtmlDataGrid htmlDataGrid = null;
+ private String border;
+ private String dir;
+ private String first;
+ private String columns;
+ private String cellpadding;
+ private String cellspacing;
+ private boolean rendered;
+ private String width;
+
+ public String getWidth() {
+ return width;
+ }
+
+ public void setWidth(String width) {
+ this.width = width;
+ }
+
+ public boolean isRendered() {
+ return rendered;
+ }
+
+ public void setRendered(boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ public String getCellpadding() {
+ return cellpadding;
+ }
+
+ public void setCellpadding(String cellpadding) {
+ this.cellpadding = cellpadding;
+ }
+
+ public String getCellspacing() {
+ return cellspacing;
+ }
+
+ public void setCellspacing(String cellspacing) {
+ this.cellspacing = cellspacing;
+ }
+
+ public String getColumns() {
+ return columns;
+ }
+
+ public void setColumns(String columns) {
+ this.columns = columns;
+ }
+
+ public String getFirst() {
+ return first;
+ }
+
+ public void setFirst(String first) {
+ this.first = first;
+ }
+
+ public void addHtmlDataGrid(){
+ ComponentInfo info = ComponentInfo.getInstance();
+ info.addField(htmlDataGrid);
+ }
+
+ public String getElements() {
+ return elements;
+ }
+
+ public void setElements(String elements) {
+ this.elements = elements;
+ }
+
+ public String submit() {
+ return null;
+ }
+
+ public void submitAjax() {
+
+ }
+
+ public void checkBinding(ActionEvent actionEvent){
+ FacesContext context = FacesContext.getCurrentInstance();
+ bindLabel = myDataGrid.getBaseClientId(context);
+ }
+
+ public List<Car> getAllCars() {
+ return allCars;
+ }
+
+ public void setAllCars(List<Car> allCars) {
+ this.allCars = allCars;
+ }
+
+ public HtmlDataGrid getMyDataGrid() {
+ return myDataGrid;
+ }
+
+ public void setMyDataGrid(HtmlDataGrid myDataGrid) {
+ this.myDataGrid = myDataGrid;
+ }
+
+ public String getBindLabel() {
+ return bindLabel;
+ }
+
+ public void setBindLabel(String bindLabel) {
+ this.bindLabel = bindLabel;
+ }
+
+ public HtmlDataGrid getHtmlDataGrid() {
+ return htmlDataGrid;
+ }
+
+ public void setHtmlDataGrid(HtmlDataGrid htmlDataGrid) {
+ this.htmlDataGrid = htmlDataGrid;
+ }
+
+ public String getBorder() {
+ return border;
+ }
+
+ public void setBorder(String border) {
+ this.border = border;
+ }
+
+ public String getDir() {
+ return dir;
+ }
+
+ public void setDir(String dir) {
+ this.dir = dir;
+ }
+}
Deleted: trunk/test-applications/jsp/src/main/java/dataTable/Cell.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dataTable/Cell.java 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/java/dataTable/Cell.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -1,13 +0,0 @@
-package dataTable;
-public class Cell {
- private Integer value;
-
- public Integer getValue() {
- return value;
- }
-
- public void setValue(Integer value) {
- this.value = value;
- }
-
-}
Deleted: trunk/test-applications/jsp/src/main/java/dataTable/Table.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dataTable/Table.java 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/java/dataTable/Table.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -1,15 +0,0 @@
-package dataTable;
-import java.util.ArrayList;
-import java.util.List;
-
-public class Table {
- private List<Cell> cells = new ArrayList<Cell>();
-
- public List<Cell> getCells() {
- return cells;
- }
-
- public void setCells(List<Cell> cells) {
- this.cells = cells;
- }
-}
Deleted: trunk/test-applications/jsp/src/main/java/dataTable/TestBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dataTable/TestBean.java 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/java/dataTable/TestBean.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -1,73 +0,0 @@
-package dataTable;
-import java.util.ArrayList;
-import java.util.List;
-import org.richfaces.component.html.HtmlDataGrid;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-
-public class TestBean {
-
- private List<Table> tables = new ArrayList<Table>();
- private HtmlDataGrid myDataGrid = null;
- private String bindLabel;
- private String elements;
-
- public String getElements() {
- return elements;
- }
-
- public void setElements(String elements) {
- this.elements = elements;
- }
-
- public TestBean() {
- Table t1 = new Table();
- tables.add(t1);
- t1.getCells().add(new Cell());
- t1.getCells().add(new Cell());
-
- Table t2 = new Table();
- tables.add(t2);
- t2.getCells().add(new Cell());
- t2.getCells().add(new Cell());
- bindLabel = "not ready";
- elements = "0";
- }
-
- public String submit() {
- return null;
- }
-
- public void submitAjax() {
-
- }
-
- public void checkBinding(ActionEvent actionEvent){
- FacesContext context = FacesContext.getCurrentInstance();
- bindLabel = myDataGrid.getBaseClientId(context);
- }
-
- public List<Table> getTables() {
- return tables;
- }
-
- public void setTables(List<Table> tables) {
- this.tables = tables;
- }
-
- public HtmlDataGrid getMyDataGrid() {
- return myDataGrid;
- }
-
- public void setMyDataGrid(HtmlDataGrid myDataGrid) {
- this.myDataGrid = myDataGrid;
- }
-
- public String getBindLabel() {
- return bindLabel;
- }
-
- public void setBindLabel(String bindLabel) {
- this.bindLabel = bindLabel;
- }
-}
Modified: trunk/test-applications/jsp/src/main/java/dnd/DndBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/dnd/DndBean.java 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/java/dnd/DndBean.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -6,7 +6,6 @@
import javax.faces.event.ActionEvent;
-import org.richfaces.component.html.HtmlDragIndicator;
import org.richfaces.component.html.HtmlDragSupport;
import org.richfaces.component.html.HtmlDropSupport;
import org.richfaces.event.DragEvent;
@@ -25,41 +24,9 @@
private String actionListenerDrop;
private String actionDrag;
private String actionListenerDrag;
- private HtmlDropSupport htmlDropSupport = null;
- private HtmlDragSupport htmlDragSupport = null;
- private HtmlDragIndicator htmlDragIndicator = null;
+ private HtmlDragSupport htmlDrag = null;
+ private HtmlDropSupport htmlDrop = null;
- public void addHtmlDnD(){
- ComponentInfo info = ComponentInfo.getInstance();
- info.addField(htmlDropSupport);
- info.addField(htmlDragSupport);
- info.addField(htmlDragIndicator);
- }
-
- public HtmlDropSupport getHtmlDropSupport() {
- return htmlDropSupport;
- }
-
- public void setHtmlDropSupport(HtmlDropSupport htmlDropSupport) {
- this.htmlDropSupport = htmlDropSupport;
- }
-
- public HtmlDragSupport getHtmlDragSupport() {
- return htmlDragSupport;
- }
-
- public void setHtmlDragSupport(HtmlDragSupport htmlDragSupport) {
- this.htmlDragSupport = htmlDragSupport;
- }
-
- public HtmlDragIndicator getHtmlDragIndicator() {
- return htmlDragIndicator;
- }
-
- public void setHtmlDragIndicator(HtmlDragIndicator htmlDragIndicator) {
- this.htmlDragIndicator = htmlDragIndicator;
- }
-
public DndBean() {
super();
@@ -72,12 +39,14 @@
actionListenerDrop = "---";
}
- public void actListenerDrag(ActionEvent e) {
+ public String actListenerDrag(ActionEvent e) {
actionListenerDrag = "actionListenerDrag work!";
+ return null;
}
- public void actListenerDrop(ActionEvent e) {
+ public String actListenerDrop(ActionEvent e) {
actionListenerDrop = "actionListenerDrop work!";
+ return null;
}
public void processDrop(DropEvent event) {
@@ -149,4 +118,32 @@
public void setActionListenerDrag(String actionListenerDrag) {
this.actionListenerDrag = actionListenerDrag;
}
+
+ public HtmlDragSupport getHtmlDrag() {
+ return htmlDrag;
+ }
+
+ public void setHtmlDrag(HtmlDragSupport htmlDrag) {
+ this.htmlDrag = htmlDrag;
+ }
+
+ public HtmlDropSupport getHtmlDrop() {
+ return htmlDrop;
+ }
+
+ public void setHtmlDrop(HtmlDropSupport htmlDrop) {
+ this.htmlDrop = htmlDrop;
+ }
+
+ public String add1(){
+ ComponentInfo info1 = ComponentInfo.getInstance();
+ info1.addField(htmlDrag);
+ return null;
+ }
+
+ public String add2(){
+ ComponentInfo info1 = ComponentInfo.getInstance();
+ info1.addField(htmlDrop);
+ return null;
+ }
}
\ No newline at end of file
Modified: trunk/test-applications/jsp/src/main/java/rich/RichBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/rich/RichBean.java 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/java/rich/RichBean.java 2008-07-21 08:15:49 UTC (rev 9696)
@@ -71,6 +71,7 @@
map.add("Skinning", add("/Skinning/Skinning", new boolean [] {false, false, false}));
map.add("HotKey", add("/HotKey/HotKey", new boolean [] {true, false, false}));
map.add("Validator", add("/Validator/Validator", new boolean [] {true, true, true}));
+ map.add("DataGrid", add("/DataGrid/DataGrid", new boolean [] {false, true, false}));
Iterator<String> iterator = map.getSet().iterator();
while(iterator.hasNext()){
list.add(new SelectItem(iterator.next()));
Modified: trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp 2008-07-21 08:15:49 UTC (rev 9696)
@@ -36,7 +36,8 @@
<f:facet name="single">
<f:verbatim>{marker} {nodeParam}({treeParam})</f:verbatim>
</f:facet>
- </rich:dragIndicator>
+ </rich:dragIndicator>
+
<rich:dataTable id="dataTableID" binding="#{dataTable.htmlDataTable}" var="dataTableID" value="#{dataTable.mounths}" rowKeyVar="key"
captionClass="#{style.captionClass}" rowClasses="#{style.rowClasses}" headerClass="#{style.headerClass}" footerClass="#{style.footerClass}" styleClass="#{style.styleClass}" captionStyle="#{style.captionStyle}" columnClasses="#{style.columnClasses}"
onRowClick="#{event.onRowClick};alert('row #{key}');" rendered="#{dataTable.rendered}"
@@ -135,55 +136,5 @@
<rich:column id="total" footerClass="#{style.footerClassA}" headerClass="#{style.headerClassA}" style="#{style.styleA}" styleClass="#{style.styleClassA}" colspan="2">
<h:outputText value="#{dataTableID.total}" />
</rich:column>
- </rich:dataTable>
-
- <h1>Test page</h1>
- <a4j:outputPanel id="panel">
- <h:dataTable id="c1" border="1" value="#{testBean.tables}"
- var="table">
- <h:column>
- <rich:dataGrid id="c2" columns="2" value="#{table.cells}"
- var="cell" border="12px" dir="LTR"
- elements="#{testBean.elements}" footerClass="style, test" headerClass="style,test"
- onclick="#{event.onclick}"
- ondblclick="#{event.ondblclick}"
- onkeydown="#{event.onkeydown}"
- onkeypress="#{event.onkeypress}"
- onkeyup="#{event.onkeyup}"
- onmousedown="#{event.onmousedown}"
- onmousemove="#{event.onmousemove}"
- onmouseout="#{event.onmouseout}"
- onmouseover="#{event.onmouseover}"
- onmouseup="#{event.onmouseup}"
- onRowClick="#{event.onRowClick}"
- onRowDblClick="#{event.onRowDblClick}"
- onRowMouseDown="#{event.onRowMouseDown}"
- onRowMouseMove="#{event.onRowMouseMove}"
- onRowMouseOut="#{event.onRowMouseOut}"
- onRowMouseOver="#{event.onRowMouseOver}"
- onRowMouseUp="#{event.onRowMouseUp}"
- rowKeyVar="myVar">
-
- <f:facet name="header">
- <f:verbatim>HEADER</f:verbatim>
- </f:facet>
-
- <h:outputLabel value="Value:" for="field" />
- <h:inputText id="field" value="#{cell.value}" />
- <h:outputText value="rowKeyVar:"></h:outputText>
- <h:outputText value="#{myVar}"></h:outputText>
-
- <f:facet name="footer">
- <f:verbatim>FOOTER</f:verbatim>
- </f:facet>
- </rich:dataGrid>
- </h:column>
- </h:dataTable>
- <h:messages />
- </a4j:outputPanel>
- <h:commandButton action="#{testBean.submit}" value="Submit" />
- <a4j:commandButton action="#{testBean.submitAjax}" value="Submit Ajax" reRender="panel"/>
- <br/>
- <rich:spacer width="300" height="10"></rich:spacer>
-
+ </rich:dataTable>
</f:subview>
Modified: trunk/test-applications/jsp/src/main/webapp/DataTable/DataTableProperty.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DataTable/DataTableProperty.jsp 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/DataTable/DataTableProperty.jsp 2008-07-21 08:15:49 UTC (rev 9696)
@@ -37,9 +37,6 @@
<h:selectBooleanCheckbox value="#{dataTable.r2rendered}"
onclick="submit();" />
- <h:outputText value="elements:"></h:outputText>
- <h:outputText value="#{testBean.elements}"></h:outputText>
-
<h:outputText value="Selected Node: "></h:outputText>
<h:outputText escape="false"
value="#{treeDndBean.leftSelectedNodeTitle}" id="selectedNodeL" />
Modified: trunk/test-applications/jsp/src/main/webapp/DragAndDrop/DragAndDrop.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DragAndDrop/DragAndDrop.jsp 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/DragAndDrop/DragAndDrop.jsp 2008-07-21 08:15:49 UTC (rev 9696)
@@ -22,14 +22,15 @@
<h:column>
<h:panelGrid styleClass="dropzoneDecoration" id="drag1">
<h:outputText value="#{type} - drag" />
- <rich:dragSupport dragType="dragType" binding="#{dndBean.htmlDragSupport}" dragValue="#{type} - value"
+ <rich:dragSupport dragType="#{type}" dragValue="#{type} - value"
actionListener="#{dndBean.actListenerDrag}"
action="#{dndBean.dragAction}"
dragListener="#{dndBean.processDrag}"
oncomplete="#{event.oncomplete}" ondragend="#{event.ondragend}"
ondragstart="#{event.ondragstart}"
onbeforedomupdate="#{event.onbeforedomupdate}"
- ondropout="#{event.ondropout}" ondropover="#{event.ondropover}" id="dragSupportID">
+ ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
+ id="dragSupportID" binding="#{dndBean.htmlDrag}" >
</rich:dragSupport>
</h:panelGrid>
</h:column>
@@ -39,19 +40,22 @@
<h:column>
<h:panelGrid styleClass="dropzoneDecoration" id="drop2">
<h:outputText value="#{type} - drop" />
- <rich:dropSupport binding="#{dndBean.htmlDropSupport}" reRender="dragValueText" id="dropSupportID"
+ <rich:dropSupport reRender="dragValueText" id="dropSupportID"
actionListener="#{dndBean.actListenerDrop}"
action="#{dndBean.dropAction}" acceptedTypes="#{type}"
dropListener="#{dndBean.processDrop}" dropValue="#{type} - value"
ondragenter="#{event.ondragenter}"
ondragexit="#{event.ondragexit}" ondrop="#{event.ondrop}"
ondropend="#{event.ondropend}" oncomplete="#{event.oncomplete}"
- onbeforedomupdate="#{event.onbeforedomupdate}">
+ onbeforedomupdate="#{event.onbeforedomupdate}" binding="#{dndBean.htmlDrop}">
</rich:dropSupport>
</h:panelGrid>
</h:column>
</h:dataTable>
+
<h:panelGrid id="dndActionID" columns="1">
+ <h:commandButton action="#{dndBean.add1}" value="add Drag test" />
+ <h:commandButton action="#{dndBean.add2}" value="add Drop test" />
<a4j:commandButton value="Show action" reRender="dndActionID"
style=" width : 95px;"></a4j:commandButton>
<h:outputText value="#{dndBean.actionDrag}" />
@@ -60,7 +64,7 @@
<h:outputText value="#{dndBean.actionListenerDrop}" />
</h:panelGrid>
</h:panelGrid>
- <rich:dragIndicator id="indicator" acceptClass="accept" binding="#{dndBean.htmlDragIndicator}"
+ <rich:dragIndicator id="indicator" acceptClass="accept"
rejectClass="reject" style="#{style.style}"
styleClass="#{style.styleClass}">
<f:facet name="single">
@@ -120,7 +124,7 @@
<h:panelGrid styleClass="dropzoneDecoration" id="grid3">
<f:verbatim>Accepts none... Customizes</f:verbatim>
<rich:dropSupport typeMapping="{file: testDrop}"
- oncomplete="#{event.oncomplete}"
+ oncomplete="#{event.oncomplete}"
ondragenter="#{event.ondragenter}" ondragexit="#{event.ondragexit}"
ondropend="#{event.ondropend}" ondrop="#{event.ondrop}"
onbeforedomupdate="#{event.onbeforedomupdate}">
@@ -145,7 +149,7 @@
<h:panelGrid id="grid5">
<rich:dragSupport dragType="file" ondragend="#{event.ondragend}"
ondragstart="#{event.ondragstart}" ondropout="#{event.ondropout}"
- ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
+ ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue" />
@@ -157,8 +161,7 @@
<rich:dragSupport dragType="file" dragIndicator="indicator"
ondragend="#{event.ondragend}" ondragstart="#{event.ondragstart}"
ondropout="#{event.ondropout}" ondropover="#{event.ondropover}"
- oncomplete="#{event.oncomplete}"
- onbeforedomupdate="#{event.onbeforedomupdate}">
+ oncomplete="#{event.oncomplete}" onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue" />
</rich:dragSupport>
@@ -182,7 +185,7 @@
<h:panelGrid id="grid8">
<rich:dragSupport dragType="folder" ondragend="#{event.ondragend}"
ondragstart="#{event.ondragstart}" ondropout="#{event.ondropout}"
- ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
+ ondropover="#{event.ondropover}" oncomplete="#{event.oncomplete}"
onbeforedomupdate="#{event.onbeforedomupdate}">
<rich:dndParam name="label" value="Label" />
<rich:dndParam name="testDrag" value="testDragValue for Folder" />
@@ -251,5 +254,4 @@
<h:outputText value="#{rich:findComponent('indicator').acceptClass}" />
</rich:column>
</h:panelGrid>
-<h:commandButton value="add test" action="#{dndBean.addHtmlDnD}"></h:commandButton>
</f:subview>
Modified: trunk/test-applications/jsp/src/main/webapp/Gmap/Gmap.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/Gmap/Gmap.jsp 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/Gmap/Gmap.jsp 2008-07-21 08:15:49 UTC (rev 9696)
@@ -4,15 +4,37 @@
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<f:subview id="GmapSubviewID">
- <rich:gmap id="gMapID" binding="#{gmap.htmlGmap}" locale="#{gmap.locale}" enableInfoWindow="#{gmap.enableInfoWindow}" mapType="#{gmap.mapType}" lng="#{gmap.lng}" lat="#{gmap.lat}"
- warningMessage="#{gmap.warningMessage}" rendered="#{gmap.rendered}" zoom="#{gmap.zoom}"
- enableContinuousZoom="#{gmap.continuousZoom}" enableDoubleClickZoom="#{gmap.doubleClickZoom}" enableDragging="#{gmap.dragging}"
- gmapVar="map" oninit="alert('init ...')" showGLargeMapControl="#{gmap.showGLargeMapControl}" showGMapTypeControl="#{gmap.showGMapTypeControl}"
+ <rich:gmap id="gMapID"
+ binding="#{gmap.htmlGmap}"
+ locale="#{gmap.locale}"
+ enableInfoWindow="#{gmap.enableInfoWindow}"
+ mapType="#{gmap.mapType}" lng="#{gmap.lng}"
+ lat="#{gmap.lat}"
+ warningMessage="#{gmap.warningMessage}"
+ rendered="#{gmap.rendered}"
+ zoom="#{gmap.zoom}"
+ enableContinuousZoom="#{gmap.continuousZoom}"
+ enableDoubleClickZoom="#{gmap.doubleClickZoom}"
+ enableDragging="#{gmap.dragging}"
+ gmapVar="map"
+ oninit="#{event.oninit}"
+ showGLargeMapControl="#{gmap.showGLargeMapControl}"
+ showGMapTypeControl="#{gmap.showGMapTypeControl}"
showGScaleControl="#{gmap.showGScaleControl}"
- onclick="#{event.onclick}" ondblclick="#{event.ondblclick}" onkeydown="#{event.onkeydown}" onkeypress="#{event.onkeypress}" onkeyup="#{event.onkeyup}" onmousedown="#{event.onmousedown}" onmousemove="#{event.onmousemove}" onmouseout="#{event.onmouseout}" onmouseover="#{event.onmouseover}" onmouseup="#{event.onmouseup}"
- gmapKey="ABQIAAAAxU6W9QEhFLMNdc3ATIu-VxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRkrpOGzxH8_ud3inE9pG1845-FCA" style="#{style.style}" styleClass="#{style.styleClass}" />
+ onclick="#{event.onclick}" ondblclick="#{event.ondblclick}"
+ onkeydown="#{event.onkeydown}"
+ onkeypress="#{event.onkeypress}"
+ onkeyup="#{event.onkeyup}"
+ onmousedown="#{event.onmousedown}"
+ onmousemove="#{event.onmousemove}"
+ onmouseout="#{event.onmouseout}"
+ onmouseover="#{event.onmouseover}"
+ onmouseup="#{event.onmouseup}"
+ gmapKey="ABQIAAAAxU6W9QEhFLMNdc3ATIu-VxT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRkrpOGzxH8_ud3inE9pG1845-FCA"
+ style="#{style.style}"
+ styleClass="#{style.styleClass}" />
- <h:panelGroup>
+ <h:panelGroup><br />
<f:verbatim>
Controls:<br />
<a href="javascript:void(0);" onclick="map.hideControls();return false;">Remove</a>
Modified: trunk/test-applications/jsp/src/main/webapp/VirtualEarth/VirtualEarth.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/VirtualEarth/VirtualEarth.jsp 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/VirtualEarth/VirtualEarth.jsp 2008-07-21 08:15:49 UTC (rev 9696)
@@ -6,7 +6,7 @@
<f:subview id="virtualEarthSubviewID">
<h:panelGrid columns="2">
- <rich:virtualEarth id="vEarthID" lng="#{virtualEarth.lng}" onLoadMap="alert('LoadMap')" rendered="#{virtualEarth.rendered}" version="#{virtualEarth.version}" lat="#{virtualEarth.lat}" zoom="#{virtualEarth.zoom}"
+ <rich:virtualEarth id="vEarthID" lng="#{virtualEarth.lng}" onLoadMap="#{event.onLoadMap}" rendered="#{virtualEarth.rendered}" version="#{virtualEarth.version}" lat="#{virtualEarth.lat}" zoom="#{virtualEarth.zoom}"
dashboardSize="#{virtualEarth.dashboardSize}" mapStyle="#{virtualEarth.mapStyle}" var="map" binding="#{virtualEarth.myVirtualEarth}"
onclick="#{event.onclick}" ondblclick="#{event.ondblclick}" onkeydown="#{event.onkeydown}" onkeypress="#{event.onkeypress}" onkeyup="#{event.onkeyup}" onmousedown="#{event.onmousedown}" onmousemove="#{event.onmousemove}" onmouseout="#{event.onmouseout}" onmouseover="#{event.onmouseover}" onmouseup="#{event.onmouseup}"/>
Modified: trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataTable.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataTable.xml 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-DataTable.xml 2008-07-21 08:15:49 UTC (rev 9696)
@@ -7,22 +7,4 @@
<managed-bean-class>dataTable.DataTable</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
-
- <managed-bean>
- <managed-bean-name>testBean</managed-bean-name>
- <managed-bean-class>dataTable.TestBean</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>table</managed-bean-name>
- <managed-bean-class>dataTable.Table</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
- </managed-bean>
-
- <managed-bean>
- <managed-bean-name>cell</managed-bean-name>
- <managed-bean-class>dataTable.Cell</managed-bean-class>
- <managed-bean-scope>session</managed-bean-scope>
- </managed-bean>
</faces-config>
Modified: trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2008-07-21 08:13:24 UTC (rev 9695)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2008-07-21 08:15:49 UTC (rev 9696)
@@ -20,7 +20,7 @@
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
- <param-value>/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-SuggestionBox.x!
ml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF/faces-config-InplaceSelect.xml,/WEB-INF/fac!
es-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF
/faces-config-Custom.xml</param-value>
+ <param-value>/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/W!
EB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF/faces-co!
nfig-InplaceSelect.xml,/WEB-INF/faces-config-InplaceInput.xml,/WEB-INF
/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
@@ -29,7 +29,7 @@
<context-param>
<param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
<param-value>NONE</param-value>
- </context-param>
+ </context-param>
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
16 years, 2 months
JBoss Rich Faces SVN: r9695 - in trunk/ui/fileUpload/src/main: resources/org/richfaces/renderkit/html/js and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2008-07-21 04:13:24 -0400 (Mon, 21 Jul 2008)
New Revision: 9695
Modified:
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
Log:
RF-3951
Modified: trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
===================================================================
--- trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-07-18 17:37:17 UTC (rev 9694)
+++ trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-07-21 08:13:24 UTC (rev 9695)
@@ -391,8 +391,7 @@
UIFileUpload fileUpload) {
storeData(context, fileUpload, file);
try {
- AjaxContext ajaxContext = AjaxContextImpl
- .getCurrentInstance(context);
+ AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
if ((Boolean)fileUpload.getAttributes().get(AjaxRendererUtils.AJAX_SINGLE_ATTR)) {
ajaxContext.setAjaxSingleClientId(fileUpload.getClientId(context));
}
Modified: trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
--- trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-07-18 17:37:17 UTC (rev 9694)
+++ trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-07-21 08:13:24 UTC (rev 9695)
@@ -1102,7 +1102,7 @@
_flashSetComponent: function() {
var flashId = this.id+":flashContainer";
- this.flashComponent = (document[flashId]) ? document[flashId] : window[flashId];
+ this.flashComponent = (document[flashId]) ? document[flashId] : (window[flashId] ? window[flashId] : $(flashId));
this.flashComponent.setProperties({
acceptedTypes: this.acceptedTypes,
noDuplicate: this.options.noDuplicate,
16 years, 2 months
JBoss Rich Faces SVN: r9694 - trunk/framework/impl/src/main/java/org/ajax4jsf/io.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2008-07-18 13:37:17 -0400 (Fri, 18 Jul 2008)
New Revision: 9694
Added:
trunk/framework/impl/src/main/java/org/ajax4jsf/io/SAXResponseWriter.java
trunk/framework/impl/src/main/java/org/ajax4jsf/io/XMLResponseWriterState.java
Log:
Import Sax response writer
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/io/SAXResponseWriter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/io/SAXResponseWriter.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/io/SAXResponseWriter.java 2008-07-18 17:37:17 UTC (rev 9694)
@@ -0,0 +1,547 @@
+/*
+ * Created on 07.10.2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.ajax4jsf.io;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.ResponseWriter;
+
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * @author shura
+ *
+ * Realization of Faces <code>ResponseWriter</code> for Cocoon Environment.
+ * Use ONLY Markup-specific calls , send it as SAX events to
+ * <code>XMLConsumer</code> Use "State" pattern for control of events flow.
+ * TODO - implement namespace capabilites
+ *
+ */
+public class SAXResponseWriter extends ResponseWriter {
+
+ /**
+ * As we in XML framework, only xml supported for <code>CONTENT_TYPE</code>
+ */
+ static final private String CONTENT_TYPE = "text/xml";
+
+ /**
+ * As we in XML framework, only UTF-8 supported for
+ * <code>CHARTER_ENCODING</code>
+ */
+ static final private String CHARTER_ENCODING = "UTF-8";
+
+ /**
+ * Hold Cocoon Generator XML <code>consumer</code>
+ */
+ private ContentHandler xmlConsumer;
+
+ private LexicalHandler xmlLexicalHandler = null;
+
+ private String namespaceURI = "http://www.w3.org/1999/xhtml";
+
+ private String element;
+
+ private AttributesImpl attributes;
+
+ private XMLResponseWriterState state;
+
+ /**
+ * Before StartDocument or after EndDocument <code>notDocumentState</code>
+ */
+ private XMLResponseWriterState notDocumentState;
+
+ /**
+ * State in normal document <code>inDocumentState</code>
+ */
+ private XMLResponseWriterState inDocumentState;
+
+ private XMLResponseWriterState cdataState;
+
+ /**
+ * State after startElement. Collect Attributes for SAX startElement
+ * <code>elementState</code>
+ */
+ private XMLResponseWriterState elementState;
+
+ /**
+ * @param consumer -
+ * SAX events receiver for Cocoon pipeline.
+ */
+ public SAXResponseWriter(ContentHandler consumer) {
+ super();
+ this.xmlConsumer = consumer;
+ if (consumer instanceof LexicalHandler) {
+ xmlLexicalHandler = (LexicalHandler) consumer;
+ }
+ // Initialise states. May be must implemented in static block ?
+ this.notDocumentState = new NotDocumentState();
+ // inside document. allow any events exclude attributes and
+ // startDocument.
+ this.inDocumentState = new InDocumentState();
+ this.cdataState = new CDATAState();
+ // In element, collect attributes ...
+ this.elementState = new ElementState();
+ this.state = notDocumentState;
+ }
+
+ /**
+ * @return Returns the namespaceURI.
+ */
+ public String getNamespaceURI() {
+ return namespaceURI;
+ }
+
+ /**
+ * @param namespaceURI The namespaceURI to set.
+ */
+ public void setNamespaceURI(String namespaceURI) {
+ this.namespaceURI = namespaceURI;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#getContentType()
+ */
+ public String getContentType() {
+ return CONTENT_TYPE;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#getCharacterEncoding()
+ */
+ public String getCharacterEncoding() {
+ return CHARTER_ENCODING;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.Flushable#flush()
+ */
+ public void flush() throws IOException {
+ // DO NOTHING...
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#startDocument()
+ */
+ public void startDocument() throws IOException {
+ state.startDocument();
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#endDocument()
+ */
+ public void endDocument() throws IOException {
+ state.endDocument();
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#startElement(java.lang.String,
+ * javax.faces.component.UIComponent)
+ */
+ public void startElement(String name, UIComponent component)
+ throws IOException {
+ state.startElement(name, component);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#endElement(java.lang.String)
+ */
+ public void endElement(String name) throws IOException {
+ state.endElement(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#writeAttribute(java.lang.String,
+ * java.lang.Object, java.lang.String)
+ */
+ public void writeAttribute(String name, Object value, String property)
+ throws IOException {
+ state.writeAttribute(name, value, property);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#writeURIAttribute(java.lang.String,
+ * java.lang.Object, java.lang.String)
+ */
+ public void writeURIAttribute(String name, Object value, String property)
+ throws IOException {
+ state.writeURIAttribute(name, value, property);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#writeComment(java.lang.Object)
+ */
+ public void writeComment(Object comment) throws IOException {
+ state.writeComment(comment);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#writeText(java.lang.Object,
+ * java.lang.String)
+ */
+ public void writeText(Object text, String property) throws IOException {
+ state.writeText(text, property);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#writeText(char[], int, int)
+ */
+ public void writeText(char[] text, int off, int len) throws IOException {
+ state.writeText(text, off, len);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.faces.context.ResponseWriter#cloneWithWriter(java.io.Writer)
+ */
+ public ResponseWriter cloneWithWriter(Writer writer) {
+ // TODO as used XML consumer to get sax Events, we simple return current
+ // instance.
+ // if will used wrapper to combine XML Consumer with plain Servlet
+ // responce writer, must
+ // perform real clone ...
+ // We can use org.apache.cocoon.xml.SaxBuffer;
+ return this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.Writer#write(char[], int, int)
+ */
+ public void write(char[] cbuf, int off, int len) throws IOException {
+ state.writeText(cbuf, off, len);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.Closeable#close()
+ */
+ public void close() throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ // Private classes
+ /**
+ * @author shura
+ *
+ * state before startDocument - only allow startDocument.
+ */
+ private final class NotDocumentState extends XMLResponseWriterState {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#startDocument()
+ */
+ void startDocument() throws IOException {
+ try {
+ //
+ xmlConsumer.startDocument();
+ } catch (SAXException e) {
+ //
+ throw new IOException("StartDocument SAX exception :"
+ + e.getMessage());
+ } finally {
+ state = inDocumentState;
+ }
+ }
+ }
+
+ /**
+ * @author shura
+ *
+ * State in regular document. Disabled attributes & startDocument.
+ */
+ private final class InDocumentState extends XMLResponseWriterState {
+ void startElement(String name, UIComponent component) {
+ element = name;
+ attributes = new AttributesImpl();
+ state = elementState;
+
+ }
+
+ void writeComment(Object comment) throws IOException {
+ String remark = comment.toString();
+ try {
+ xmlLexicalHandler.comment(remark.toCharArray(), 0, remark.length());
+ } catch (SAXException e) {
+ throw new IOException("Comment SAX exception :"
+ + e.getMessage());
+ }
+ }
+
+ void writeText(Object o, String property) throws IOException {
+ writeText(o.toString().toCharArray(), 0, o.toString().length());
+ }
+
+ void writeText(char[] text, int start, int lenght) throws IOException {
+ // try {
+ // xmlConsumer.startCDATA();
+ // } catch (SAXException e) {
+ // throw new IOException("Sax exceptions in writeText: "+
+ // e.getMessage());
+ // } finally {
+ state = cdataState;
+ // }
+ state.writeText(text, start, lenght);
+ }
+
+ void endElement(String name) throws IOException {
+ try {
+ xmlConsumer.endElement(getNamespaceURI(), name, name);
+ } catch (SAXException e) {
+ throw new IOException("Sax exceptions in endElement: "
+ + e.getMessage());
+ }
+ }
+
+ void endDocument() throws IOException {
+ try {
+ xmlConsumer.endDocument();
+ } catch (SAXException e) {
+ throw new IOException("Sax exceptions in endDocument"
+ + e.getMessage());
+ } finally {
+ // after endDocument all events disabled ...
+ state = new XMLResponseWriterState();
+ }
+ }
+ }
+
+ /**
+ * @author shura State in element declsration. Collect attributes, on any
+ * other eventss - generate SAX startElement()
+ */
+ private final class ElementState extends XMLResponseWriterState {
+ /**
+ * Generate SAX StartElement event
+ *
+ * @throws IOException
+ */
+ void flushElement() throws IOException {
+ try {
+ xmlConsumer.startElement(getNamespaceURI(), element, element, attributes);
+ } catch (SAXException e) {
+ throw new IOException("Exception in startElement: "
+ + e.getMessage());
+ } finally {
+ element = null;
+ attributes = null;
+ }
+ }
+
+ void writeAttribute(String name, Object value, String property)
+ throws IOException {
+ attributes.addAttribute(getNamespaceURI(), name, name, "id".equalsIgnoreCase(name)?"ID":"CDATA", value.toString());
+ }
+
+ void writeURIAttribute(String name, Object value, String property)
+ throws IOException {
+ String uri = value.toString();
+ // TODO - perform encodeActionURL() or ???
+ attributes.addAttribute(getNamespaceURI(), name, name, "CDATA", uri);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#endElement(java.lang.String)
+ */
+ void endElement(String name) throws IOException {
+ //
+ flushElement();
+ state = inDocumentState;
+ state.endElement(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#startElement(java.lang.String,
+ * javax.faces.component.UIComponent)
+ */
+ void startElement(String name, UIComponent component)
+ throws IOException {
+ //
+ flushElement();
+ element = name;
+ attributes = new AttributesImpl();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeComment(java.lang.Object)
+ */
+ void writeComment(Object comment) throws IOException {
+ // TODO Auto-generated method stub
+ flushElement();
+ state = inDocumentState;
+ state.writeComment(comment);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeText(char[],
+ * int, int)
+ */
+ void writeText(char[] text, int off, int len) throws IOException {
+ // TODO Auto-generated method stub
+ flushElement();
+ state = cdataState;
+ state.writeText(text, off, len);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeText(java.lang.Object,
+ * java.lang.String)
+ */
+ void writeText(Object text, String property) throws IOException {
+ // TODO Auto-generated method stub
+ flushElement();
+ state = cdataState;
+ state.writeText(text, property);
+ }
+ }
+
+ /**
+ * @author shura
+ *
+ * CDATA section. allow regular write() functions, write any text.
+ */
+ private final class CDATAState extends XMLResponseWriterState {
+
+ void flushCDATA() throws IOException {
+ // try {
+ // xmlConsumer.endCDATA();
+ // } catch (SAXException e) {
+ // throw new IOException("Exception in endCDATA: "+ e.getMessage());
+ // }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#endDocument()
+ */
+ void endDocument() throws IOException {
+ flushCDATA();
+ state = inDocumentState;
+ state.endDocument();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#endElement(java.lang.String)
+ */
+ void endElement(String name) throws IOException {
+ flushCDATA();
+ state = inDocumentState;
+ state.endElement(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#startElement(java.lang.String,
+ * javax.faces.component.UIComponent)
+ */
+ void startElement(String name, UIComponent component)
+ throws IOException {
+ flushCDATA();
+ element = name;
+ attributes = new AttributesImpl();
+ state = elementState;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeComment(java.lang.Object)
+ */
+ void writeComment(Object comment) throws IOException {
+ flushCDATA();
+ state = inDocumentState;
+ state.writeComment(comment);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeText(char[],
+ * int, int)
+ */
+ void writeText(char[] text, int off, int len) throws IOException {
+ try {
+ xmlConsumer.characters(text, off, len);
+ } catch (SAXException e) {
+ throw new IOException("Sax exceptions in writeText: "
+ + e.getMessage());
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#writeText(java.lang.Object,
+ * java.lang.String)
+ */
+ void writeText(Object text, String property) throws IOException {
+ writeText(text.toString().toCharArray(), 0, text.toString()
+ .length());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.cocoon.components.faces.context.XMLResponseWriterState#write(char[],
+ * int, int)
+ */
+ void write(char[] cbuf, int off, int len) throws IOException {
+ writeText(cbuf, off, len);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/framework/impl/src/main/java/org/ajax4jsf/io/SAXResponseWriter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/io/XMLResponseWriterState.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/io/XMLResponseWriterState.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/io/XMLResponseWriterState.java 2008-07-18 17:37:17 UTC (rev 9694)
@@ -0,0 +1,115 @@
+/*
+ * Created on 07.10.2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.ajax4jsf.io;
+
+import java.io.IOException;
+
+import javax.faces.component.UIComponent;
+
+/**
+ * @author shura Class to implement state pattern for
+ * <code>ResponseWriter</code> Real states must extend this. By
+ * default, block any events, ignore output.
+ *
+ */
+class XMLResponseWriterState {
+ // private ResponseWriter writer;
+ /**
+ * @throws java.io.IOException
+ */
+ void endDocument() throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param name
+ * @throws java.io.IOException
+ */
+ void endElement(String name) throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @throws java.io.IOException
+ */
+ void startDocument() throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param name
+ * @param component
+ * @throws java.io.IOException
+ */
+ void startElement(String name, UIComponent component) throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param name
+ * @param value
+ * @param property
+ * @throws java.io.IOException
+ */
+ void writeAttribute(String name, Object value, String property)
+ throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param comment
+ * @throws java.io.IOException
+ */
+ void writeComment(Object comment) throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param text
+ * @param off
+ * @param len
+ * @throws java.io.IOException
+ */
+ void writeText(char[] text, int off, int len) throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param text
+ * @param property
+ * @throws java.io.IOException
+ */
+ void writeText(Object text, String property) throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ * @param name
+ * @param value
+ * @param property
+ * @throws java.io.IOException
+ */
+ void writeURIAttribute(String name, Object value, String property)
+ throws IOException {
+ throw new IOException("Illegal state for this method");
+ }
+
+ /**
+ *
+ * Main hook for realise <code>Writer</code>. In document writed as
+ * comment, outside of document do nothing ....
+ *
+ * @param cbuf
+ * @param off
+ * @param len
+ * @throws IOException
+ */
+ void write(char[] cbuf, int off, int len) throws IOException {
+ // DO NOTHING
+
+ }
+}
\ No newline at end of file
Property changes on: trunk/framework/impl/src/main/java/org/ajax4jsf/io/XMLResponseWriterState.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
16 years, 2 months