groupEntryCont.py (3851B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\structureSettings\groupEntryCont.py 2 from menu import MenuLabel 3 from eve.client.script.ui.control.eveLabel import EveLabelMedium 4 import carbonui.const as uiconst 5 from eve.client.script.ui.structure.structureSettings.profileEntry import ProfileEntryBase 6 from eve.client.script.ui.structure.structureSettings.uiSettingUtil import AddValueEdit 7 from localization import GetByLabel 8 import structures 9 from utillib import KeyVal 10 LABEL_LEFT = 26 11 VALUE_TYPES = (structures.SETTINGS_TYPE_INT, 12 structures.SETTINGS_TYPE_FLOAT, 13 structures.SETTINGS_TYPE_PERCENTAGE, 14 structures.SETTINGS_TYPE_ISK) 15 16 class GroupEntry(ProfileEntryBase): 17 default_align = uiconst.TOTOP 18 default_state = uiconst.UI_NORMAL 19 default_height = 28 20 isDragObject = True 21 rightBtnTexturePath = 'res:/UI/Texture/Icons/73_16_210.png' 22 23 def ApplyAttributes(self, attributes): 24 ProfileEntryBase.ApplyAttributes(self, attributes) 25 self.settingGroupController = attributes.settingGroupController 26 self.structureProfileController = attributes.structureProfileController 27 self.groupID = attributes.groupID 28 groupInfo = attributes.groupInfo 29 hint = GetByLabel('UI/StructureSettingWnd/RemoveGroup') 30 EveLabelMedium(name='groupName', parent=self, left=LABEL_LEFT, align=uiconst.CENTERLEFT, text=groupInfo['name'], hint=groupInfo['description']) 31 self.valueEdit = None 32 if self.settingGroupController.GetSettingType() in VALUE_TYPES: 33 self.AddValueEdit() 34 35 def OnRightBtnClicked(self, *args): 36 self.RemoveGroup() 37 38 def GetDragData(self): 39 accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController() 40 groupInfo = accessGroupsController.GetGroupInfoFromID(self.groupID) 41 if not groupInfo: 42 return [] 43 ret = KeyVal(nodeType='AccessGroupEntry', groupID=self.groupID, label=groupInfo['name']) 44 return [ret] 45 46 def GetMenu(self, *args): 47 m = [(MenuLabel('UI/StructureSettingWnd/RemoveGroup'), self.RemoveGroup, ()), (MenuLabel('UI/StructureSettingWnd/ShowGroupInfo'), self.ShowGroupInfo, ())] 48 accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController() 49 myGroups = accessGroupsController.GetMyGroups() 50 if self.groupID in myGroups: 51 m += [(MenuLabel('UI/StructureSettingWnd/ViewGroup'), self.ViewGroup, ())] 52 return m 53 54 def RemoveGroup(self): 55 self.structureProfileController.RemoveGroup(self.settingGroupController) 56 57 def Close(self): 58 self.settingGroupController = None 59 ProfileEntryBase.Close(self) 60 61 def AddValueEdit(self): 62 if self.settingGroupController.GetSettingType() in VALUE_TYPES: 63 self.valueEdit = AddValueEdit(parent=self, sgController=self.settingGroupController, callback=self.OnValueChanged) 64 self.valueEdit.left = self.rightBtn.left + self.rightBtn.width 65 66 def OnValueChanged(self, *args): 67 if self.valueEdit is None: 68 return 69 value = self.valueEdit.GetValue() 70 self.settingGroupController.SetValue(value) 71 72 def ShowGroupInfo(self): 73 from eve.client.script.ui.structure.accessGroups.groupInfoWnd import GroupInfoWnd 74 GroupInfoWnd.Open(groupID=self.groupID, windowID='groupInfoWnd_%s' % self.groupID) 75 return True 76 77 def ViewGroup(self): 78 accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController() 79 from eve.client.script.ui.structure.accessGroups.accesGroupsWnd import AccessGroupsWnd 80 wnd = AccessGroupsWnd.GetIfOpen() 81 accessGroupsController.SelectGroup(self.groupID, sendSignal=bool(wnd)) 82 if not wnd: 83 AccessGroupsWnd.Open()