[rhmessaging-commits] rhmessaging commits: r3362 - mgmt/trunk/cumin/python/cumin/grid.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Wed May 6 15:07:31 EDT 2009
Author: eallen
Date: 2009-05-06 15:07:31 -0400 (Wed, 06 May 2009)
New Revision: 3362
Modified:
mgmt/trunk/cumin/python/cumin/grid/job.py
mgmt/trunk/cumin/python/cumin/grid/job.strings
mgmt/trunk/cumin/python/cumin/grid/limit.py
mgmt/trunk/cumin/python/cumin/grid/limit.strings
mgmt/trunk/cumin/python/cumin/grid/pool.py
Log:
Defer the rendering of JobAds and the Limit Count since they are lengthy method calls.
Modified: mgmt/trunk/cumin/python/cumin/grid/job.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/job.py 2009-05-06 19:06:45 UTC (rev 3361)
+++ mgmt/trunk/cumin/python/cumin/grid/job.py 2009-05-06 19:07:31 UTC (rev 3362)
@@ -709,19 +709,57 @@
property = item["property"]
return property.description
+class JobAdsGroups(Widget):
+ def __init__(self, app, name):
+ super(JobAdsGroups, self).__init__(app, name)
+
+ self.group_tmpl = Template(self, "group_html")
+
+ def render_groups(self, session):
+ job = self.frame.get_args(session)[0]
+ groups = self.app.model.get_ad_groups()
+ writer = Writer()
+ for group in groups:
+ self.group_tmpl.render(writer, session, (job, group,))
+ return writer.to_string()
+
+ def render_group_name(self, session, args):
+ return args[1]
+
+ def render_properties(self, session, *args):
+ items = self.parent.do_get_items(session, *args)
+ writer = Writer()
+
+ for item in items:
+ self.parent.item_renderer.render(writer, session, item)
+
+ return writer.to_string()
+
class JobAdsViewer(JobAdsSet):
def __init__(self, app, name):
super(JobAdsViewer, self).__init__(app, name)
- self.group_tmpl = Template(self, "group_html")
self.item_renderer = JobPropertyRenderer(self, "property_html")
+ self.groups = JobAdsGroups(app, "groups");
+ self.add_child(self.groups)
+
+ self.wait = Wait(app, "wait")
+ self.add_child(self.wait)
+
+ self.defer_enabled = True
+
def get_args(self, session):
return self.frame.get_args(session)
def render_title(self, session, job):
return "Attributes"
+ def render_edit_ads_url(self, session, job):
+ branch = session.branch()
+ self.frame.show_ads_edit(branch)
+ return branch.marshal()
+
def do_get_items(self, session, args):
job = args[0]
group = args[1]
@@ -739,30 +777,6 @@
return group_items
- def render_properties(self, session, *args):
- items = self.do_get_items(session, *args)
- writer = Writer()
-
- for item in items:
- self.item_renderer.render(writer, session, item)
-
- return writer.to_string()
-
- def render_edit_ads_url(self, session, job):
- branch = session.branch()
- self.frame.show_ads_edit(branch)
- return branch.marshal()
-
- def render_groups(self, session, job):
- groups = self.app.model.get_ad_groups()
- writer = Writer()
- for group in groups:
- self.group_tmpl.render(writer, session, (job, group,))
- return writer.to_string()
-
- def render_group_name(self, session, args):
- return args[1]
-
class JobAdsEditor(CuminForm, JobAdsViewer):
def __init__(self, app, name):
super(JobAdsEditor, self).__init__(app, name)
Modified: mgmt/trunk/cumin/python/cumin/grid/job.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/job.strings 2009-05-06 19:06:45 UTC (rev 3361)
+++ mgmt/trunk/cumin/python/cumin/grid/job.strings 2009-05-06 19:07:31 UTC (rev 3362)
@@ -229,6 +229,7 @@
[JobAdsViewer.html]
+<div id="{id}">
<ul class="actions">
<li><a class="nav" href="{edit_ads_url}">Edit Attributes</a></li>
</ul>
@@ -244,8 +245,19 @@
<ul class="actions">
<li><a class="nav" href="{edit_ads_url}">Edit Attributes</a></li>
</ul>
+</div>
-[JobAdsViewer.group_html]
+[JobAdsViewer.deferred_html]
+<div id="{id}">
+ {wait}
+</div>
+
+[JobAdsGroups.html]
+<div id="{id}" style="position:relative;">
+ {groups}
+</div>
+
+[JobAdsGroups.group_html]
<div class="sactions">
<h2>{group_name}</h2>
</div>
Modified: mgmt/trunk/cumin/python/cumin/grid/limit.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/limit.py 2009-05-06 19:06:45 UTC (rev 3361)
+++ mgmt/trunk/cumin/python/cumin/grid/limit.py 2009-05-06 19:07:31 UTC (rev 3362)
@@ -90,20 +90,23 @@
return [{"name":x, "curr":limits[x]["CURRENT"], "max":limits[x]["MAX"]} for x in keys]
def render_title(self, session):
- return self.limit_count.get_title(session, "Limits")
+ return self.limit_count.render(session)
- class LimitCount(AjaxField):
- def get_url(self, session):
+ class LimitCount(Widget):
+ def __init__(self, app, name):
+ super(LimitsSet.LimitCount, self).__init__(app, name)
+ self.defer_enabled = True
+
+ def render_count(self, session):
negotiator = self.parent.get_negotiator(session)
- return negotiator and \
- "call.xml?class=negotiator;id=%i;method=GetLimitCount" % negotiator.id
+ action = self.app.model.negotiator.GetLimits
+ limits = action.do_invoke(negotiator)
+ if "timeout" in limits:
+ val = 0
+ else:
+ val = len(limits)
+ return str(val)
- def get_title(self, session, title):
- script = self.render_script(session)
- count = script and "?" or "0"
- return "%s <span id=\"%s\"><span class='count'>(%s)</span>%s</span>" % \
- (title, self.name, count, script)
-
class NameColumn(ItemTableColumn):
def render_title(self, session, data):
return "Name"
Modified: mgmt/trunk/cumin/python/cumin/grid/limit.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/limit.strings 2009-05-06 19:06:45 UTC (rev 3361)
+++ mgmt/trunk/cumin/python/cumin/grid/limit.strings 2009-05-06 19:07:31 UTC (rev 3362)
@@ -12,15 +12,11 @@
</table>
-[LimitCount.javascript]
-function got_limit_count(obj, id) {
- var elem = document.getElementById(id);
+[LimitCount.html]
+<span id="{id}">Limits <span class="count">({count})</span></span>
- if (elem) {
- var str = "<span class='count'>(" + obj.count.value + ")</span>";
- elem.innerHTML = str;
- }
-}
+[LimitCount.deferred_html]
+<span id="{id}">Limits <span class="count">(?)</span></span>
[LimitEdit.css]
form.limitform {
Modified: mgmt/trunk/cumin/python/cumin/grid/pool.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/pool.py 2009-05-06 19:06:45 UTC (rev 3361)
+++ mgmt/trunk/cumin/python/cumin/grid/pool.py 2009-05-06 19:07:31 UTC (rev 3362)
@@ -196,12 +196,9 @@
self.negs = PoolNegotiatorSet(app, "negs")
self.__tabs.add_tab(self.negs)
- limits = self.LimitsTab(app, "limits")
+ limits = LimitsSet(app, "limits")
self.__tabs.add_tab(limits)
- class LimitsTab(LimitsSet):
- pass
-
def set_collector_tab(self, session):
self.colls.show(session)
More information about the rhmessaging-commits
mailing list