128 lines
2.7 KiB
Plaintext
128 lines
2.7 KiB
Plaintext
from com.inductiveautomation.ignition.common import BasicDataset
|
|
from com.inductiveautomation.ignition.common.script.builtin.DatasetUtilities import PyDataSet
|
|
from java.util import Date
|
|
def sanitize_tree(element):
|
|
if hasattr(element, '__iter__'):
|
|
if hasattr(element, 'keys'):
|
|
return dict((k, sanitize_tree(element[k])) for k in element.keys())
|
|
else:
|
|
return list(sanitize_tree(x) for x in element)
|
|
return element
|
|
def getColumnStruct():
|
|
return {
|
|
"field": "",
|
|
"visible": True,
|
|
"editable": False,
|
|
"render": "auto",
|
|
"justify": "auto",
|
|
"align": "center",
|
|
"resizable": True,
|
|
"sortable": True,
|
|
"sort": "none",
|
|
"filter": {
|
|
"enabled": False,
|
|
"visible": "on-hover",
|
|
"string": {
|
|
"condition": "",
|
|
"value": ""
|
|
},
|
|
"number": {
|
|
"condition": "",
|
|
"value": ""
|
|
},
|
|
"boolean": {
|
|
"condition": ""
|
|
},
|
|
"date": {
|
|
"condition": "",
|
|
"value": ""
|
|
}
|
|
},
|
|
"viewPath": "",
|
|
"viewParams": {},
|
|
"boolean": "checkbox",
|
|
"number": "value",
|
|
"progressBar": {
|
|
"max": 100,
|
|
"min": 0,
|
|
"bar": {
|
|
"color": "",
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
},
|
|
"track": {
|
|
"color": "",
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
},
|
|
"value": {
|
|
"enabled": True,
|
|
"format": "0,0.##",
|
|
"justify": "center",
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
}
|
|
},
|
|
"toggleSwitch": {
|
|
"color": {
|
|
"selected": "",
|
|
"unselected": ""
|
|
}
|
|
},
|
|
"nullFormat": {
|
|
"includeNullStrings": False,
|
|
"strict": False,
|
|
"nullFormatValue": ""
|
|
},
|
|
"numberFormat": "0,0.##",
|
|
"dateFormat": "MMM-DD HH:mm",
|
|
"width": "",
|
|
"strictWidth": False,
|
|
"header": {
|
|
"title": "",
|
|
"justify": "left",
|
|
"align": "center",
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
},
|
|
"footer": {
|
|
"title": "",
|
|
"justify": "left",
|
|
"align": "center",
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
},
|
|
"style": {
|
|
"classes": ""
|
|
}
|
|
}
|
|
def xformTableColumns(dataIn):
|
|
|
|
if isinstance(dataIn, PyDataSet):
|
|
data = dataIn
|
|
elif isinstance(dataIn, BasicDataset):
|
|
data = system.dataset.toPyDataSet(dataIn)
|
|
elif isinstance(dataIn, dict):
|
|
pass
|
|
|
|
colHeaders = system.dataset.getColumnHeaders(data)
|
|
columns = []
|
|
if len(data)> 0:
|
|
for col in colHeaders:
|
|
struct= utils.helper.getColumnStruct()
|
|
struct["field"] = col
|
|
if isinstance(data[0][col], Date):
|
|
struct["render"] = "date"
|
|
columns.append(struct)
|
|
else:
|
|
for col in colHeaders:
|
|
struct= utils.helper.getColumnStruct()
|
|
struct["field"] = col
|
|
columns.append(struct)
|
|
|
|
return columns |