NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

formContainer.py (1487B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\control\forms\formContainer.py
      2 from carbonui import uiconst
      3 from carbonui.button.group import ButtonGroup
      4 from carbonui.control.forms import formFields
      5 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      6 from player_messaging.client.ui_message import message_player
      7 
      8 class FormContainer(ContainerAutoSize):
      9     default_components = None
     10     default_align = uiconst.TOTOP
     11 
     12     def ApplyAttributes(self, attributes):
     13         super(FormContainer, self).ApplyAttributes(attributes)
     14         self.form = attributes.form
     15         self.ConstructFields()
     16         self.ConstructButtonGroup()
     17         self.form.on_submit_failed.connect(self.OnSubmitFailed)
     18 
     19     def ConstructFields(self):
     20         formFields.ConstructFields(self, self.form)
     21 
     22     def ConstructButtonGroup(self):
     23         buttonGroup = ButtonGroup(parent=self, align=uiconst.TOTOP, padTop=16)
     24         for submit_action in self.form.actions:
     25             buttonGroup.AddButton(submit_action.label, lambda button, s = submit_action: self._execute_submit_action(s, button))
     26 
     27     def _execute_submit_action(self, submit_action, button):
     28         button.Disable()
     29         button.busy = True
     30         try:
     31             submit_action.execute(self.form)
     32         finally:
     33             button.Enable()
     34             button.busy = False
     35 
     36     def OnSubmitFailed(self, action):
     37         message_player(self.form.get_submit_failed_reasons_text())