viewhelper.py (4642B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\viewhelper.py 2 from __future__ import print_function 3 from carbonui.control.checkbox import Checkbox 4 from carbonui.control.combo import Combo 5 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText 6 from carbonui.control.scrollContainer import ScrollContainer 7 from carbonui.control.slider import Slider 8 from carbonui.primitives.container import Container 9 from eve.client.script.ui.control.eveLabel import Label 10 import carbonui.const as uiconst 11 12 def CreateSlider(label, minValue, maxValue, startValue, valueChangedFunc, parent): 13 name = GetGenericName(label) 14 container = CreateContainer(name, parent, padTop=0, padBottom=16) 15 slider = _CreateSlider(name, label, minValue, maxValue, startValue, valueChangedFunc, container) 16 return slider 17 18 19 def CreateDropdownWithCheckbox(label, values, select, dropdownCallback, checkboxLabel, checkboxCallback, parent): 20 name = GetGenericName(label) 21 container = CreateContainer(name, parent) 22 dropdown = CreateCombo(name, values, dropdownCallback, select, label, container) 23 checkbox = CreateCheckbox(name, checkboxLabel, checkboxCallback, container) 24 return (dropdown, checkbox) 25 26 27 def CreateLabel(name, width, height, parent, align = uiconst.TOLEFT): 28 container = CreateContainer(name, parent) 29 label = Label(name=name, text=name, align=align, width=width, height=height, padLeft=5, padRight=5, padTop=0, padBottom=0, parent=container) 30 return label 31 32 33 def CreateScrollContainer(name, width, height, parent, align = uiconst.TOTOP): 34 container = ScrollContainer(name=name + '_scrollContainer', align=align, width=width, height=height, padLeft=5, padRight=5, padTop=10, parent=parent) 35 return container 36 37 38 def CreateDropdown(label, values, callback, select, parent, align = uiconst.TOLEFT): 39 name = GetGenericName(label) 40 container = CreateContainer(name, parent) 41 combo = CreateCombo(name, values, callback, select, label, container, align) 42 return combo 43 44 45 def CreateInput(label, value, callback, parent, align = uiconst.TOLEFT): 46 name = GetGenericName(label) 47 container = CreateContainer(name, parent) 48 inputField = _CreateInput(name, value, callback, label, container, align) 49 return inputField 50 51 52 def GetComboListIndex(comboContentList, name): 53 for index, each in enumerate(comboContentList): 54 if each.lower() == name.lower(): 55 return index 56 57 58 def GetGenericName(label): 59 return label.replace(' ', '_').replace(':', '').strip().lower() 60 61 62 def TrySettingComboOptions(comboBox, options, selectedValue): 63 options = sorted(options) 64 if 'None' in options: 65 o = options.pop(options.index('None')) 66 options.insert(0, o) 67 optionTuple = [ (name, i) for i, name in enumerate(options) ] 68 comboBox.LoadOptions(optionTuple) 69 return TrySettingComboValue(comboBox, selectedValue) 70 71 72 def TrySettingComboValue(comboBox, selectedValue): 73 try: 74 comboBox.SelectItemByLabel(selectedValue) 75 except RuntimeError: 76 comboBox.SelectItemByIndex(0) 77 print("Could not select '%s', defaulting to '%s'" % (selectedValue, comboBox.GetKey())) 78 79 return comboBox.GetKey() 80 81 82 def CreateCheckbox(name, checkboxLabel, checkboxCallback, parent, align = uiconst.TOLEFT, noPadding = False): 83 return Checkbox(name=name + '_constraint', align=align, width=75, height=32, padLeft=0 if noPadding else 10, parent=parent, text=checkboxLabel, callback=checkboxCallback) 84 85 86 def CreateCombo(name, values, callback, select, label, parent, align = uiconst.TOLEFT, width = 150): 87 return Combo(name=name + '_combo', align=align, width=width, height=32, parent=parent, label=label, options=[ (name, i) for i, name in enumerate(values) ], callback=callback, select=select) 88 89 90 def _CreateInput(name, value, callback, label, parent, align = uiconst.TOLEFT): 91 return SingleLineEditText(name=name + '_input', align=align, label=label, parent=parent, width=150, height=18, setvalue=value, OnFocusLost=callback, OnReturn=callback) 92 93 94 def _CreateSlider(name, label, minValue, maxValue, startVal, valueChangeFunc, parent, align = uiconst.TOLEFT): 95 return Slider(name=name, align=align, label=label, parent=parent, width=150, height=18, minValue=minValue, maxValue=maxValue, value=startVal, on_dragging=valueChangeFunc, callback=valueChangeFunc) 96 97 98 def CreateContainer(name, parent, padTop = 16, padBottom = 0, align = uiconst.TOTOP): 99 return Container(name=name + '_container', parent=parent, align=align, height=32, padTop=padTop, padBottom=padBottom, padLeft=5, padRight=5)