[Engine-patches] Change in ovirt-engine[master]: webadmin, userportal: Resizable table columns (#767924)
vszocs at redhat.com
vszocs at redhat.com
Mon Jun 11 09:52:42 EDT 2012
Vojtech Szocs has uploaded a new change for review.
Change subject: webadmin,userportal: Resizable table columns (#767924)
......................................................................
webadmin,userportal: Resizable table columns (#767924)
https://bugzilla.redhat.com/767924
This patch introduces resizable table columns feature into gwt-common
module, which makes it available for both WebAdmin and UserPortal.
Table columns can now be resized (have their widths changed) by dragging
their right-hand border using mouse. Each resizable column has a 'resize
bar area' on the right-hand side of its header. Whenever mouse hovers
over this area, mouse cursor changes shape to indicate that column resize
operation can take place.
The implementation is suitable for HTML tables with 'table-layout:fixed'
and 'width:100%' CSS attributes. The 'width:100%' causes the table to
have its columns stretched (or shrinked) by the browser according to
actual table display width. Resizable column implementation therefore
needs to recalculate proportional column width from mouse move delta
on each mouse move event. In addition, 'width:100%' makes all column
widths act as 'weights' (proportional widths) for the overall table
display width. Because of this, the sum of all column widths needs to be
preserved during resize operation. This is solved by distributing column
width delta equally among other columns during resize operation.
Furthermore, this implementation adds following features:
1. double-clicking column resize bar area causes the column to have its
width reverted back to original value (reset column width)
2. support minimum column width (avoid hiding columns by resizing them
to zero width)
3. visually highlight column header during resize operation
However, there is one limitation:
Each column MUST have an explicit width defined in pixel (PX) units.
This feature is turned off by default. Following code shows how to turn
it on.
void initTable() {
getTable().enableColumnResizing(); // must be called before adding columns
getTable().addColumn(columnOne, "Foo", "50px"); // explicit PX width
getTable().addColumn(columnTwo, "Bar", "200px"); // explicit PX width
...
}
Currently, only AbstractActionTable supports resizable table columns.
This means that column resizing can be currently enabled for main and sub
tab tables. However, it should be easy for other table widgets to
implement the HasResizableColumns interface.
Tested on FireFox 10 and Internet Explorer 8.
Change-Id: Idbb8c32e1858a6e7810d1af9a82166e3790803f8
Signed-off-by: Vojtech Szocs <vszocs at redhat.com>
---
M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/AbstractActionTable.java
A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ColumnResizeHandler.java
A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/HasResizableColumns.java
A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ResizableHeader.java
A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/table/resize/ResizableHeaderCell.java
M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/css/PopupCellTable.css
M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/css/TabCellTable.css
M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java
8 files changed, 456 insertions(+), 129 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/5243/1
--
To view, visit http://gerrit.ovirt.org/5243
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idbb8c32e1858a6e7810d1af9a82166e3790803f8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vojtech Szocs <vszocs at redhat.com>
More information about the Engine-patches
mailing list