[rhmessaging-commits] rhmessaging commits: r2252 - mgmt/trunk/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Aug 5 16:57:22 EDT 2008


Author: eallen
Date: 2008-08-05 16:57:21 -0400 (Tue, 05 Aug 2008)
New Revision: 2252

Modified:
   mgmt/trunk/cumin/python/cumin/widgets.py
Log:
Changed BindingSet to a CuminTable to allow for active/idle/deleted
Fixed bug with Durable/Exclusive/AutoDelete fields
Added FilteredCheckboxIdSet to not allow removing of built-in exchanges

Modified: mgmt/trunk/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.py	2008-08-05 20:52:35 UTC (rev 2251)
+++ mgmt/trunk/cumin/python/cumin/widgets.py	2008-08-05 20:57:21 UTC (rev 2252)
@@ -5,7 +5,7 @@
 from wooly.widgets import *
 from wooly.forms import *
 from wooly.tables import *
-from mint import *
+from mint.schema import *
 
 from parameters import *
 from charts import *
@@ -185,7 +185,8 @@
             return self.parent.render_submit_content(session, *cargs)
 
 class CuminFieldForm(CuminForm, FieldForm, Frame):
-    pass
+    def render_form_error(self, session, *args):
+        pass
 
 class CuminConfirmForm(CuminForm):
     def __init__(self, app, name):
@@ -227,6 +228,10 @@
 
     def render_item_content(self, session, id):
         return "Act on object %i" % id
+    
+    def render_form_heading(self, session, *args):
+        return "Actions"
+        
 
 class CuminStatus(Widget):
     def get_args(self, session):
@@ -462,46 +467,61 @@
     def render_item_content(self, session, group):
         return group.name
 
-class BindingSet(PaginatedItemSet):
+class BindingSet(CuminTable):
     def __init__(self, app, name):
         super(BindingSet, self).__init__(app, name)
 
-    def render_title(self, session, *args):
-        return "Bindings"
+        self.ids = CheckboxIdColumn(app, "id", self)
+        self.add_column(self.ids)
+        
+        col = self.get_name_col(app)
+        self.add_column(col)
 
-    def get_item_count(self, session, *args):
-        return Binding.select().count()
+        col = self.KeyColumn(app, "key")
+        self.add_column(col)
 
-    def do_get_items(self, session, *args):
-        start, end = self.get_bounds(session)
-        return Binding.select()[start:end]
+        col = self.RateColumn(app, "rate")
+        col.alignment = "right"
+        self.add_column(col)
 
-    def render_item_binding_key(self, session, binding):
-        return binding.bindingKey
+        col = self.MatchedColumn(app, "matched")
+        col.alignment = "right"
+        self.add_column(col)
+        
+        self.phase = PhaseSwitch(app, "phase")
+        self.add_child(self.phase)
 
-    def render_item_messages_matched(self, session, binding):
-        return self.app.model.binding.msgMatched.value(binding)
+    def get_args(self, session):
+        obj = self.frame.get_object(session)
+        return (obj,)
+    
+    def get_name_col(self):
+        # implemented in derived class
+        pass
+    
+    def get_sql_values(self, session, obj):
+        return {"id": obj.id}
 
-    def render_item_messages_matched_rate(self, session, binding):
-        return self.app.model.binding.msgMatched.rate_html(binding)
+    class KeyColumn(SqlTableColumn):
+        def render_title(self, session, data):
+            return "Key"
 
-class RouteSet(PaginatedItemSet):
-    def __init__(self, app, name):
-        super(RouteSet, self).__init__(app, name)
+    class RateColumn(ItemTableColumn):
+        def render_title(self, session, data):
+            return "Message Rate"
 
-    def render_title(self, session, *args):
-        return "Routes"
+        def render_content(self, session, data):
+            binding = Binding.get(data["id"])
+            return self.app.model.binding.msgMatched.rate_html(binding)
 
-    def get_item_count(self, session, *args):
-        return Bridge.select().count()
+    class MatchedColumn(ItemTableColumn):
+        def render_title(self, session, data):
+            return "Messages Matched"
+            
+        def render_content(self, session, data):
+            binding = Binding.get(data["id"])
+            return self.app.model.binding.msgMatched.value(binding)
 
-    def do_get_items(self, session, *args):
-        start, end = self.get_bounds(session)
-        return Bridge.select()[start:end]
-
-    def render_item_route_key(self, session, route):
-        return route.key
-
 class CheckboxIdColumn(SqlTableColumn):
     def __init__(self, app, name, form):
         super(CheckboxIdColumn, self).__init__(app, name)
@@ -536,6 +556,20 @@
     def render_elem_name(self, session, *args):
         return self.column.ids.path
 
+class FilteredCheckboxIdColumn(CheckboxIdColumn):
+    def __init__(self, app, name, form, col_name, skip_list):
+        super(FilteredCheckboxIdColumn, self).__init__(app, name, form)
+        
+        # list of names to skip putting a checkbox by
+        self.__skip_list = skip_list
+        self.__col_name = col_name
+
+    def do_render(self, session, data):
+        if data[self.__col_name] in self.__skip_list:
+            return "<td></td>"
+        else:
+            return super(FilteredCheckboxIdColumn, self).do_render(session, data)
+
 class NameField(StringField):
     def __init__(self, app, name, form):
         super(NameField, self).__init__(app, name, form)
@@ -619,8 +653,13 @@
         self.add_parameter(param)
         self.set_parameter(param)
 
-        self.add_option(self.Durable(app, "durable", form))
-        self.add_option(self.Transient(app, "transient", form))
+        option = self.Durable(app, "durable", form)
+        option.set_value(param.default)
+        self.add_option(option)
+        
+        option = self.Transient(app, "transient", form)
+        option.set_value("transient")
+        self.add_option(option)
 
     def render_title(self, session):
         return "Durable?"
@@ -648,8 +687,13 @@
         self.add_parameter(param)
         self.set_parameter(param)
 
-        self.add_option(self.Exclusive(app, "exclusive", form))
-        self.add_option(self.NonExclusive(app, "non-exclusive", form))
+        option = self.Exclusive(app, "exclusive", form)
+        option.set_value(param.default)
+        self.add_option(option)
+        
+        option = self.NonExclusive(app, "non-exclusive", form)
+        option.set_value("non-exclusive")
+        self.add_option(option)
 
     def render_title(self, session):
         return "Exclusive?"
@@ -677,9 +721,14 @@
         self.add_parameter(param)
         self.set_parameter(param)
 
-        self.add_option(self.AutoDel(app, "autodel", form))
-        self.add_option(self.Preserve(app, "preserve", form))
+        option = self.AutoDel(app, "autodel", form)
+        option.set_value(param.default)
+        self.add_option(option)
 
+        option = self.Preserve(app, "preserve", form)
+        option.set_value("preserve")
+        self.add_option(option)
+
     def render_title(self, session):
         return "Auto-Delete?"
 




More information about the rhmessaging-commits mailing list