"""
    lidiaAcedrg_gui.py
    Copyright (C) 2015 Newcastle University
    Author: Martin Noble
    
    """

from PyQt4 import QtGui,QtCore

from CCP4TaskWidget import CTaskWidget

#-------------------------------------------------------------------
class lidiaAcedrgNew_gui(CTaskWidget):
    #-------------------------------------------------------------------
    TASKMODULE = 'ligands'       # Where this plugin will appear on the gui
    TASKTITLE = 'Make Ligand - Acedrg'     # A short title for gui menu
    DESCRIPTION = 'Generate a PDB file and dictionary (acedrg) from MOL file, SMILES string/file, or sketch (lidia).<br>Optionally match atom names to known structures.'
    TASKVERSION = 0.1
    TASKNAME = 'LidiaAcedrgNew'
    RANK=1

    def drawContents(self):
        
        self.openFolder(folderFunction='inputData')
        
        self.createLine ( [ 'advice',' '] )
        self.createLine ( [ 'advice',' '] )
        
        self.createLine(['subtitle','Start point'])
        self.openSubFrame( frame=[True])
        self.createLine ( [ 'label','Start with molecular structure from ','stretch','widget','MOLSMILESORSKETCH' ] )
        
        self.createLine ( [ 'advice', 'Will launch Lidia to sketch molecule. Click Apply <b>and</b> Close in Lidia when sketch is ready.' ], toggle=['MOLSMILESORSKETCH','open',['SKETCH']])
        self.createLine ( [ 'advice', 'Optionally can provide a starting monomer for the Lidia sketch:' ], toggle=['MOLSMILESORSKETCH','open',['SKETCH']])
        
        self.createLine ( [ 'widget','MOLIN' ], toggle=['MOLSMILESORSKETCH','open',['SKETCH','MOL']] )
        
        self.createLine ( [ 'widget', '-guiMode', 'multiLine', 'SMILESIN' ] , toggle=['MOLSMILESORSKETCH','open',['SMILES']])
        self.createLine ( [ 'label', 'SMILES file', 'widget', 'SMILESFILEIN' ] , toggle=['MOLSMILESORSKETCH','open',['SMILESFILE']])
        self.closeSubFrame()


        self.createLine(['subtitle','Output monomer'])
        self.openSubFrame( frame=[True])
        self.createLine ( [ 'label','Three letter code for output monomer','stretch','widget','TLC' ])
        self.closeSubFrame()
        
        try:
            import ccp4srs
            dummy = ccp4srs.Graph()
            self.createLine(['subtitle','Atom Naming'])
            self.openSubFrame( frame=[True])
            self.createLine ( [ 'label','Attempt to match atom names with ','stretch','widget','ATOMMATCHOPTION' ] )
            self.createLine ( [ 'label','Three letter code to match atom names with','stretch','widget','MATCHTLC' ], toggle=['ATOMMATCHOPTION','open',['MONLIBCODE']])
            self.createLine ( [ 'label','User supplied dictionary to match atom names with','stretch' ], toggle=['ATOMMATCHOPTION','open',['LOCALDICT']])
            self.createLine ( [ 'widget','DICTIN' ], toggle=['ATOMMATCHOPTION','open',['LOCALDICT']])
            self.closeSubFrame()
        except:
            print "Atom naming requires more recent version of ccp4srs-python"

        self.openFolder(title='Advanced')
        """
        self.createLine(['advice','Geometry restraints *always* taken from ACEDRG'])
        self.createLine(['label','Output conformers generated by','stretch','widget','CONFORMERSFROM'])
        self.openSubFrame( frame=[False], toggle=['CONFORMERSFROM','open',['RDKIT']] )
        """
        self.createLine ( [ 'label','Number of random RDKit start structures','widget','-toolTip','More start structures may provide a beter start conformer','NRANDOM' ] )
        self.closeSubFrame()




    def isValid(self):
        invalidElements = super(lidiaAcedrgNew_gui, self).isValid()
        if self.container.inputData.MOLSMILESORSKETCH.__str__() == 'SMILES':
            self.container.inputData.MOLIN.unSet()
        return invalidElements
