[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Papo-hackers] Informar al ConsistencyController de cambios en ViewContr
From: |
maram |
Subject: |
[Papo-hackers] Informar al ConsistencyController de cambios en ViewController y propagar en hijos |
Date: |
Wed, 22 Dec 2004 12:54:01 -0300 |
Tengo lo siguiente:
Un objeto ReceptionABM del tipo ConsistencyController
que contiene un tab con un ReceptionData del tipo ViewController
y otros tabs con controles similares
El tab ReceptionData tiene un control SearchLabeledEntry (modificacion del
LabelTextEntry que agrega un boton "buscar" y la accion correspondiente)
self.name=SearchLabeledEntry (
parent=hh,
label=u'Apellido y Nombre',
actionButton=self.searchPerson,
valueLoader=lambda *i: self.getName ()
)
Si en el textbox del control escribo parte de un nombre y presiono
el boton"buscar", ejecuta la siguiente accion:
#en ReceptionData...
def searchPerson(self,*i):
query= 'name ilike "*%s*"' % self.name.getValue()
data= self.getEditingContext ().fetch ('Persona', query)
if len (data)==0:
self.name.update()
else:
#deberia mostrar una grilla para elegir, pero bue... elige la
primera coincidencia
chosen= data[0]
self.Manejador.changePerson(chosen)
Aqui el problema! Necesito un mecanismo para informarle al ConsistencyController
ReceptionABM, que cambio un obj persona del modelo reception... y que este
refresque el cambio en todos los tabs (ViewController) que contiene...
por ejemplo
que muestre la direccion en uno, la zona en otro, etc...
lo unico que se me ocurrio es agregar en ReceptionData, un atributo
"manejador",
que le dice que obj es el consistencycontroller que lo contiene...
ya que si hago ReceptionData.getParent(), me da el parent visual
<Gtk2.Gtk2Notebook.Gtk2Notebook> , no el ReceptionABM...
y crear en el ConsistencyController ReceptionABM una funcion de respuesta para
cada novedad que recibe, en este ejemplo:
#en ReceptionABM...
def changePerson(self,obj):
""" Recibe un obj Persona y lo cambia en el modelo actual"""
model=self.getModel()
model.setPersona(obj)
self.changeModel (model)
Esto anda, pero cual seria la forma correcta de realizar lo anterior... ?
osea, que al cambiar un obj en un VC se notifique al CC y este a su
vez actualize todos los vc dependientes...
--
Marcelo Ametller
----------------------------------------------------------------------------------------------
Maram Sistemas - Debian Sarge - Linux User: 354777
www.maramsis.com.ar www.aeroenlace.com.ar www.grulic.org.ar
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Papo-hackers] Informar al ConsistencyController de cambios en ViewController y propagar en hijos,
maram <=