def __init__(self, master, helpURL=None): self.model = TelMechModel.getModel() DevStateWdg.__init__(self, master = master, catInfo = self.model.catDict["Eyelids"], helpText = "State of the eyelids", helpURL = helpURL, ) self.catInfo = self.model.catDict["Eyelids"] self.tertRot = self.model.tertRot self.model.tertRot.addCallback(self.updateState, callNow=False)
def __init__(self, master, helpURL=None): self.model = TelMechModel.getModel() DevStateWdg.__init__( self, master=master, catInfo=self.model.catDict["Eyelids"], helpText="State of the eyelids", helpURL=helpURL, ) self.catInfo = self.model.catDict["Eyelids"] self.tertRot = self.model.tertRot self.model.tertRot.addCallback(self.updateState, callNow=False)
def __init__(self, master, **kargs): """Create a new widget to show status for and configure the enclosure controller """ Tkinter.Frame.__init__(self, master, **kargs) self.model = TelMechModel.getModel() self.tuiModel = TUI.TUIModel.getModel() # dict of category: sequence of detailed controls (for show/hide) self.detailWdgDict ={} self.pendingCmds = [] self.col = 0 self.row = 0 self.statusRow = 0 self.addCategory("Shutters") self.row += 1 self.addCategory("Fans") self.startNewColumn() RO.Wdg.StrLabel( master = self, text = "Mir Covers", helpURL = _HelpURL, ).grid(row=self.row, column=self.col) self.row += 1 coversFrame = Tkinter.Frame(master = self) self.coversUserWdg = RO.Wdg.Checkbutton( master = coversFrame, autoIsCurrent = True, command = self.doCoversCmd, helpText = "Open the primary mirror covers?", helpURL = _HelpURL, ) self.coversUserWdg.pack(side="left") self.coversCurrWdg = RO.Wdg.Label( master = coversFrame, width = 6, anchor = "w", helpText = "State of the primary mirror covers?", helpURL = _HelpURL, ) self.coversCurrWdg.pack(side="left") coversFrame.grid(row=self.row, column=self.col, sticky="w") self.row += 3 self.model.covers.addIndexedCallback(self.updateCovers) RO.Wdg.StrLabel( master = self, text = "Tert Rot", helpURL = _HelpURL, ).grid(row=self.row, column=self.col) self.row += 1 self.tertRotWdg = RO.Wdg.OptionMenu( master = self, items = self.model.catDict["Eyelids"].devDict.keys(), noneDisplay = "?", ignoreCase = True, autoIsCurrent = True, defMenu = "Default", callFunc = self.tertRotEnable, helpText = "Tertiary rotation", helpURL = _HelpURL, ) self.tertRotWdg.grid(row=self.row, column=self.col) self.row += 1 self.tertRotApplyWdg = RO.Wdg.Button( master = self, text = "Apply", callFunc = self.doTertRotApply, helpText = "Apply tertiary rotation", helpURL = _HelpURL, ) self.tertRotApplyWdg.grid(row=self.row, column=self.col) self.row += 1 self.tertRotCurrWdg = RO.Wdg.Button( master = self, text = "Current", callFunc = self.doTertRotRestore, helpText = "Show current tertiary rotation", helpURL = _HelpURL, ) self.tertRotCurrWdg.grid(row=self.row, column=self.col) self.row += 1 self.model.tertRot.addIndexedCallback(self.updateTertRot) self.startNewColumn() self.eyelidsState = EyelidsStateWdg( master = self, helpURL = _HelpURL, ) self.eyelidsOpenWdg = RO.Wdg.Button( master = self, text = "Open All", callFunc = self.doEyelidsOpen, helpText = "Open all eyelids", helpURL = _HelpURL, ) self.eyelidsCloseWdg = RO.Wdg.Button( master = self, text = "Close All", callFunc = self.doEyelidsClose, helpText = "Close all eyelids", helpURL = _HelpURL, ) self.addCategory( catName = "Eyelids", extraWdgs = (self.eyelidsState, self.eyelidsOpenWdg, self.eyelidsCloseWdg), ) self.startNewColumn() self.lightsState = DevStateWdg( master = self, catInfo = self.model.catDict["Lights"], onIsNormal = False, patternDict = { (0, 0, 0, 0, 0, 0, 1, 0): ("Main Off", RO.Constants.sevNormal), }, helpText = "State of the lights", helpURL = _HelpURL, ) self.lightsMainOffWdg = RO.Wdg.Button( master = self, text = "Main Off", callFunc = self.doLightsMainOff, helpText = "Turn off all lights except int. incandescents", helpURL = _HelpURL, ) self.addCategory("Lights", extraWdgs=(self.lightsState, self.lightsMainOffWdg)) self.startNewColumn() self.louversState = DevStateWdg( master = self, catInfo = self.model.catDict["Louvers"], onIsNormal = True, helpText = "State of the louvers", helpURL = _HelpURL, ) self.louversOpenWdg = RO.Wdg.Button( master = self, text = "Open All", callFunc = self.doLouversOpen, helpText = "Open all louvers", helpURL = _HelpURL, ) self.louversCloseWdg = RO.Wdg.Button( master = self, text = "Close All", callFunc = self.doLouversClose, helpText = "Close all louvers", helpURL = _HelpURL, ) self.addCategory( catName = "Louvers", extraWdgs = (self.louversState, self.louversOpenWdg, self.louversCloseWdg), ) self.startNewColumn() self.heatersState = DevStateWdg( master = self, catInfo = self.model.catDict["Heaters"], onIsNormal = False, helpText = "State of the roof heaters", helpURL = _HelpURL, ) self.heatersOffWdg = RO.Wdg.Button( master = self, text = "All Off", callFunc = self.doHeatersOff, helpText = "Turn off all roof heaters", helpURL = _HelpURL, ) self.heatersOnWdg = RO.Wdg.Button( master = self, text = "All On", callFunc = self.doHeatersOn, helpText = "Turn on all roof heaters", helpURL = _HelpURL, ) self.addCategory( catName = "Heaters", extraWdgs = (self.heatersState, self.heatersOffWdg, self.heatersOnWdg), ) self.statusBar = RO.Wdg.StatusBar( master = self, dispatcher = self.tuiModel.dispatcher, prefs = self.tuiModel.prefs, playCmdSounds = True, summaryLen = 20, helpURL = _HelpURL, ) self.statusBar.grid( column=0, row=self.statusRow + 1, columnspan = self.col - 1, sticky="sew", ) self.cancelBtn = RO.Wdg.Button( master = self, text = "Cancel", callFunc = self.cancelCmds, helpText = "Cancel all executing commands", helpURL = _HelpURL, ) self.cancelBtn.setEnable(False) self.cancelBtn.grid( column = self.col, row = self.statusRow + 1, columnspan = _ColsPerDev, )
def __init__(self, master, **kargs): """Create a new widget to show status for and configure the enclosure controller """ Tkinter.Frame.__init__(self, master, **kargs) self.model = TelMechModel.getModel() self.tuiModel = TUI.TUIModel.getModel() # dict of category: sequence of detailed controls (for show/hide) self.detailWdgDict = {} self.pendingCmds = [] self.col = 0 self.row = 0 self.statusRow = 0 self.addCategory("Shutters") self.row += 1 self.addCategory("Fans") self.startNewColumn() RO.Wdg.StrLabel( master=self, text="Mir Covers", helpURL=_HelpURL, ).grid(row=self.row, column=self.col) self.row += 1 coversFrame = Tkinter.Frame(master=self) self.coversUserWdg = RO.Wdg.Checkbutton( master=coversFrame, autoIsCurrent=True, command=self.doCoversCmd, helpText="Open the primary mirror covers?", helpURL=_HelpURL, ) self.coversUserWdg.pack(side="left") self.coversCurrWdg = RO.Wdg.Label( master=coversFrame, width=6, anchor="w", helpText="State of the primary mirror covers?", helpURL=_HelpURL, ) self.coversCurrWdg.pack(side="left") coversFrame.grid(row=self.row, column=self.col, sticky="w") self.row += 3 self.model.covers.addIndexedCallback(self.updateCovers) RO.Wdg.StrLabel( master=self, text="Tert Rot", helpURL=_HelpURL, ).grid(row=self.row, column=self.col) self.row += 1 self.tertRotWdg = RO.Wdg.OptionMenu( master=self, items=self.model.catDict["Eyelids"].devDict.keys(), noneDisplay="?", ignoreCase=True, autoIsCurrent=True, defMenu="Default", callFunc=self.tertRotEnable, helpText="Tertiary rotation", helpURL=_HelpURL, ) self.tertRotWdg.grid(row=self.row, column=self.col) self.row += 1 self.tertRotApplyWdg = RO.Wdg.Button( master=self, text="Apply", callFunc=self.doTertRotApply, helpText="Apply tertiary rotation", helpURL=_HelpURL, ) self.tertRotApplyWdg.grid(row=self.row, column=self.col) self.row += 1 self.tertRotCurrWdg = RO.Wdg.Button( master=self, text="Current", callFunc=self.doTertRotRestore, helpText="Show current tertiary rotation", helpURL=_HelpURL, ) self.tertRotCurrWdg.grid(row=self.row, column=self.col) self.row += 1 self.model.tertRot.addIndexedCallback(self.updateTertRot) self.startNewColumn() self.eyelidsState = EyelidsStateWdg( master=self, helpURL=_HelpURL, ) self.eyelidsOpenWdg = RO.Wdg.Button( master=self, text="Open All", callFunc=self.doEyelidsOpen, helpText="Open all eyelids", helpURL=_HelpURL, ) self.eyelidsCloseWdg = RO.Wdg.Button( master=self, text="Close All", callFunc=self.doEyelidsClose, helpText="Close all eyelids", helpURL=_HelpURL, ) self.addCategory( catName="Eyelids", extraWdgs=(self.eyelidsState, self.eyelidsOpenWdg, self.eyelidsCloseWdg), ) self.startNewColumn() self.lightsState = DevStateWdg( master=self, catInfo=self.model.catDict["Lights"], onIsNormal=False, patternDict={ (0, 0, 0, 0, 0, 0, 1, 0): ("Main Off", RO.Constants.sevNormal), }, helpText="State of the lights", helpURL=_HelpURL, ) self.lightsMainOffWdg = RO.Wdg.Button( master=self, text="Main Off", callFunc=self.doLightsMainOff, helpText="Turn off all lights except int. incandescents", helpURL=_HelpURL, ) self.addCategory("Lights", extraWdgs=(self.lightsState, self.lightsMainOffWdg)) self.startNewColumn() self.louversState = DevStateWdg( master=self, catInfo=self.model.catDict["Louvers"], onIsNormal=True, helpText="State of the louvers", helpURL=_HelpURL, ) self.louversOpenWdg = RO.Wdg.Button( master=self, text="Open All", callFunc=self.doLouversOpen, helpText="Open all louvers", helpURL=_HelpURL, ) self.louversCloseWdg = RO.Wdg.Button( master=self, text="Close All", callFunc=self.doLouversClose, helpText="Close all louvers", helpURL=_HelpURL, ) self.addCategory( catName="Louvers", extraWdgs=(self.louversState, self.louversOpenWdg, self.louversCloseWdg), ) self.startNewColumn() self.heatersState = DevStateWdg( master=self, catInfo=self.model.catDict["Heaters"], onIsNormal=False, helpText="State of the roof heaters", helpURL=_HelpURL, ) self.heatersOffWdg = RO.Wdg.Button( master=self, text="All Off", callFunc=self.doHeatersOff, helpText="Turn off all roof heaters", helpURL=_HelpURL, ) self.heatersOnWdg = RO.Wdg.Button( master=self, text="All On", callFunc=self.doHeatersOn, helpText="Turn on all roof heaters", helpURL=_HelpURL, ) self.addCategory( catName="Heaters", extraWdgs=(self.heatersState, self.heatersOffWdg, self.heatersOnWdg), ) self.statusBar = RO.Wdg.StatusBar( master=self, dispatcher=self.tuiModel.dispatcher, prefs=self.tuiModel.prefs, playCmdSounds=True, summaryLen=20, helpURL=_HelpURL, ) self.statusBar.grid( column=0, row=self.statusRow + 1, columnspan=self.col - 1, sticky="sew", ) self.cancelBtn = RO.Wdg.Button( master=self, text="Cancel", callFunc=self.cancelCmds, helpText="Cancel all executing commands", helpURL=_HelpURL, ) self.cancelBtn.setEnable(False) self.cancelBtn.grid( column=self.col, row=self.statusRow + 1, columnspan=_ColsPerDev, )