[rhmessaging-commits] rhmessaging commits: r1515 - mgmt/cumin/python/wooly.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Tue Dec 18 11:30:55 EST 2007
Author: justi9
Date: 2007-12-18 11:30:55 -0500 (Tue, 18 Dec 2007)
New Revision: 1515
Modified:
mgmt/cumin/python/wooly/__init__.py
Log:
Fixes the build up of error state between requests.
Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py 2007-12-18 16:25:59 UTC (rev 1514)
+++ mgmt/cumin/python/wooly/__init__.py 2007-12-18 16:30:55 UTC (rev 1515)
@@ -9,11 +9,91 @@
strings = StringCatalog(__file__)
+class Attribute(object):
+ def __init__(self, app, name):
+ self.app = app
+ self.name = name
+ self.widget = None
+ self.default = None
+ self.is_required = True
+
+ self.__path = None
+
+ def path(self):
+ if self.__path == None:
+ if not self.widget.parent():
+ self.__path = self.name
+ else:
+ self.__path = self.widget.path() + "." + self.name
+
+ return self.__path
+
+ def set_required(self, is_required):
+ self.is_required = is_required
+
+ def validate(self, session):
+ value = self.get(session)
+
+ if value == None and self.is_required:
+ raise Exception("%s not set" % str(self))
+
+ def get(self, session):
+ value = session.get(self.path())
+
+ # Use strict test because empty collections are False
+ if value == None:
+ default = self.get_default(session)
+
+ if default != None:
+ value = self.set(session, default)
+
+ return value
+
+ def add(self, session, value):
+ self.set(session, value)
+
+ def set(self, session, value):
+ return session.set(self.path(), value)
+
+ def get_default(self, session):
+ return self.default
+
+ def set_default(self, default):
+ self.default = default
+
+ def __str__(self):
+ return "%s '%s'" % (self.__class__.__name__, self.path())
+
+class Parameter(Attribute):
+ def __init__(self, app, name):
+ super(Parameter, self).__init__(app, name)
+
+ self.is_collection = False
+
+ app.add_parameter(self)
+
+ def marshal(self, object):
+ if object == None:
+ string = ""
+ else:
+ string = self.do_marshal(object)
+
+ return string
+
+ def do_marshal(self, object):
+ return str(object)
+
+ def unmarshal(self, string):
+ return self.do_unmarshal(string)
+
+ def do_unmarshal(self, string):
+ return string
+
class Widget(object):
def __init__(self, app, name):
self.app = app
- self.__name = name
- self.__parent = None
+ self.__name = name # XXX undo this
+ self.__parent = None # XXX undo this
self.children = list()
self.attributes = list()
self.parameters = list()
@@ -22,8 +102,7 @@
self.__errors_tmpl = Template(self, "errors_html")
self.__error_message_tmpl = Template(self, "error_message_html")
- self.errors = Attribute(app, "errors")
- self.errors.set_default(list())
+ self.errors = self.ErrorsAttribute(app, "errors")
self.add_attribute(self.errors)
self.__ancestors = None
@@ -38,6 +117,10 @@
if cls is Widget:
break
+ class ErrorsAttribute(Attribute):
+ def get_default(self, session):
+ return list()
+
def name(self):
return self.__name
@@ -220,86 +303,6 @@
def __str__(self):
return "%s '%s'" % (self.__class__.__name__, self.path())
-class Attribute(object):
- def __init__(self, app, name):
- self.app = app
- self.name = name
- self.widget = None
- self.default = None
- self.is_required = True
-
- self.__path = None
-
- def path(self):
- if self.__path == None:
- if not self.widget.parent():
- self.__path = self.name
- else:
- self.__path = self.widget.path() + "." + self.name
-
- return self.__path
-
- def set_required(self, is_required):
- self.is_required = is_required
-
- def validate(self, session):
- value = self.get(session)
-
- if value == None and self.is_required:
- raise Exception("%s not set" % str(self))
-
- def get(self, session):
- value = session.get(self.path())
-
- # Use strict test because empty collections are False
- if value == None:
- default = self.get_default(session)
-
- if default != None:
- value = self.set(session, default)
-
- return value
-
- def add(self, session, value):
- self.set(session, value)
-
- def set(self, session, value):
- return session.set(self.path(), value)
-
- def get_default(self, session):
- return self.default
-
- def set_default(self, default):
- self.default = default
-
- def __str__(self):
- return "%s '%s'" % (self.__class__.__name__, self.path())
-
-class Parameter(Attribute):
- def __init__(self, app, name):
- super(Parameter, self).__init__(app, name)
-
- self.is_collection = False
-
- app.add_parameter(self)
-
- def marshal(self, object):
- if object == None:
- string = ""
- else:
- string = self.do_marshal(object)
-
- return string
-
- def do_marshal(self, object):
- return str(object)
-
- def unmarshal(self, string):
- return self.do_unmarshal(string)
-
- def do_unmarshal(self, string):
- return string
-
class Frame(Widget):
def get_saved_parameters(self, session):
frame = self.page().get_current_frame(session)
More information about the rhmessaging-commits
mailing list