*** empty log message ***
This commit is contained in:
parent
5fe06a08b0
commit
7c448fa7d6
|
|
@ -89,6 +89,153 @@ class DirectNotify:
|
|||
for categoryName in self.getCategories():
|
||||
self.setDconfigLevel(categoryName)
|
||||
|
||||
def popupControls(self, tl = None):
|
||||
NotifyControlPanel(self, tl)
|
||||
|
||||
class NotifyControlPanel:
|
||||
"""NotifyControlPanel class: this class contains methods for creating
|
||||
a panel to control direct/panda notify categories."""
|
||||
|
||||
def __init__(self, directNotify, tl = None):
|
||||
"""__init__(self)
|
||||
NotifyControlPanel class keeps a dictionary of Panda Notfiers"""
|
||||
self.__categories = {}
|
||||
self.activeCategory = None
|
||||
self.popupControls(directNotify, tl)
|
||||
|
||||
def _getPandaCategories(self, category):
|
||||
categories = [category]
|
||||
for i in range(category.getNumChildren()):
|
||||
child = category.getChild(i)
|
||||
categories.append(self._getPandaCategories(child))
|
||||
return categories
|
||||
|
||||
def getPandaCategories(self):
|
||||
from PandaModules import Notify
|
||||
topCategory = Notify.ptr().getTopCategory()
|
||||
return self._getPandaCategories(topCategory)
|
||||
|
||||
def _getPandaCategoriesAsList(self, pc, list):
|
||||
import types
|
||||
for item in pc:
|
||||
if type(item) == types.ListType:
|
||||
self._getPandaCategoriesAsList(item, list)
|
||||
else:
|
||||
list.append(item)
|
||||
|
||||
def getPandaCategoriesAsList(self):
|
||||
pc = self.getPandaCategories()
|
||||
pcList = []
|
||||
self._getPandaCategoriesAsList(pc, pcList)
|
||||
return pcList[1:]
|
||||
|
||||
def setActivePandaCategory(self):
|
||||
categoryName = self.categoryList.getcurselection()[0]
|
||||
self.activeCategory = self.__categories.get(categoryName, None)
|
||||
if self.activeCategory:
|
||||
self.severity.set(self.activeCategory.getSeverity())
|
||||
|
||||
def setActiveSeverity(self):
|
||||
if self.activeCategory:
|
||||
self.activeCategory.setSeverity(self.severity.get())
|
||||
|
||||
def popupControls(self, directNotify, tl = None):
|
||||
""" popupControls()
|
||||
Popup control panel for interval.
|
||||
"""
|
||||
base.wantTk = 1
|
||||
import TkGlobal
|
||||
from Tkinter import *
|
||||
import Pmw
|
||||
from NotifySeverity import *
|
||||
if tl == None:
|
||||
tl = Toplevel()
|
||||
tl.title('Notify Controls')
|
||||
tl.geometry('300x400')
|
||||
mainFrame = Frame(tl)
|
||||
# Paned widget for dividing two halves
|
||||
framePane = Pmw.PanedWidget(mainFrame, orient = HORIZONTAL)
|
||||
categoryFrame = framePane.add('categories', size = 200)
|
||||
severityFrame = framePane.add('severities', size = 50)
|
||||
# Category frame
|
||||
from NotifyCategory import *
|
||||
# Assemble PANDA categories
|
||||
categories = self.getPandaCategoriesAsList()
|
||||
self.__categories = {}
|
||||
categoryNames = []
|
||||
for category in categories:
|
||||
name = category.getBasename()
|
||||
self.__categories[name] = category
|
||||
categoryNames.append(name)
|
||||
# Assemble DIRECT categories
|
||||
for name in directNotify.getCategories():
|
||||
category = directNotify.getCategory(name)
|
||||
self.__categories[name] = category
|
||||
categoryNames.append(name)
|
||||
# Sort resulting list of names
|
||||
categoryNames.sort()
|
||||
# Create a listbox
|
||||
self.categoryList = Pmw.ScrolledListBox(
|
||||
categoryFrame,
|
||||
labelpos = NW, label_text = 'Categories:',
|
||||
listbox_takefocus = 1,
|
||||
items = categoryNames,
|
||||
selectioncommand = self.setActivePandaCategory)
|
||||
self.categoryList.pack(expand = 1, fill = BOTH)
|
||||
|
||||
# Severity frame
|
||||
Label(severityFrame, text = 'Severity:',
|
||||
justify = LEFT, anchor = W).pack()
|
||||
self.severity = IntVar()
|
||||
self.severity.set(0)
|
||||
self.fatalSeverity = Radiobutton(severityFrame, text = 'Fatal',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSFatal,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.fatalSeverity.pack(fill = X)
|
||||
self.errorSeverity = Radiobutton(severityFrame, text = 'Error',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSError,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.errorSeverity.pack(fill = X)
|
||||
self.warningSeverity = Radiobutton(severityFrame, text = 'Warning',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSWarning,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.warningSeverity.pack(fill = X)
|
||||
self.infoSeverity = Radiobutton(severityFrame, text = 'Info',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSInfo,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.infoSeverity.pack(fill = X)
|
||||
self.debugSeverity = Radiobutton(severityFrame, text = 'Debug',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSDebug,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.debugSeverity.pack(fill = X)
|
||||
self.spamSeverity = Radiobutton(severityFrame, text = 'Spam',
|
||||
justify = LEFT, anchor = W,
|
||||
value = NSSpam,
|
||||
variable = self.severity,
|
||||
command = self.setActiveSeverity)
|
||||
self.spamSeverity.pack(fill = X)
|
||||
# Pack frames
|
||||
framePane.pack(expand = 1, fill = BOTH)
|
||||
mainFrame.pack(expand = 1, fill = BOTH)
|
||||
# Select first item
|
||||
self.categoryList.select_set(0)
|
||||
self.setActivePandaCategory()
|
||||
# And grab focus (to allow keyboard navigation)
|
||||
self.categoryList.component('listbox').focus_set()
|
||||
# And set active index (so keypresses will start with index 0)
|
||||
self.categoryList.component('listbox').activate(0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,38 @@ class Notifier:
|
|||
Print handling routine"""
|
||||
return "%s: info = %d, warning = %d, debug = %d, logging = %d" % \
|
||||
(self.__name, self.__info, self.__warning, self.__debug, self.__logging)
|
||||
|
||||
|
||||
# Severity funcs
|
||||
def setSeverity(self, severity):
|
||||
from NotifySeverity import *
|
||||
if severity >= NSError:
|
||||
self.setWarning(0)
|
||||
self.setInfo(0)
|
||||
self.setDebug(0)
|
||||
elif severity == NSWarning:
|
||||
self.setWarning(1)
|
||||
self.setInfo(0)
|
||||
self.setDebug(0)
|
||||
elif severity == NSInfo:
|
||||
self.setWarning(1)
|
||||
self.setInfo(1)
|
||||
self.setDebug(0)
|
||||
elif severity <= NSDebug:
|
||||
self.setWarning(1)
|
||||
self.setInfo(1)
|
||||
self.setDebug(1)
|
||||
|
||||
def getSeverity(self):
|
||||
from NotifySeverity import *
|
||||
if self.getDebug():
|
||||
return NSDebug
|
||||
elif self.getInfo():
|
||||
return NSInfo
|
||||
elif self.getWarning():
|
||||
return NSWarning
|
||||
else:
|
||||
return NSError
|
||||
|
||||
# error funcs
|
||||
def error(self, errorString, exception=StandardError):
|
||||
"""error(self, string, Exception=StandardError)
|
||||
|
|
|
|||
Loading…
Reference in New Issue