phaseStabilizerBracket.py (3804B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\bracketsAndTargets\phaseStabilizerBracket.py 2 from carbonui import Align 3 from carbonui.button.group import ButtonSizeMode, ButtonGroup 4 from dynamicresources.client.ess.bracket.camera import InFlightCameraReference 5 from eve.client.script.remote.michelle import GetMichelle 6 from eve.client.script.ui.control.statefulButton import StatefulButton 7 from eve.client.script.ui.inflight.bracketsAndTargets.expanded_bracket import ExpandedBracket 8 from eve.client.script.ui.inflight.bracketsAndTargets.inSpaceBracket import InSpaceBracket 9 import carbonui.const as uiconst 10 from spacecomponents.client.ui.phaseStabilizer.connectBtnController import ConnectBtnController 11 from spacecomponents.client.ui.phaseStabilizer.phaseStabilizerSpaceUiController import PhaseStabilizerSpaceUiController 12 from spacecomponents.client.ui.rootTransformController import RootTransformController 13 from carbonui.uiconst import PickState 14 15 class PhaseStabilizerBracket(InSpaceBracket): 16 17 def has_expanded_bracket(self): 18 return True 19 20 def show_expanded_bracket(self): 21 if not self.expanded_bracket: 22 self.expanded_bracket = ExpandedPhaseStabilizerBracket(parent=self.parent, item_id=self.itemID, bracket=self, idx=0, slimItem=self.slimItem) 23 self.expanded_bracket.CreatePhaseStabilizerContoller(self) 24 25 def update_attached_objects(self): 26 if self.expanded_bracket: 27 self.expanded_bracket.update_attached_objects() 28 super(PhaseStabilizerBracket, self).update_attached_objects() 29 30 31 class ExpandedPhaseStabilizerBracket(ExpandedBracket): 32 showDistance = 0 33 34 def __init__(self, item_id, bracket = None, **kwargs): 35 self.phaseStabilizerUiController = None 36 self._button = None 37 super(ExpandedPhaseStabilizerBracket, self).__init__(item_id=item_id, bracket=bracket, **kwargs) 38 39 def construct_labels(self): 40 super(ExpandedPhaseStabilizerBracket, self).construct_labels() 41 btnController = self._GetBtnController() 42 self.button_group = ButtonGroup(parent=self.layout_grid, align=uiconst.TOTOP_NOPUSH, button_size_mode=ButtonSizeMode.STRETCH) 43 self._button = StatefulButton(parent=self.button_group, align=uiconst.TOPLEFT, controller=btnController, enabled=False) 44 if not btnController: 45 self.button_group.Hide() 46 47 def _GetBtnController(self): 48 locationBtnController = ConnectBtnController(dockabeLocationID=None, solarSystemID=session.solarsystemid2, typeID=self.slim_item.typeID, itemID=self.slim_item.itemID) 49 return locationBtnController 50 51 def CreatePhaseStabilizerContoller(self, bracket): 52 if self.phaseStabilizerUiController is None: 53 ball = GetMichelle().GetBall(self.item_id) 54 _scene_manager = sm.GetService('sceneManager') 55 scene = _scene_manager.GetRegisteredScene('default') 56 self._root = RootTransformController(ball=ball, scene=scene, name='fromBracket') 57 _camera = InFlightCameraReference(_scene_manager) 58 self.phaseStabilizerUiController = PhaseStabilizerSpaceUiController(item_id=self.item_id, type_id=self.slim_item.typeID, camera=_camera, root_transform=self._root.transform, offset_y=0, scale=1500, contentContainer=bracket) 59 60 def update_attached_objects(self): 61 if self._button: 62 self._button.controller.UpdateStateIfNeeded() 63 64 def Close(self, *args, **kw): 65 super(ExpandedPhaseStabilizerBracket, self).Close() 66 self._KillSpaceController() 67 self._root = None 68 69 def _KillSpaceController(self): 70 if self.phaseStabilizerUiController: 71 self.phaseStabilizerUiController.close() 72 self.phaseStabilizerUiController = None