*** empty log message ***

This commit is contained in:
Mark Mine 2001-06-09 01:41:08 +00:00
parent 5fe06a08b0
commit 7c448fa7d6
2 changed files with 179 additions and 1 deletions

View File

@ -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)

View File

@ -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)