#!/usr/bin/python # -*- coding: utf-8 -*- import yui #import new class CDialog: def __init__(self): self.factory = yui.YUI.widgetFactory() def listen(self, newList): self.listeners = newList etype=-1 while etype!=5: event = self.dialog.waitForEvent() etype = event.eventType() for item in self.listeners: if (item.getInstance()==event.widget()): item.handle(event) print etype class MainDialog(CDialog): def __init__(self): CDialog.__init__(self) self.dialog = self.factory.createMainDialog() def __del__(self): self.dialog.destroy() class Popup(CDialog): def __init__(self): CDialog.__init__(self) self.dialog = self.factory.createPopupDialog() def __del__(self): self.dialog.destroy() class CButton: def __init__(self, factory, parent, label): self.button = factory.createPushButton( parent, label ) def getInstance(self): return self.button def handle(self): pass class TableDialog: def __init__(self, d): self.f = d.factory vbox1 =self.f.createVBox( d.dialog ) self.f.createVStretch(vbox1) hbox1 =self.f.createHBox( vbox1 ) self.f.createHStretch(hbox1) self.f.createHSpacing(hbox1,1) vbox2 =self.f.createVBox( hbox1 ) self.Table( vbox2 ) vspace =self.f.createVSpacing(vbox1,2) self.f.createHSpacing(hbox1,1) self.f.createHStretch(hbox1) self.f.createVStretch(vbox1) d.listen([self.pbAdd, self.pbEdit, self.pbDel]) def Table(self,parent): vbox3 =self.f.createVBox( parent ) self.customWidget(vbox3) theader = yui.YTableHeader() theader.addColumn("Targets") self.table =self.f.createTable( vbox3, theader ) hbox2 =self.f.createHBox( vbox3 ) self.pbAdd = CButton(self.f, hbox2, "&Add") self.pbEdit = CButton(self.f, hbox2, "&Edit") self.pbDel = CButton(self.f, hbox2, "&Delete") self.__enableDisableButtons__() # def mujhandler(self): # print "tohle je muj handler" self.pbAdd.handle = self.handleAdd # self.pbAdd.handle = new.instancemethod(mujhandler, self.pbAdd, self.pbAdd.__class__) # self.pbAdd.handle = new.instancemethod(self.handleAdd.im_func, self.pbAdd, self.pbAdd.__class__) def customWidget(self,parent): pass def __enableDisableButtons__(self): self.pbEdit.button.setEnabled(self.table.itemsCount()>0) self.pbDel.button.setEnabled(self.table.itemsCount()>0)