from org.csstudio.display.builder.runtime.script import PVUtil import pickle data = [] try: from ipts_items.data import SampleInfo try: pickled = PVUtil.getString(pvs[0], True) samples = pickle.loads(pickled) except: samples = [ SampleInfo(-1, dict()) ] for sample in samples: mass = "%g g" % sample.mass if sample.mass > 0 else "N/A" data.append([ str(sample.sample_id), sample.name.decode('utf-8'), sample.description.decode('utf-8'), mass, sample.container.decode('utf-8'), sample.nature.decode('utf-8') ]) except: data = [ [ "-1", "", "", "", "", "", "" ] ] # Clear selection to prevent selecting same row in changed data widget.setSelection(list()) widget.setValue(data)