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