Boa - difficulties with custom classes - think I have found a bug
Tim Burgess <[email protected]>
| Newsgroups | gmane.comp.ide.boa-constructor.user |
|---|---|
| Organization | TBITC Pty Ltd |
| Message-ID | <[email protected]> |
Hi,
I have been following the page http://wiki.wxpython.org/BoaFAQ.
I seem to have upset Boa and I cant see what I have done. Can anyone
offer a clue?
The application I am working on runs in my development environment
(WingIDE) as intended, but BOA says that the items defined in the custom
classes statement are not defined on the palette.
I only mention it working under WingIDE so that you know there are no
syntax errors and nothing missing from what I am doing.
If I hand change the calls to the custom classes and replace with the
base class, boa will permit editing AND setting of the class via the
constr class field just like the BoaFAQ page seems to be saying.
However if you then save your work and re use the design tool, Boa says
that the custom classes are not defined on the palette. Argggggh!
I start with this code:
------------------------------------------------------
#Boa:Frame:Frame1
import FramePanelPage1 # exists and works
import FramePanelPage2 # exists and works
import wx
def create(parent):
return Frame1(parent)
[wxID_FRAME1, wxID_FRAME1NOTEBOOK1, wxID_FRAME1PANEL1, wxID_FRAME1PANEL2,
] = [wx.NewId() for _init_ctrls in range(4)]
class Frame1(wx.Frame):
_custom_classes = {'wx.Panel': ['FramePanelPage1.FramePanelPage1',
'FramePanelPage2.FramePanelPage2']}
def _init_coll_notebook1_Pages(self, parent):
# generated method, don't edit
parent.AddPage(imageId=-1, page=self.panel1, select=True,
text='Pages0')
parent.AddPage(imageId=-1, page=self.panel2, select=False,
text='Pages1')
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(524, 155), size=wx.Size(835, 708),
style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
self.SetClientSize(wx.Size(827, 674))
self.notebook1 = wx.Notebook(id=wxID_FRAME1NOTEBOOK1,
name='notebook1',
parent=self, pos=wx.Point(0, 0), size=wx.Size(827, 674),
style=0)
self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1',
parent=self, pos=wx.Point(0, 0), size=wx.Size(819, 648),
style=wx.TAB_TRAVERSAL)
self.panel2 = wx.Panel(id=wxID_FRAME1PANEL2, name='panel2',
parent=self, pos=wx.Point(0, 0), size=wx.Size(819, 648),
style=wx.TAB_TRAVERSAL)
self._init_coll_notebook1_Pages(self.notebook1)
def __init__(self, parent):
self._init_ctrls(parent)
-----------------------------------------
I edit in BOA - not by hand and get this
------------------------------------------
#Boa:Frame:Frame1
import FramePanelPage1
import FramePanelPage2
import wx
def create(parent):
return Frame1(parent)
[wxID_FRAME1, wxID_FRAME1NOTEBOOK1, wxID_FRAME1PANEL1, wxID_FRAME1PANEL2,
] = [wx.NewId() for _init_ctrls in range(4)]
class Frame1(wx.Frame):
_custom_classes = {'wx.Panel': ['FramePanelPage1.FramePanelPage1',
'FramePanelPage2.FramePanelPage2']}
def _init_coll_notebook1_Pages(self, parent):
# generated method, don't edit
parent.AddPage(imageId=-1, page=self.panel1, select=False,
text='Pages0')
parent.AddPage(imageId=-1, page=self.panel2, select=True,
text='Pages1')
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(524, 155), size=wx.Size(835, 708),
style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
self.SetClientSize(wx.Size(827, 674))
self.notebook1 = wx.Notebook(id=wxID_FRAME1NOTEBOOK1,
name='notebook1',
parent=self, pos=wx.Point(0, 0), size=wx.Size(827, 674),
style=0)
self.panel1 = FramePanelPage1.FramePanelPage1(id=wxID_FRAME1PANEL1,
name='panel1', parent=self, pos=wx.Point(0, 0),
size=wx.Size(819, 648), style=wx.TAB_TRAVERSAL)
self.panel2 = FramePanelPage2.FramePanelPage2(id=wxID_FRAME1PANEL2,
name='panel2', parent=self, pos=wx.Point(0, 0),
size=wx.Size(819, 648), style=wx.TAB_TRAVERSAL)
self._init_coll_notebook1_Pages(self.notebook1)
def __init__(self, parent):
self._init_ctrls(parent)
-----------------------------------
You can see that Boa has made the custom class substitution
Now I ask Boa to edit again
DesignerError: FramPanelPage1.FramePanelPage1 is not defined on
the Palette.
Surely if this were true then Boa wouldn't have let me select the
classes in the first place!
What's happening?
How do I get Boa to let me edit the code, other than my me hand
removing the custom classes?
Thanks for any help
--
Tim Burgess
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4