From: <chi...@us...> - 2008-09-20 02:20:48
|
Revision: 8331 http://wonder.svn.sourceforge.net/wonder/?rev=8331&view=rev Author: chillatgvc Date: 2008-09-20 01:32:12 +0000 (Sat, 20 Sep 2008) Log Message: ----------- Added dragHeaderOnly option so that entire column is not draggable. This is a bit more standard and makes copying data out of cells easier. Modified Paths: -------------- trunk/Wonder/Frameworks/Ajax/Ajax/Sources/er/ajax/AjaxGrid.java trunk/Wonder/Frameworks/Ajax/Ajax/WebServerResources/AjaxGrid.js Modified: trunk/Wonder/Frameworks/Ajax/Ajax/Sources/er/ajax/AjaxGrid.java =================================================================== --- trunk/Wonder/Frameworks/Ajax/Ajax/Sources/er/ajax/AjaxGrid.java 2008-09-20 01:30:04 UTC (rev 8330) +++ trunk/Wonder/Frameworks/Ajax/Ajax/Sources/er/ajax/AjaxGrid.java 2008-09-20 01:32:12 UTC (rev 8331) @@ -60,6 +60,8 @@ * selectedRowCSSStyle = "background:lightyellow;"; // Secondary CSS style attribute on selected rows, optional * unselectedRowCSSStyle = "background:lightgrey;";// Secondary CSS style attribute on unselected rows, optional * canReorder = true; // Enables (or disables) drag and drop reordering of columns + * dragHeaderOnly = true; // Optional, defaults to false, true if only the title/header cells can + * // be dragged to re-order columns * batchSize = 10; // Controls size of batch in display group, use zero for no batching * rowIdentifier = adKey; // Optional, key path into row returning a unique identifier for the row * // rowIdentifier is used to build HTML ID attributes, so a String or Number works best @@ -293,6 +295,7 @@ public static final String TABLE_ID = "tableID"; public static final String ROW_IDENTIFIER = "rowIdentifier"; public static final String CAN_REORDER = "canReorder"; + public static final String DRAG_HEADER_ONLY = "dragHeaderOnly"; public static final String SOURCE_COLUMN_FORM_VALUE = "sourceColumn"; public static final String DESTINATION_COLUMN_FORM_VALUE = "destinationColumn"; public static final String FORMATTER_CLASS = "formatterClass"; @@ -415,10 +418,20 @@ * @return JavaScript to initialize drag and drop on the grid */ public String initScript() { - return canReorder() ? "<script type=\"text/javascript\">AjaxGrid.ajaxGrid_init('" + tableID() + "');</script>" : null; + + return canReorder() ? "<script type=\"text/javascript\">AjaxGrid.ajaxGrid_init('" + tableID() + "', " + dragHeaderOnly() + ");</script>" : null; } /** + * @return the value for the DRAG_HEADER_ONLY configuration item with a default of false + */ + public String dragHeaderOnly() + { + String dragHeaderOnly = (String) configurationData().objectForKey(DRAG_HEADER_ONLY); + return dragHeaderOnly == null ? "false" : dragHeaderOnly; + } + + /** * Binding value for onRefreshComplete function of AjaxUpdate container. * Returns the value from the AFTER_UPDATE_BINDING followed by * enableDragAndDrop(). @@ -438,7 +451,7 @@ * @return ajaxGrid_init(TABLE); */ public String enableDragAndDrop() { - return canReorder() ? "AjaxGrid.ajaxGrid_init('" + tableID() + "');" : ""; + return canReorder() ? "AjaxGrid.ajaxGrid_init('" + tableID() + "', " + dragHeaderOnly() + ");" : ""; } /** Modified: trunk/Wonder/Frameworks/Ajax/Ajax/WebServerResources/AjaxGrid.js =================================================================== --- trunk/Wonder/Frameworks/Ajax/Ajax/WebServerResources/AjaxGrid.js 2008-09-20 01:30:04 UTC (rev 8330) +++ trunk/Wonder/Frameworks/Ajax/Ajax/WebServerResources/AjaxGrid.js 2008-09-20 01:32:12 UTC (rev 8331) @@ -17,18 +17,20 @@ /* * Adds drag and drop support to the table */ - ajaxGrid_init : function(table) { + ajaxGrid_init : function(table, dragHeaderOnly) { table = $(table); - table.onselectstart = function () { return false; } - table.onmousedown = function () { return false; } - table.onmouseup = AjaxGrid.drop; numberOfColumns = table.rows[0].cells.length; tableRows = table.getElementsByTagName("TR"); - - for (row=0; row < tableRows.length; row++) { + numberOfRows = dragHeaderOnly ? 1 : tableRows.length; + + for (row=0; row < numberOfRows; row++) { tds = tableRows[row].cells; for (col=1; col<tds.length; col++) { + tds[col].onselectstart = function () { return false; } + tds[col].onmousedown = function () { return false; } + tds[col].onmouseup = AjaxGrid.drop; + AjaxGrid.drag(tds[col]); tds[col].onmouseover = AjaxGrid.paint; tds[col].onmouseout = AjaxGrid.paint; @@ -95,7 +97,7 @@ // Error and no-op handling // A destinationIndex of -1 means not a table cell and 0 means the left most column which is not dropable if (destinationIndex < 1 || columnIndex == destinationIndex) return - updateServerColumnOrder('sourceColumn=' + columnIndex + '&destinationColumn=' + destinationIndex); + updateServerColumnOrder('sourceColumn=' + columnIndex + '&destinationColumn=' + destinationIndex); for (x=0; x<tableRows.length; x++) { tds = tableRows[x].cells This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |