dogmaTimeWnd.py (4194B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\devtools\script\dogmaTimeWnd.py 2 import datetime 3 import dogma.attributes.datetime 4 import datetimeutils 5 from carbonui import uiconst 6 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText 7 from carbonui.primitives.container import Container 8 from carbonui.control.button import Button 9 from carbonui.primitives.containerAutoSize import ContainerAutoSize 10 from eve.client.script.ui.control.dateSinglelineEdit import DatePickerControl, HourMinPickerControl 11 from eve.client.script.ui.control.eveLabel import EveLabelMedium 12 from carbonui.control.window import Window 13 HINT_TEXT = 'Enter the date and time in the format YYYY/MM/DD - HH:MM Then click the button to update the result.' 14 15 class DogmaTimeConverterWindow(Window): 16 default_windowID = 'DogmaTimeConverterWindow' 17 default_name = 'DogmaTimeConverterWindow' 18 default_caption = 'Dogma Datetime Converter' 19 20 def ApplyAttributes(self, attributes): 21 super(DogmaTimeConverterWindow, self).ApplyAttributes(attributes) 22 self.Layout() 23 24 def Layout(self): 25 now = datetime.datetime.now() 26 EveLabelMedium(parent=self.content, text=HINT_TEXT, align=uiconst.TOTOP) 27 self.pickerCont = ContainerAutoSize(parent=self.content, align=uiconst.TOTOP, height=Button.default_height, padTop=8) 28 self.datePicker = DatePickerControl(name='fromPicker', parent=self.pickerCont, setValue=[now.year, now.month, now.day], ranges=(0, datetimeutils.date_to_blue(datetime.datetime.max)), fontSize=16, align=uiconst.TOLEFT) 29 EveLabelMedium(parent=ContainerAutoSize(parent=self.pickerCont, align=uiconst.TOLEFT), text='-', align=uiconst.CENTER, padLeft=8, padRight=8) 30 self.hourMinPicker = HourMinPickerControl(parent=self.pickerCont, setValue=(now.hour, now.minute), fontSize=16, align=uiconst.TOLEFT) 31 self.button = Button(parent=self.pickerCont, align=uiconst.TOLEFT, func=self.OnButtonClick, label='Convert', padLeft=8) 32 self.resultField = SingleLineEditText(parent=self.pickerCont, align=uiconst.TOLEFT, width=100, padLeft=8) 33 self.ApplyWindowSize() 34 35 def ApplyWindowSize(self): 36 content_height = sum((each.height + each.padTop + each.padBottom + each.top for each in self.content.children)) 37 _, window_height = self.GetWindowSizeForContentSize(height=content_height) 38 self.height = window_height 39 self.width = 370 40 self.SetMinSize([self.width, self.height], refresh=True) 41 self.MakeUnResizeable() 42 43 def LayoutOld(self): 44 left = 10 45 now = datetime.datetime.now() 46 self.explanationCont = Container(parent=self.sr.main, align=uiconst.TOTOP, height=40) 47 label = EveLabelMedium(parent=self.explanationCont, text=HINT_TEXT, align=uiconst.TOLEFT, width=340, padLeft=5) 48 label.Layout() 49 self.pickerCont = Container(parent=self.sr.main, align=uiconst.TOTOP, height=20) 50 self.datePicker = DatePickerControl(name='fromPicker', parent=self.pickerCont, setValue=[now.year, now.month, now.day], left=left, ranges=(0, datetimeutils.date_to_blue(datetime.datetime.max)), fontSize=16, align=uiconst.TOLEFT) 51 EveLabelMedium(parent=self.pickerCont, text='-', align=uiconst.TOLEFT, width=7, padLeft=7) 52 self.hourMinPicker = HourMinPickerControl(parent=self.pickerCont, left=left, setValue=(now.hour, now.minute), fontSize=16, align=uiconst.TOLEFT) 53 self.button = Button(parent=self.pickerCont, align=uiconst.TOLEFT, func=self.OnButtonClick, width=100, height=20, label='Convert', padLeft=5) 54 self.resultField = SingleLineEditText(parent=self.pickerCont, align=uiconst.TOLEFT, width=100, height=20, padLeft=5, top=0) 55 56 def OnButtonClick(self, *args): 57 dateStamp = self.datePicker.GetTimestamp() 58 timeStamp = self.hourMinPicker.GetTimestamp() 59 dateTimeStamp = dateStamp + timeStamp 60 self.resultField.SetText(dogma.attributes.datetime.time_as_float(dateTimeStamp)) 61 62 63 def OpenWindow(): 64 win = Window.GetIfOpen(windowID=DogmaTimeConverterWindow.default_windowID) 65 if win: 66 win.Show() 67 else: 68 DogmaTimeConverterWindow.Open()