from direct.tkwidgets.AppShell import *
from direct.showbase.TkGlobal import *


class MetadataPanel(AppShell,Pmw.MegaWidget):
    appversion      = '1.0'
    appname         = 'Metadata Panel'
    frameWidth      = 400
    frameHeight     = 400
    padx            = 0
    pady            = 0
    usecommandarea  = 0
    usestatusarea   = 0
    Metatag=""
    Metanode=None 
    tag_text=None
    def __init__(self,nodePath,parent=None,**kw):

        # Initialise superclass
        Pmw.MegaWidget.__init__(self, parent)
        
        # Define the megawidget options.
        optiondefs = (
            ('title',       self.appname,       None),
            )
        self.defineoptions(kw, optiondefs)
        self.Metanode=nodePath
        if(nodePath.hasTag("Metadata")):
            self.Metatag=self.Metanode.getTag("Metadata")

        if parent == None:
            self.parent = Toplevel()
        AppShell.__init__(self, self.parent)
        
        self.parent.resizable(False,False)

    
    def appInit(self):
        print "Metadata Panel"

    def createInterface(self):
        interior = self.interior()
        mainFrame = Frame(interior)
        tag_label=Label (mainFrame,text="Enter Metadata",font=('MSSansSerif', 15),
                           relief = RIDGE, borderwidth=5)
        tag_label.pack()
        source=StringVar()
        source.set(self.Metatag)
        self.tag_text=Entry(mainFrame, width=10,textvariable=source)
        self.tag_text.pack()
        set_button=Button(mainFrame, text='Set Metadata',font=('MSSansSerif', 15),
                           relief = RIDGE, borderwidth=5, command= lambda:self.SetIt())
        set_button.pack()
        mainFrame.pack(fill = 'both', expand = 1)

    def SetIt(self):
        self.Metanode.setTag("Metadata",self.tag_text.get())
        
        
