Carl Karsten wrote:
> Paul McNett wrote:
>> Carl Karsten wrote:
>>>> Where are these files again? Please don't point me to the list archives, 
>>>> as I can't easily copy/paste code from that webpage.
>>> Oh yeah, that whole html eats whitespace thing...
>>>
>>> hnmm, looks like I botched the file name too. - was called bd1, renamed the 
>>> files to cdxml2objDemo1 but didn't change dabo.ui.createForm()
>>>
>>> http://dev.personnelware.com/carl/temp/May31/a/cdxml2objDemo1.tgz
>> Ok, your code runs, and when I click "swap" it swaps. What's the problem?
>>
> 
> I am trying to replace this code in this file:
> 
> # cdxml2objDemo1-code.py
> ## *!* ## Dabo Code ID: dButton-dForm
> def onHit(self, evt):
> self.Form.myObj1.swap()
> self.Form.update()
> 
> With something in the cdxml file that connects the button to myObj1.swap() in 
> a 
> similar way that the text box's are connected to the attributes.  (once that 
> happens, the displaced .update() can be dealt wtih.)

Well, it appears that Ed hasn't yet added the ability to put a 
OnHit="self.Form.myObj1.swap" in the attributes for the button, but 
that's how you would do it if it were supported. You'd also have to add 
an evt arg to your swap function:

   def swap(self, evt=None):

... and yes, you do need to explicitly call update(): how else do you 
expect Dabo to know that your object's attribute values have changed?

Until the OnHit works within cdxml, you can put the following at the 
bottom of your main .py file:

if __name__ == "__main__":

    app = dabo.dApp(MainFormClass=None)
    app.setup()
    frm = dabo.ui.createForm('cdxml2objDemo1.cdxml')
    frm.myObj1=myClass()
## - new line below
    frm.but.bindEvent(dabo.dEvents.Hit, frm.myObj1.swap)
## - new line above
    frm.show()
    app.start()

...and then get rid of the -code.py file.

> there are a few reasons I think this is a good thing.
> 
> 1. less code = less bugs.  less code for me to write, less dabo code that has 
> to 
>   work.  I already burned an hour or so trying to figure out why my exe 
> didn't 
> work: the foo-code.py file didn't get copied, and the resulting app didn't 
> error 
> - I hit the button, and nothing happened.  I can see how that is my fault and 
> not a bug in dabo, but it is an example of one more thing to deal with.

Yeah, I get burned with Python's weakref and dynamic magic too.


> 2. cdxml2objDemo1-code.py is not self documenting.  in my real code, I had 
> all 
> of 2 buttons, and at one point I mixed up which block of code was connected 
> to 
> witch button, so the debugging code I added confused me even more than the 
> bug.
> 
> 3. one less thing to 'learn'.  I am not confidant in my understanding of how 
> the 
> cdxml2objDemo1-code.py code gets connected to the UI controls.  given that I 
> don't see much point to it, I don't see much point in taking the time to 
> learn 
> about it.
> 
> 4. To me it is poor style to have code in the UI, and I thought Ed claimed 
> the 
> x-code.py file was just for the convince of the developer that wanted to edit 
> code using the Dabo CD.

I don't see how you'll get rid of all UI code. I have a ton of UI code 
and don't feel badly about it at all.


> Assuming this is correct:
>  >>   Just add that line to the object's afterInit() method.
> (which it isn't - object, [event], and .myMethod need to be replaced with the 
> right names, and my object doesn't have an afterInit() method.  but assuming 
> it 
> is correct anyway...)

That's where you edit it from within the -code.py file. You add the 
afterInit() method there.


> It seems awkward to have to have the BO layer attach itself to the UI 
> objects, 
> especially when some of the UI object attach themselves to the BO object 
> (like 
> the text box.)  Not to mention that means you can't use that BO object 
> without 
> the UI, unless you write some conditional code, which seems beyond awkward.

I don't understand. How does the BO layer "attach itself" to the UI 
objects? dBizobj isn't even aware that the UI layer exists. I use 
dBizobj without a UI regularly.

Understand, I haven't played much with the cdxml-way of doing things, so 
my answers may not be well-informed enough.

-- 
pkm ~ http://paulmcnett.com


_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]

Reply via email to