import olex
import olx
import OlexVFS
import os
from olexFunctions import OlexFunctions
OV = OlexFunctions()
def BGColorForValue(value):
if value == '' or value == '?':
return "#FFDCDC"
return OV.GetParam('gui.html.input_bg_colour')
class MultipleDataset:
def check(self):
if olx.IsFileType('cif') == 'false':
return False
if int(olx.xf.DataCount()) <= 1:
return False
return True
def generateHtml(self):
html = "
"
if olx.IsFileType('cif') == 'true':
current = int(olx.xf.CurrentData())
else:
current = 1
cnt = int(olx.xf.DataCount())
counter = -1
for i in xrange(0, cnt):
if olx.IsFileType('cif') == 'true':
if olx.xf.DataName(i) == "global" or not olx.xf.DataName(i):
continue
counter += 1
display = ""
if olx.IsFileType('cif') == 'true':
name = olx.xf.DataName(i)
else:
name = OV.FileName()
# if len(name) < 3:
# display = "Structure %s" %name
if len(name) > 15:
display = "%s..%s" %(name[:6], name[-6:])
else:
display = name
if i > 0 and (counter%4) == 0:
html += "
"
if i == current:
html += "" + display + " (*) | "
else:
action = 'reap filename().cif#' + str(i)
#html += ""\
#+ display + " | "
html += '''
$+
html.Snippet(GetVar(default_link),
"value='%s'",
"onclick=%s"
)
$-''' %(display, action)
html + "
"
name = 'multicif.htm'
OlexVFS.write_to_olex(name, html)
return "" %name
mds = MultipleDataset()
olex.registerFunction(mds.check, False, "gui.home.multiple_dataset")
olex.registerFunction(mds.generateHtml, False, "gui.home.multiple_dataset")