MetadataPanel.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from direct.tkwidgets.AppShell import *
  2. from direct.showbase.TkGlobal import *
  3. import Pmw
  4. class MetadataPanel(AppShell,Pmw.MegaWidget):
  5. appversion = '1.0'
  6. appname = 'Metadata Panel'
  7. frameWidth = 400
  8. frameHeight = 400
  9. padx = 0
  10. pady = 0
  11. usecommandarea = 0
  12. usestatusarea = 0
  13. Metatag=""
  14. Metanode=None
  15. tag_text=None
  16. def __init__(self,nodePath,parent=None,**kw):
  17. # Initialise superclass
  18. Pmw.MegaWidget.__init__(self, parent)
  19. # Define the megawidget options.
  20. optiondefs = (
  21. ('title', self.appname, None),
  22. )
  23. self.defineoptions(kw, optiondefs)
  24. self.Metanode=nodePath
  25. if(nodePath.hasTag("Metadata")):
  26. self.Metatag=self.Metanode.getTag("Metadata")
  27. if parent == None:
  28. self.parent = Toplevel()
  29. AppShell.__init__(self, self.parent)
  30. self.parent.resizable(False,False)
  31. def appInit(self):
  32. print "Metadata Panel"
  33. def createInterface(self):
  34. interior = self.interior()
  35. mainFrame = Frame(interior)
  36. tag_label=Label (mainFrame,text="Enter Metadata",font=('MSSansSerif', 15),
  37. relief = RIDGE, borderwidth=5)
  38. tag_label.pack()
  39. source=StringVar()
  40. source.set(self.Metatag)
  41. self.tag_text=Entry(mainFrame, width=10,textvariable=source)
  42. self.tag_text.pack()
  43. set_button=Button(mainFrame, text='Set Metadata',font=('MSSansSerif', 15),
  44. relief = RIDGE, borderwidth=5, command= lambda:self.SetIt())
  45. set_button.pack()
  46. mainFrame.pack(fill = 'both', expand = 1)
  47. def SetIt(self):
  48. self.Metanode.setTag("Metadata",self.tag_text.get())