import Tkinter as tk
import Pmw
from pmg_tk.startup.ProMol import promolglobals as glb
from pmg_tk.startup.ProMol.Methods.motif import *
Pmw.initialise()

def initialise():
    group = tk.LabelFrame(glb.GUI.motifs['tab'], text='Motif Finder')
    group.grid(row=0, column=1, rowspan=4)
    
    xscroll = tk.Scrollbar(group, orient=tk.HORIZONTAL)
    xscroll.grid(row=1, column=0, sticky=tk.E+tk.W)
    yscroll = tk.Scrollbar(group, orient=tk.VERTICAL)
    yscroll.grid(row=0, column=1, sticky=tk.N+tk.S)
    glb.GUI.motifs['motifbox'] = tk.Listbox(group, height=20, width=40,
        xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)
    glb.GUI.motifs['hidmotif'] = tk.Listbox(group)
    glb.GUI.motifs['motifbox'].grid(row=0,column=0,sticky=tk.E)
    xscroll["command"] = glb.GUI.motifs['motifbox'].xview
    yscroll["command"] = glb.GUI.motifs['motifbox'].yview
    glb.GUI.motifs['motifbox'].bind('<Double-Button-1>',dbckmotif)
    
    group = tk.LabelFrame(glb.GUI.motifs['tab'])
    group.grid(row=0, column=0)
    glb.GUI.motifs['single'] = tk.Label(group, text='Press Start to begin search')
    glb.GUI.motifs['single'].grid(row=0, column=0,columnspan=2)
    glb.GUI.motifs['singlestatus'] = glb.ProgressBar(group,10,200,1,0,2)
    glb.GUI.motifs['overall'] = tk.Label(group,text='Press Start to begin search')
    glb.GUI.motifs['overall'].grid(row=2,column=0,columnspan=2)
    glb.GUI.motifs['overallstatus'] = glb.ProgressBar(group,10,200,3,0,2)
    glb.GUI.motifs['findmotif'] = tk.Button(group, text ='Start', 
        command=motifchecker)
    glb.GUI.motifs['findmotif'].grid(row=4, column=0)
    glb.GUI.motifs['cancelbutton'] = tk.Button(group, width=12, text='Cancel', command=motifcancel)
    glb.GUI.motifs['cancelbutton'].grid(row=4, column=1)
    glb.GUI.motifs['cancelbutton']['state'] = tk.DISABLED
    
    group = tk.LabelFrame(glb.GUI.motifs['tab'], text='PDB(s) to search\n(comma separated)')
    group.grid(row=1, column=0)
    glb.GUI.motifs['multipdb'] = tk.Text(group, state=tk.NORMAL, 
        width=28, height=4)
    glb.GUI.motifs['multipdb'].grid(row=1, column=0)
    
    group = tk.LabelFrame(glb.GUI.motifs['tab'], text='Export')
    group.grid(row=2, column=0)
    glb.GUI.motifs['csv'] = tk.Button(group, text ='CSV', 
        command=export2csv, state=tk.DISABLED)
    glb.GUI.motifs['csv'].grid(row = 0, column = 1, padx=5, pady=5)
    
    #glb.GUI.motifs['ods'] = tk.Button(group, text ='ODS', 
    #    command=export2ods, state=tk.DISABLED)
    #glb.GUI.motifs['ods'].grid(row = 0, column = 2, padx=5, pady=5)   
    
    group = tk.LabelFrame(glb.GUI.motifs['tab'], text='Tools')
    group.grid(row=3, column=0)
    
    labrange = tk.Label(group, text='Precision Factor:')
    labrange.grid(row=1, column=0, sticky=tk.W)

    framerange = tk.Frame(group)
    framerange.grid(row=1, column=1, sticky=tk.N)
    ballrange = Pmw.Balloon(group)
    ballrange.bind(framerange, 'Multiplier for default measured values')
    glb.GUI.motifs['delta'] = tk.Spinbox(framerange, width=4,
        bg="#ffffff", increment="0.01", from_="0.01", to="2.00")
    glb.GUI.motifs['delta'].grid(row=1, column=1, sticky=tk.N)
    glb.GUI.motifs['delta'].delete(0,4)
    glb.GUI.motifs['delta'].insert(0,'1.00')
    
    glb.GUI.motifs['align'] = tk.IntVar()
    alignbox = tk.Checkbutton(group, text="Show alignment?",
        variable=glb.GUI.motifs['align'])
    alignbox.grid(row=2, column=0)
    alignbox.bind("<ButtonRelease-1>", togglealign)
    
    tempcollab = tk.Label(group, text="Template Color")
    tempcollab.grid(row=3, column=0, sticky=tk.E)
    glb.GUI.motifs['templatecolor'] = tk.Canvas(group, bg='#ffffff', width=50,
        height=25, bd=3, relief=tk.SUNKEN)
    glb.GUI.motifs['templatecolor'].grid(row=3,column=1)
    
    motcollab = tk.Label(group, text="Motif Color")
    motcollab.grid(row=4, column=0, sticky=tk.E)
    glb.GUI.motifs['motifcolor'] = tk.Canvas(group, bg='#ff0000', width=50,
        height=25, bd=3, relief=tk.SUNKEN)
    glb.GUI.motifs['motifcolor'].grid(row=4,column=1)