[rhmessaging-commits] rhmessaging commits: r1750 - mgmt/cumin/python/wooly.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Mon Mar 3 10:32:36 EST 2008
Author: justi9
Date: 2008-03-03 10:32:36 -0500 (Mon, 03 Mar 2008)
New Revision: 1750
Modified:
mgmt/cumin/python/wooly/tables.py
mgmt/cumin/python/wooly/tables.strings
Log:
Render table headers using a distinct widget, so that the rendering
can be changed by different column implementations.
Modified: mgmt/cumin/python/wooly/tables.py
===================================================================
--- mgmt/cumin/python/wooly/tables.py 2008-03-03 13:33:49 UTC (rev 1749)
+++ mgmt/cumin/python/wooly/tables.py 2008-03-03 15:32:36 UTC (rev 1750)
@@ -12,6 +12,7 @@
self.cell_tmpl = Template(self, "cell_html")
self.columns = list()
+ self.headers_by_column = dict()
self.scolumn = Parameter(app, "col")
self.add_parameter(self.scolumn)
@@ -24,9 +25,16 @@
self.columns.append(column)
self.add_child(column)
+ header = column.header_class(self.app, "head", column)
+ self.set_header(column, header)
+
if self.scolumn.default is None:
self.scolumn.default = column.name
+ def set_header(self, column, header):
+ self.headers_by_column[column] = header
+ self.add_child(header)
+
def get_selected_column(self, session):
name = self.scolumn.get(session)
for column in self.columns:
@@ -52,32 +60,11 @@
writer = Writer()
for column in self.columns:
- self.header_html.render(session, (column, object), writer)
+ header = self.headers_by_column[column]
+ writer.write(header.render(session, object))
return writer.to_string()
- #def render_header_class(self, session, column):
- # return " ".join(column.get_classes(session))
-
- def render_header_href(self, session, args):
- column, object = args
- branch = session.branch()
-
- if column.name == self.scolumn.get(session):
- self.reversed.set(branch, not self.reversed.get(session))
-
- self.scolumn.set(branch, column.name)
-
- return branch.marshal()
-
- def render_header_content(self, session, args):
- column, object = args
- return column.get_title(session, object)
-
- def render_header_class_attr(self, session, args):
- column, object = args
- return column.get_class_attr(session)
-
def render_cells(self, session, item):
writer = Writer()
@@ -95,6 +82,7 @@
def __init__(self, app, name):
super(ItemTableColumn, self).__init__(app, name)
+ self.header_class = ItemTableColumnHeader
self.alignment = None
def get_column_key(self, session):
@@ -114,6 +102,29 @@
def render_value(self, session, value):
return str(value)
+class ItemTableColumnHeader(Widget):
+ def __init__(self, app, name, column):
+ super(ItemTableColumnHeader, self).__init__(app, name)
+
+ self.column = column
+
+ def render_href(self, session, object):
+ branch = session.branch()
+
+ if self.column.name == self.parent.scolumn.get(session):
+ self.parent.reversed.set(branch,
+ not self.parent.reversed.get(session))
+
+ self.parent.scolumn.set(branch, self.column.name)
+
+ return branch.marshal()
+
+ def render_content(self, session, object):
+ return self.column.get_title(session, object)
+
+ def render_class_attr(self, session, args):
+ return self.column.get_class_attr(session)
+
class SqlTable(ItemTable):
def __init__(self, app, name):
super(SqlTable, self).__init__(app, name)
Modified: mgmt/cumin/python/wooly/tables.strings
===================================================================
--- mgmt/cumin/python/wooly/tables.strings 2008-03-03 13:33:49 UTC (rev 1749)
+++ mgmt/cumin/python/wooly/tables.strings 2008-03-03 15:32:36 UTC (rev 1750)
@@ -4,8 +4,8 @@
<tbody>{items}</tbody>
</table>
-[ItemTable.header_html]
-<th {header_class_attr}><a href="{header_href}">{header_content}</a></th>
-
[ItemTable.item_html]
<tr>{cells}</tr>
+
+[ItemTableColumnHeader.html]
+<th {class_attr}><a href="{href}">{content}</a></th>
More information about the rhmessaging-commits
mailing list