/[cvs]/nfo/projects/netfraggle/bin/FraggleListFrame.py
ViewVC logotype

Annotation of /nfo/projects/netfraggle/bin/FraggleListFrame.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Fri Sep 17 09:44:50 2004 UTC (19 years, 9 months ago) by xabbu
Branch: MAIN
Changes since 1.3: +42 -3 lines
File MIME type: text/x-python
U function loadContent(contentKey) will now get the Content via the fraggleEngine and fill the listbox with its values

1 joko 1.1 #Boa:MDIChild:FraggleListFrame
2    
3     from wxPython.wx import *
4     from wxPython.stc import *
5 joko 1.2 import FraggleItemFrame
6 joko 1.1
7     def create(parent):
8     return FraggleListFrame(parent)
9    
10     [wxID_FRAGGLELISTFRAME, wxID_FRAGGLELISTFRAMEBUTTONCLOSE,
11     wxID_FRAGGLELISTFRAMELISTVIEWMAIN, wxID_FRAGGLELISTFRAMEPANEL1,
12     ] = map(lambda _init_ctrls: wxNewId(), range(4))
13    
14     class FraggleListFrame(wxMDIChildFrame):
15     def _init_ctrls(self, prnt):
16     # generated method, don't edit
17     wxMDIChildFrame.__init__(self, id=wxID_FRAGGLELISTFRAME, name='',
18     parent=prnt, pos=wxPoint(356, 363), size=wxSize(397, 240),
19     style=wxDEFAULT_FRAME_STYLE, title='Topic details')
20     self.SetClientSize(wxSize(389, 213))
21    
22     self.panel1 = wxPanel(id=wxID_FRAGGLELISTFRAMEPANEL1, name='panel1',
23     parent=self, pos=wxPoint(0, 0), size=wxSize(389, 213),
24     style=wxTAB_TRAVERSAL)
25    
26     self.buttonClose = wxButton(id=wxID_FRAGGLELISTFRAMEBUTTONCLOSE,
27     label='X', name='buttonClose', parent=self.panel1, pos=wxPoint(8,
28     8), size=wxSize(16, 16), style=0)
29     self.buttonClose.SetAutoLayout(True)
30     EVT_BUTTON(self.buttonClose, wxID_FRAGGLELISTFRAMEBUTTONCLOSE,
31     self.OnButtoncloseButton)
32    
33     self.listViewMain = wxListView(id=wxID_FRAGGLELISTFRAMELISTVIEWMAIN,
34     name=u'listViewMain', parent=self.panel1, pos=wxPoint(8, 40),
35     size=wxSize(376, 168), style=wxLC_REPORT)
36 joko 1.2 EVT_LEFT_DCLICK(self.listViewMain, self.OnListViewMainLeftDclick)
37 joko 1.1
38     def __init__(self, parent):
39 joko 1.2 self.parent = parent
40 joko 1.1 self._init_ctrls(parent)
41     # get engine-instance (singleton)
42     import __main__
43     self.engine = __main__.engine
44     #self.load_content()
45    
46     def OnButtoncloseButton(self, event):
47     self.Destroy()
48     event.Skip()
49 xabbu 1.3
50 xabbu 1.4 def load_content(self,contentkey):
51     self.payload = self.engine.listItems(contentkey)
52     self.columns = self.payload['2']
53 xabbu 1.3 if self.payload:
54 xabbu 1.4 load3 = self.columns
55     colid = 0
56     for i in load3:
57     self.listViewMain.InsertColumn(
58     col=colid,
59     format=wxLIST_FORMAT_LEFT,
60     heading=load3[i],
61     width=-1
62     )
63     colid += 1
64     #print self.payload
65    
66     entries = self.payload['1']
67    
68     itemid = 0
69    
70     columnlist = self.columns
71    
72     for entry in entries:
73     colid = 0
74     #print columnlist
75     #columnlist.pop()
76     for column in columnlist:
77     if column == '1' and entries[entry][column] == '1':
78     self.listViewMain.InsertStringItem(itemid, 'English')
79     elif column == '1' and entries[entry][column] == '2':
80     self.listViewMain.InsertStringItem(itemid, 'Deutsch')
81     #print entries[entry][column]
82     #print "column: "+column
83     if column != '1':
84     self.listViewMain.SetStringItem(itemid, colid, entries[entry][column])
85     print "colid: "+str(colid)
86     colid += 1
87    
88     #set custom data
89     self.listViewMain.SetItemData(itemid, itemid)
90     itemid += 1
91    
92    
93 xabbu 1.3 #def load_content(self):
94     # self.topicid = int(self.GetName())
95     # self.topicmeta = self.engine.getTopicById(self.topicid)
96     # self.payload = self.engine.query_remote(self.topicmeta)
97 joko 1.1
98 xabbu 1.3 # if self.payload:
99 joko 1.1
100     # 1. generate columns
101 xabbu 1.3 # row0 = self.payload[0]
102     # colid = 0
103     # for column in row0.keys():
104     # self.listViewMain.InsertColumn(
105     # col=colid,
106     # format=wxLIST_FORMAT_LEFT,
107     # heading=column,
108     # width=-1
109     # )
110     # colid += 1
111 joko 1.1
112     # 2. fill entries
113 xabbu 1.3 #itemid = 0
114     #for entry in self.payload:
115     # self.listViewMain.InsertStringItem(itemid, entry.keys()[0])
116     # colid = 0
117     # columnlist = entry.keys()
118     # columnlist.pop()
119     # for column in columnlist:
120     # self.listViewMain.SetStringItem(itemid, colid, entry[column])
121     # colid += 1
122 joko 1.2
123     # set custom data
124 xabbu 1.3 #self.listViewMain.SetItemData(itemid, itemid)
125 joko 1.2
126 xabbu 1.3 #itemid += 1
127 joko 1.2
128     def OnListViewMainLeftDclick(self, event):
129     #event.Skip()
130     list_selection = self.listViewMain.GetFocusedItem()
131     list_item = self.listViewMain.GetItem(list_selection)
132     #wxMessageBox(str(item.GetData()))
133     idx = list_item.GetData()
134     item = self.payload[idx]
135    
136     # create new MDI frame
137     frame = FraggleItemFrame.create(self.parent)
138     frame.SetName(str(idx))
139     frame.SetTitle(item['keyname'])
140    
141     # calculate new position (right lower offset of 15px to us)
142     pos = self.GetPosition() + wxPoint(25, 25)
143     frame.Move(pos)
144     self.parent.Fit()
145    
146     # patch topic metadata to point to an item instead of a list
147     # use keyname as query argument
148     topicmeta = self.topicmeta
149     topicmeta['result'] = 'item'
150     topicmeta['target']['arguments'] = item['keyname']
151     frame.load_content(topicmeta)

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed