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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show 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 #Boa:MDIChild:FraggleListFrame
2
3 from wxPython.wx import *
4 from wxPython.stc import *
5 import FraggleItemFrame
6
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 EVT_LEFT_DCLICK(self.listViewMain, self.OnListViewMainLeftDclick)
37
38 def __init__(self, parent):
39 self.parent = parent
40 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
50 def load_content(self,contentkey):
51 self.payload = self.engine.listItems(contentkey)
52 self.columns = self.payload['2']
53 if self.payload:
54 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 #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
98 # if self.payload:
99
100 # 1. generate columns
101 # 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
112 # 2. fill entries
113 #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
123 # set custom data
124 #self.listViewMain.SetItemData(itemid, itemid)
125
126 #itemid += 1
127
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