import maya.cmds as mc
import maya.mel as mm
import time

def doMessageNode():
    if not mc.objExists("messages"):
        mc.group(em = True, name=("messages"))
    kids = mc.listRelatives("messages")
    return kids
    
def makeMessageUI():
    if mc.window("messenger", q=True, exists=True):
        mc.deleteUI("messenger")
    now = time.asctime()
    newTab = now.split()[1]+" "+now.split()[2]+" "+now.split()[3]
    tabGroupName = newTab.replace(" ", "_").replace(":","_")
    mc.window("messenger", title="Messenger", widthHeight=(440, 500) )
    form = mc.formLayout()
    tabs = mc.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
    oldTabs = doMessageNode()
    if oldTabs:
        oldTabs.reverse()
        for old in oldTabs:
            if mc.objExists(old+".notes"):
                oldTabName = old.replace("_", " ", 2).replace("_",":")
                tempName = mc.frameLayout(lv=False, bs="etchedOut", p=tabs)
                mc.popupMenu()
                mc.menuItem(l="delete this messege", c=("mc.delete(\""+old+"\");sims3_maya.messenger.makeMessageUI()"))
                data = mc.getAttr(old+".notes")
                mc.scrollField( editable=False, wordWrap=True, text=mc.getAttr(old+".notes"))
                mc.tabLayout( tabs, edit=True, tabLabel=((tempName, oldTabName)))
            else:
                mc.delete(old)
                
    newTabName = tabGroupName.replace("_", " ", 2).replace("_",":")
    write = mc.scrollField("write", editable=True, wordWrap=True, p=form)
    buttonLayout = mc.rowColumnLayout(nc=2, p=form)
    save = mc.button("save", l="save and close", c=("sims3_maya.messenger.savestring(\""+tabGroupName+"\");mc.deleteUI(\"messenger\")"), p=buttonLayout)
    exit = mc.button("exit", l="exit without saving", c="mc.deleteUI(\"messenger\")", p=buttonLayout)
    mc.formLayout(form, e=True,
        attachForm=[[write, "top", 250],
        [write, "left", 2],
        [write, "right", 2],
        [write, "bottom", 28],
        [buttonLayout, "left", 2],
        [buttonLayout, "bottom", 2],
        [buttonLayout, "right", 2],
        [tabs, "top", 2],
        [tabs, "left", 2],
        [tabs, "right", 2]],
        attachControl=[[tabs, "bottom", 0, write],
        [buttonLayout, "top", 2, write]])
    mc.showWindow()
    
    mc.group(em = True, name=tabGroupName)
    mc.parent(tabGroupName, "messages")
    
def savestring(node):
    write = mc.scrollField("write", q=True, text=True)
    if not mc.attributeQuery("notes", node=node, exists=True):
        mc.addAttr(node, sn="nts", ln="notes", dt="string")
    mc.setAttr( node+'.notes', write, type="string" )

