add transition event
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2559 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									cd46c0a345
								
							
						
					
					
						commit
						7cd7a574c0
					
				
					 3 changed files with 31 additions and 1 deletions
				
			
		|  | @ -24,10 +24,11 @@ $Id$ | ||||||
| 
 | 
 | ||||||
| from persistent.interfaces import IPersistent | from persistent.interfaces import IPersistent | ||||||
| from persistent.mapping import PersistentMapping | from persistent.mapping import PersistentMapping | ||||||
|  | from zope import component | ||||||
| from zope.component import adapts | from zope.component import adapts | ||||||
| from zope.interface import implements | from zope.interface import implements | ||||||
| 
 | 
 | ||||||
| from cybertools.stateful.interfaces import IStateful | from cybertools.stateful.interfaces import IStateful, IStatefulIndexInfo | ||||||
| from cybertools.stateful.definition import statesDefinitions | from cybertools.stateful.definition import statesDefinitions | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -94,3 +95,19 @@ class StatefulAdapter(Stateful): | ||||||
|         statesAttr[self.statesDefinition] = value |         statesAttr[self.statesDefinition] = value | ||||||
|     state = property(getState, setState) |     state = property(getState, setState) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | class IndexInfo(object): | ||||||
|  | 
 | ||||||
|  |     implements(IStatefulIndexInfo) | ||||||
|  | 
 | ||||||
|  |     availableStatesDefinitions = []     # to be overwritten by subclass! | ||||||
|  | 
 | ||||||
|  |     def __init__(self, context): | ||||||
|  |         self.context = context | ||||||
|  | 
 | ||||||
|  |     @property | ||||||
|  |     def tokens(self): | ||||||
|  |         for std in self.availableStatesDefinitions: | ||||||
|  |             stf = component.getAdapter(self.context, IStateful, name=std) | ||||||
|  |             yield ':'.join((std, stf.state)) | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -107,6 +107,7 @@ class TransitionEvent(ObjectEvent): | ||||||
|         self.transition = transition |         self.transition = transition | ||||||
|         self.previousState = previousState |         self.previousState = previousState | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| # dummy default states definition | # dummy default states definition | ||||||
| 
 | 
 | ||||||
| defaultSD = StatesDefinition('default', | defaultSD = StatesDefinition('default', | ||||||
|  |  | ||||||
|  | @ -113,6 +113,18 @@ class IStatesDefinition(Interface): | ||||||
|         """ |         """ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | class IStatefulIndexInfo(Interface): | ||||||
|  |     """ Provide a list of tokens to be used for index the states | ||||||
|  |         of an object in the catalog. | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  |     tokens = Attribute('A sequence of strings to be used for indexing the ' | ||||||
|  |                 'states; format: [<statesdefinition name>:<state name>, ...].') | ||||||
|  | 
 | ||||||
|  |     availableStatesDefinitions = Attribute('A sequence of strings with the ' | ||||||
|  |                 'names of all states definitions currently available.') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| class ITransitionEvent(IObjectEvent): | class ITransitionEvent(IObjectEvent): | ||||||
|     """ Fires when the state of an object is changed. |     """ Fires when the state of an object is changed. | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm