ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/ns_dev/Python/NinoCode/Active_prgs/MCP/Trunk/MCP_CopyUp_Request_UI.py
Revision: 454
Committed: Wed Sep 11 18:57:31 2013 UTC (12 years, 6 months ago) by nino.borges
Content type: text/x-python
Original Path: Python/NinoCode/Active_prgs/MCP/MCP_CopyUp_Request_UI.py
File size: 22400 byte(s)
Log Message:
Added a new view called My Active Cases, filtering the case list to only show your active cases for all modules.

File Contents

# User Rev Content
1 ninoborges 8 """
2    
3     MCP_CopyUp_Request_UI
4    
5     Created by
6     Emanuel Borges
7     10.25.2010
8    
9     This is the GUI to the MCP_CopyUp_Request program.
10    
11     """
12    
13 nino.borges 258 import wx, MCP_Lib, MCP_CopyUp_Request,os,WorkDirDialog
14 ninoborges 8 import wx.lib.filebrowsebutton as filebrowse
15    
16     class MyFrame(wx.Frame):
17     def __init__(self, parent, ID, title, pos=wx.DefaultPosition):
18 nino.borges 258 self.workDir = os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working")
19 nino.borges 203 wx.Frame.__init__(self, parent, ID, title, pos, size =(585,450))
20 ninoborges 8 self.panel = wx.Panel(self,-1)
21     #self.panel.SetBackgroundColour("yellow green")
22     casesListStaticText = wx.StaticText(self.panel, -1, "Select Case: ",wx.DefaultPosition)
23 nino.borges 189 #casesList,casesDir = MCP_Lib.GetCaseList()
24 nino.borges 232 print "connecting to matter tracking access db..."
25     self.accessDB = MCP_Lib.AccessDBConnection(r"\\chiads01\app\DS_CaseTrack\TPM_CaseTracking.mdb")
26     print "connected to DB."
27 nino.borges 454 self.myCases, self.myActiveCases, self.officeCases, self.allCases, casesDir = MCP_Lib.GetCaseList('',self.accessDB)
28 nino.borges 189 self.casesListChoice = wx.Choice(self.panel, -1, wx.DefaultPosition, choices=self.myCases)
29 ninoborges 8 platformStaticText = wx.StaticText(self.panel, -1, "Select Platform:",wx.DefaultPosition)
30     platformChoices = ["Concordance DIS","Concordance LN","Relativity"]
31     self.platformListChoice = wx.Choice(self.panel, -1, wx.DefaultPosition, choices=platformChoices)
32 nino.borges 258
33 nino.borges 453 upLoadCatagoryStaticText = wx.StaticText(self.panel, -1, "Upload Type:",wx.DefaultPosition)
34     upLoadCatagoriesList = ['Generic (Working dir)',]
35     self.upLoadCatagory = wx.Choice(self.panel, -1, wx.DefaultPosition, choices=upLoadCatagoriesList)
36     self.upLoadCatagory.SetSelection(0)
37     self.upLoadCatagory.Enable(False)
38    
39 nino.borges 203 #workDirStaticText = wx.StaticText(self.panel, -1, "Select Work Dir:",wx.DefaultPosition)
40     #self.workDirControl = wx.TextCtrl(self.panel,-1,os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working"), size=(296,-1))
41     #workDirBrowseButton = wx.Button(self.panel, -1, "Browse", (10, 10))
42 ninoborges 8
43    
44     self.radio1 = wx.RadioButton(self.panel, -1, 'Individual File',style=wx.RB_GROUP)
45     self.fileBowserControl = wx.TextCtrl(self.panel, -1,size=(296,-1))
46     self.fileBowserButton = wx.Button(self.panel, -1, "Browse", (10, 10))
47    
48     self.requestAssistanceCheckBox = wx.CheckBox(self.panel,-1,": Request Data Analyst Assistance")
49     self.requestAssistanceCheckBox.Enable(False) ## Change me when you go live with this service.
50    
51     self.radio2 = wx.RadioButton(self.panel, -1, 'Entire folder of Files')
52     self.dirBowserControl = wx.TextCtrl(self.panel, -1, size=(296,-1))
53     self.dirBowserButton = wx.Button(self.panel, -1, "Browse", (10, 10))
54     self.dirBowserControl.Enable(False)
55     self.dirBowserButton.Enable(False)
56    
57 nino.borges 203 self.radio3 = wx.RadioButton(self.panel, -1, 'From Vendor Folder')
58     self.vendorBowserControl = wx.TextCtrl(self.panel, -1, size=(296,-1))
59     self.vendorBowserButton = wx.Button(self.panel, -1, "Browse", (10, 10))
60     self.vendorBowserControl.Enable(False)
61     self.vendorBowserButton.Enable(False)
62 ninoborges 8
63 nino.borges 203
64 ninoborges 8 self.CreateBoxesSection()
65     copyUpTypeStaticBox = wx.StaticBox(self.panel, -1, 'Copy Up:')
66     copyUpTypeStaticBoxSizer = wx.StaticBoxSizer(copyUpTypeStaticBox, wx.VERTICAL)
67    
68     radio1Sizer = wx.FlexGridSizer(1,3,10,10)
69     radio1Sizer.Add(self.radio1, 0, 0)
70     radio1Sizer.Add(self.fileBowserControl, 0)
71     radio1Sizer.Add(self.fileBowserButton, 0)
72     copyUpTypeStaticBoxSizer.Add(radio1Sizer, 0, wx.ALL|wx.ALIGN_LEFT,20)
73 nino.borges 203
74 ninoborges 8 radio2Sizer = wx.FlexGridSizer(1,3,10,10)
75     radio2Sizer.Add(self.radio2, 0)
76     radio2Sizer.Add(self.dirBowserControl, 0)
77     radio2Sizer.Add(self.dirBowserButton, 0)
78 nino.borges 203
79 ninoborges 8 copyUpTypeStaticBoxSizer.Add(radio2Sizer, 0, wx.ALL|wx.ALIGN_LEFT,20)
80 nino.borges 203 radio3Sizer = wx.FlexGridSizer(1,3,10,10)
81     radio3Sizer.Add(self.radio3, 0)
82     radio3Sizer.Add(self.vendorBowserControl, 0)
83     radio3Sizer.Add(self.vendorBowserButton, 0)
84     copyUpTypeStaticBoxSizer.Add(radio3Sizer, 0, wx.ALL|wx.ALIGN_LEFT,20)
85 ninoborges 8
86 nino.borges 453 #casesSizer = wx.FlexGridSizer(2,2,15,5)
87     #casesSizer.Add(casesListStaticText)
88     #casesSizer.Add(self.casesListChoice)
89     #casesSizer.Add(platformStaticText)
90     #casesSizer.Add(self.platformListChoice)
91    
92     casesSizer = wx.GridBagSizer(8,12)
93     casesSizer.Add(casesListStaticText,pos=(0,0))
94     casesSizer.Add(self.casesListChoice,pos=(0,1), span = (1,3))
95     casesSizer.Add(platformStaticText,pos=(1,0))
96     casesSizer.Add(self.platformListChoice,pos=(1,1))
97     casesSizer.Add(upLoadCatagoryStaticText,pos=(1,2))
98     casesSizer.Add(self.upLoadCatagory,pos=(1,3))
99    
100 ninoborges 8 #casesSizer = wx.BoxSizer(wx.HORIZONTAL)
101     #casesSizer.Add(casesListStaticText,0,wx.ALL,5)
102     #casesSizer.Add(self.casesListChoice,0,wx.ALL,5)
103     #casesSizer.Add(platformStaticText,0,wx.ALL,5)
104     #casesSizer.Add(self.platformListChoice,0,wx.ALL,5)
105 nino.borges 203 #workDirSizer = wx.BoxSizer(wx.HORIZONTAL)
106     #workDirSizer.Add(workDirStaticText,0,wx.ALL,5)
107     #workDirSizer.Add(self.workDirControl,0,wx.ALL,5)
108     #workDirSizer.Add(workDirBrowseButton,0,wx.ALL,5)
109 ninoborges 8 mainSizer = wx.BoxSizer(wx.VERTICAL)
110     mainSizer.Add(casesSizer,0,wx.ALL, 20)
111 nino.borges 203 #mainSizer.Add(workDirSizer,0,wx.ALL, 10)
112 ninoborges 8 mainSizer.Add(copyUpTypeStaticBoxSizer, 0, wx.ALL, 10)
113     mainSizer.Add(self.requestAssistanceCheckBox,0,wx.ALL|wx.ALIGN_CENTER,5)
114 nino.borges 203
115    
116 ninoborges 8 mainSizer.Add(self.buttonSizer,0, wx.ALL|wx.ALIGN_BOTTOM|wx.ALIGN_CENTER, 10)
117    
118     self.panel.SetSizer(mainSizer)
119 nino.borges 189 self.CreateMenuBar()
120 nino.borges 453 self.Bind(wx.EVT_CHOICE, self.OnPlatformSelect, self.platformListChoice)
121 ninoborges 8 self.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, self.radio1)
122     self.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, self.radio2)
123 nino.borges 203 self.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, self.radio3)
124     #self.Bind(wx.EVT_BUTTON, self.OnBrowseClick, workDirBrowseButton)
125 ninoborges 8 self.Bind(wx.EVT_BUTTON, self.OnBrowseClick, self.fileBowserButton)
126     self.Bind(wx.EVT_BUTTON, self.OnBrowseClick, self.dirBowserButton)
127 nino.borges 203 self.Bind(wx.EVT_BUTTON, self.OnBrowseClick, self.vendorBowserButton)
128 ninoborges 8 self.Bind(wx.EVT_BUTTON, self.OnProcess, self.oKButton)
129     self.Bind(wx.EVT_BUTTON, self.CloseWindow, self.cancelButton)
130    
131     def OnRadio(self,event):
132     radioObj = event.GetEventObject()
133     selection = radioObj.GetLabel()
134     if selection == "Individual File":
135     self.fileBowserControl.Enable(True)
136     self.fileBowserButton.Enable(True)
137    
138     self.dirBowserControl.Enable(False)
139     self.dirBowserButton.Enable(False)
140 nino.borges 203 self.vendorBowserControl.Enable(False)
141     self.vendorBowserButton.Enable(False)
142    
143 ninoborges 8 self.dirBowserControl.SetValue("")
144 nino.borges 203 self.vendorBowserControl.SetValue("")
145    
146     elif selection == "Entire folder of Files":
147     self.dirBowserControl.Enable(True)
148     self.dirBowserButton.Enable(True)
149    
150     self.fileBowserControl.Enable(False)
151     self.fileBowserButton.Enable(False)
152     self.vendorBowserControl.Enable(False)
153     self.vendorBowserButton.Enable(False)
154    
155     self.fileBowserControl.SetValue("")
156     self.vendorBowserControl.SetValue("")
157    
158 ninoborges 8 else:
159 nino.borges 203 self.vendorBowserControl.Enable(True)
160     self.vendorBowserButton.Enable(True)
161    
162 ninoborges 8 self.fileBowserControl.Enable(False)
163     self.fileBowserButton.Enable(False)
164 nino.borges 203 self.dirBowserControl.Enable(False)
165     self.dirBowserButton.Enable(False)
166    
167 ninoborges 8 self.fileBowserControl.SetValue("")
168 nino.borges 203 self.dirBowserControl.SetValue("")
169 ninoborges 8
170     #if self.selectedText:
171     # self.selectedText.Enable(False)
172     #radioSelected = event.GetEventObject()
173     #text = self.texts[radioSelected.GetLabel()]
174     #text.Enable(True)
175     #self.selectedText = text
176    
177 nino.borges 453 def OnPlatformSelect(self,event):
178     platform = self.platformListChoice.GetStringSelection()
179     if platform == 'Concordance DIS':
180     self.upLoadCatagory.Enable(False)
181     else:
182     self.upLoadCatagory.Enable(True)
183    
184    
185 ninoborges 8 def OnBrowseClick(self,event):
186     eventCode = event.GetId()
187     #print eventCode
188 nino.borges 203 #if eventCode == -209:
189     # dlg = wx.DirDialog(self, message = "Working Directory Path: ", defaultPath = os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working"))
190     # if dlg.ShowModal() == wx.ID_OK:
191     # dirPath = dlg.GetPath()
192     # dlg.Destroy()
193     # self.workDirControl.SetValue(dirPath)
194 nino.borges 453 if eventCode == -211:
195 ninoborges 8 dlg = wx.FileDialog(self, message="Select file to copy up:",defaultDir=os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working"), defaultFile="",wildcard= "*.*",style=wx.OPEN | wx.CHANGE_DIR)
196     #dlg = wx.FileDialog(self, message = "Select directory to copy up: ", defaultPath = os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working"))
197     if dlg.ShowModal() == wx.ID_OK:
198     filePath = dlg.GetPath()
199     dlg.Destroy()
200 nino.borges 235 ## Test here to see if it's a zip. if not, give them warning about uncompressed size.
201 nino.borges 266 if os.path.splitext(filePath)[1].upper() in MCP_Lib.GetArchiveFileTypeList():
202     if os.path.splitext(filePath)[1].upper() == ".ZIP":
203     pass
204     else:
205     warningDlg = wx.MessageDialog(self,"MCP: You are attempting to copy an archive file that is not ZIP. The COMPRESSED SIZE will be gathered only.\nPlease change this size, once uncompressed, in View Edit.","WARNING!",wx.OK | wx.ICON_INFORMATION)
206     warningDlg.ShowModal()
207     warningDlg.Destroy()
208 ninoborges 8 self.fileBowserControl.SetValue(filePath)
209 nino.borges 453 elif eventCode == -215:
210 ninoborges 8 dlg = wx.DirDialog(self, message = "Select directory to copy up:", defaultPath = os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working"))
211     if dlg.ShowModal() == wx.ID_OK:
212     dirPath = dlg.GetPath()
213     dlg.Destroy()
214     self.dirBowserControl.SetValue(dirPath)
215 nino.borges 453 elif eventCode == -218:
216 nino.borges 232 platform = self.platformListChoice.GetStringSelection()
217     if platform == 'Concordance LN':
218     platform = 'Concordance'
219     elif platform == 'Concordance DIS':
220     platform = None
221     if platform:
222     expdtObj = MCP_Lib.ExpeDatConnection(platform)
223     caseName = self.casesListChoice.GetStringSelection()
224     clientMatter = caseName.split("_(")[1]
225     clientMatter = clientMatter[:-1]
226     clientMatter = clientMatter.replace('-','.')
227     vendorFolder = self.accessDB.GetVendorFolderPath(clientMatter)
228     if vendorFolder:
229     folderMatrix = expdtObj.GatherFullDirListMatrix('Uploads/%s'%vendorFolder)
230     dlg = VendorBrowserDialog(self,vendorFolder,folderMatrix)
231     if dlg.ShowModal() == wx.ID_OK:
232     vendorPath = dlg.GetValues()
233     dlg.Destroy()
234 nino.borges 266 if os.path.splitext(vendorPath)[1].upper() in MCP_Lib.GetArchiveFileTypeList():
235     if os.path.splitext(vendorPath)[1].upper() == ".ZIP":
236     pass
237     else:
238     warningDlg = wx.MessageDialog(self,"MCP: You are attempting to copy an archive file that is not ZIP. The COMPRESSED SIZE will be gathered only. Please change this value when you uncompress, in View Edit.","WARNING!",wx.OK | wx.ICON_INFORMATION)
239     warningDlg.ShowModal()
240     warningDlg.Destroy()
241 nino.borges 232 self.vendorBowserControl.SetValue(vendorPath)
242     else:
243     diag = wx.MessageDialog(self,"MCP: No vendor folder is currently linked to this case.","Does not exist",wx.OK | wx.ICON_INFORMATION)
244     diag.ShowModal()
245     diag.Destroy()
246     else:
247     diag = wx.MessageDialog(self,"MCP: Copying from LN to DIS is not yet supported.","ERROR",wx.OK | wx.ICON_INFORMATION)
248     diag.ShowModal()
249     diag.Destroy()
250 ninoborges 8
251     def CreateBoxesSection(self):
252     self.oKButton = wx.Button(self.panel, wx.ID_OK)
253     self.oKButton.SetDefault()
254     self.oKButton.SetSize(self.oKButton.GetBestSize())
255     self.cancelButton = wx.Button(self.panel, wx.ID_CANCEL)
256     self.cancelButton.SetSize(self.cancelButton.GetBestSize())
257     self.buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
258     self.buttonSizer.Add(self.oKButton,0,wx.ALL,10)
259     self.buttonSizer.Add(self.cancelButton,0,wx.ALL,10)
260    
261 nino.borges 189 def MenuData(self):
262     return(("View",
263     ("My Cases", "Chooses from your assigned cases.",self.OnChangeCaseView,"RADIO"),
264 nino.borges 454 ("My Active Cases", "Chooses from your assigned cases, filtered by Active Cases.",self.OnChangeCaseView,"RADIO"),
265 nino.borges 189 ("My Office Cases", "Chooses from cases assigned to everyone in your office.",self.OnChangeCaseView,"RADIO"),
266     ("All Cases", "Chooses from all cases.",self.OnChangeCaseView,"RADIO")),
267 nino.borges 203 ("&Settings",
268     ("&Working Directory", "Allows you to change the local Buffer directory.", self.OnChangeWorkDir,"")),
269 nino.borges 189 ("&Help",
270     ("&About", "Displays the About Window.", self.OnAbout,"")))
271    
272     def CreateMenuBar(self):
273     menuBar = wx.MenuBar()
274     count = 1
275     for eachMenuData in self.MenuData():
276     menuLabel = eachMenuData[0]
277     menuItems = eachMenuData[1:]
278     menuBar.Append(self.CreateMenu(menuItems), menuLabel)
279     count = count + 1
280     self.SetMenuBar(menuBar)
281    
282    
283     def CreateMenu(self, menuData):
284     menu = wx.Menu()
285     for eachLabel, eachStatus, eachHandler, eachType in menuData:
286     if not eachLabel:
287     menu.AppendSeparator()
288     continue
289     if eachType == "RADIO":
290     menuItem = menu.AppendRadioItem(-1,eachLabel,eachStatus)
291     else:
292     menuItem = menu.Append(-1, eachLabel, eachStatus)
293     self.Bind(wx.EVT_MENU, eachHandler, menuItem)
294     return menu
295    
296 ninoborges 8 def CloseWindow(self, event):
297     self.Close(True)
298 nino.borges 189
299     def OnChangeCaseView(self,event):
300     self.casesListChoice.Clear()
301     eventID = event.GetId()
302 nino.borges 454 #print eventID
303 nino.borges 189 if eventID == 100:
304     #change it to my cases
305     self.casesListChoice.SetItems(self.myCases)
306    
307 nino.borges 454 if eventID == 101:
308     #change it to my active cases
309     self.casesListChoice.SetItems(self.myActiveCases)
310 nino.borges 189
311 nino.borges 454 if eventID == 102:
312 nino.borges 189 #change it to office cases
313     self.casesListChoice.SetItems(self.officeCases)
314    
315    
316 nino.borges 454 if eventID == 103:
317 nino.borges 189 #change it to all cases
318     self.casesListChoice.SetItems(self.allCases)
319    
320    
321 nino.borges 203 def OnChangeWorkDir(self,event):
322 nino.borges 258 dlg = WorkDirDialog.WorkDirDialog(self, self.workDir)
323     if dlg.ShowModal() == wx.ID_OK:
324     self.workDir = dlg.GetValues()
325     #print self.workDir
326     dlg.Destroy()
327    
328 ninoborges 8
329     def OnProcess(self, event):
330     caseName = self.casesListChoice.GetStringSelection()
331     platform = self.platformListChoice.GetStringSelection()
332 nino.borges 235 ## CHANGE to the new place
333     #workDir = self.workDirControl.GetValue()
334 nino.borges 258 #workDir = os.path.join(os.environ.get("USERPROFILE"),"Desktop\\Working")
335 nino.borges 235
336 ninoborges 8 if self.radio1.GetValue():
337     startSelection = self.fileBowserControl.GetValue()
338 nino.borges 236 sourceMediaLocation = 'local'
339     elif self.radio2.GetValue():
340     startSelection = self.dirBowserControl.GetValue()
341     sourceMediaLocation = 'local'
342 ninoborges 8 else:
343 nino.borges 236 startSelection = self.vendorBowserControl.GetValue()
344     sourceMediaLocation = 'remote'
345 ninoborges 8 #startSelection = r"C:\Documents and Settings\eborges\Desktop\Working\Misc_Documents.zip"
346     self.Show(False)
347     #print "workdir is %s"%workDir
348 nino.borges 258 MCP_CopyUp_Request.Process(caseName, self.workDir, startSelection, platform, sourceMediaLocation)
349 ninoborges 8
350     #diag = wx.MessageDialog(self,"All Items processed and copied!!", "Complete",wx.OK | wx.ICON_INFORMATION)
351     #diag.ShowModal()
352     #diag.Destroy()
353     self.Destroy()
354    
355 nino.borges 189 def OnAbout(self, event):
356     """
357     OnAbout(self,event) Displays an about dialog with developer and bug reporting info
358     """
359     dlg = wx.MessageDialog(self, "MCP is a case organization program.\n"
360     "\n\n"
361     "For questions or comments about this program\n"
362     "or to report a bug, please email the program\n"
363     "creator at Nino.Borges@gmail.com\n\n"
364     "MCP is\n"
365     "Copyright (c) 2011 Emanuel Borges.\n"
366     "All rights reserved.\n"
367     "(Nino.Borges@gmail.com)\n",
368     "About MCP", wx.OK | wx.ICON_INFORMATION)
369     dlg.ShowModal()
370     dlg.Destroy()
371 ninoborges 8
372    
373 nino.borges 203 class VendorBrowserDialog(wx.Dialog):
374     def __init__(self, parent, vendorFolder, treeMatrix):
375     wx.Dialog.__init__(self, parent, -1, "Vendor Folder Browser", style = wx.DEFAULT_DIALOG_STYLE, size = (300,400))
376     #wx.Dialog.__init__(self, parent,title= "Vendor Folder Browser", size = (300,400))
377     self.vendorFolder = vendorFolder
378    
379     il = wx.ImageList(16,16)
380     self.fldridx = il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,wx.ART_OTHER, (16,16)))
381     self.fldropenidx = il.Add(wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN,wx.ART_OTHER, (16,16)))
382     self.fileidx = il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE,wx.ART_OTHER, (16,16)))
383    
384     self.vendorTree = wx.TreeCtrl(self, size=(200,310))
385     self.vendorTree.AssignImageList(il)
386    
387     rootVendorFolderId = self.vendorTree.AddRoot(vendorFolder)
388    
389     self.AddTreeNodes(rootVendorFolderId, treeMatrix)
390     #childVendorFolderId2 = self.vendorTree.AppendItem(rootVendorFolderId,"test2")
391     #childVendorFolderId = self.vendorTree.AppendItem(childVendorFolderId2,"test")
392     self.vendorTree.Expand(rootVendorFolderId)
393    
394    
395     self.vendorTree.SetItemImage(rootVendorFolderId, self.fldridx, wx.TreeItemIcon_Normal)
396     self.vendorTree.SetItemImage(rootVendorFolderId, self.fldropenidx, wx.TreeItemIcon_Expanded)
397     ## this will need a if its a file do this else do the previous
398     #self.vendorTree.SetItemImage(childVendorFolderId, self.fileidx, wx.TreeItemIcon_Normal)
399    
400     mainSizer = wx.BoxSizer(wx.VERTICAL)
401     mainSizer.Add(self.vendorTree, 0, wx.EXPAND|wx.ALL, 5)
402    
403     oKButton = wx.Button(self, wx.ID_OK)
404     oKButton.SetDefault()
405     cancelButton = wx.Button(self, wx.ID_CANCEL)
406     buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
407     buttonSizer.Add(oKButton,0,wx.ALL,5)
408     buttonSizer.Add(cancelButton,0,wx.ALL,5)
409     mainSizer.Add(buttonSizer, 0, wx.ALIGN_CENTER|wx.ALL, 15)
410     self.SetSizer(mainSizer)
411     self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, self.vendorTree)
412 ninoborges 8
413 nino.borges 203 def AddTreeNodes(self, parentItem, items):
414     """
415     Recursively traverses the data structure, adding tree nodes to
416     match it.
417     """
418     for item in items:
419     if type(item) == str:
420     newItem = self.vendorTree.AppendItem(parentItem, item)
421     #self.tree.SetItemText(newItem, "A description of %s" % item, 1)
422     self.vendorTree.SetItemImage(newItem, self.fileidx,
423     wx.TreeItemIcon_Normal)
424     else:
425     newItem = self.vendorTree.AppendItem(parentItem, item[0])
426     #self.tree.SetItemText(newItem, "A description of %s" % item[0], 1)
427     self.vendorTree.SetItemImage(newItem, self.fldridx,
428     wx.TreeItemIcon_Normal)
429     self.vendorTree.SetItemImage(newItem, self.fldropenidx,
430     wx.TreeItemIcon_Expanded)
431    
432     self.AddTreeNodes(newItem, item[1])
433    
434     def OnSelChanged(self, event):
435     self.item = event.GetItem()
436     if self.item:
437     self.vendorFileSelected = self.vendorTree.GetItemText(self.item)
438     event.Skip()
439    
440     def GetValues(self):
441     vendorPath = self.vendorFileSelected
442     upItem = self.vendorTree.GetItemParent(self.item)
443     while upItem:
444     vendorPath = os.path.join(self.vendorTree.GetItemText(upItem),vendorPath)
445     upItem = self.vendorTree.GetItemParent(upItem)
446     return vendorPath
447    
448    
449 ninoborges 8 class MyApp(wx.App):
450     def OnInit(self):
451     prgVersion = MCP_Lib.GetMCPVersion()
452     self.frame = MyFrame(None, -1, "MCP Copy Up Request %s"%prgVersion)
453     self.frame.Show(True)
454     self.SetTopWindow(self.frame)
455     return True
456    
457    
458     if __name__ == '__main__':
459     app = MyApp(0)
460     app.MainLoop()