"TUI Modem Interface Module"
import snack
from netconfpkg.NC_functions import _
class NCModemInterfaceTui:
"TUI Modem Interface Dialog"
def __init__(self, modem=None):
"""
The constructor
@screen A snack screen instance
@devicelist A NCDeviceList
@modem The modem device. If none given, the first
modem in devicelist will be used.
If none are there, one will be added.
"""
self.name = snack.Entry(20, "")
self.hwdev = snack.Entry(20, "")
self.login = snack.Entry(20, "")
self.phoneno = snack.Entry(20, "")
self.password = snack.Entry(20, "", password=1)
self.initstring = snack.Entry(20, "")
self.modem = modem
self.screen = None
def setState(self, modem = None):
"""
Set the default values of the fields
according to the given device
@modem The NCDevice (type modem) to use as default values
"""
if modem:
if modem.DeviceId:
self.name.set(modem.DeviceId)
if modem.Device:
self.hwdev.set(modem.Device)
if modem.Dialup.Login:
self.login.set(modem.Dialup.Login)
if modem.Dialup.Password:
self.password.set(modem.Dialup.Password)
if modem.Dialup.InitString:
self.initstring.set(modem.Dialup.InitString)
if modem.Dialup.PhoneNumber:
self.phoneno.set(modem.Dialup.PhoneNumber)
def processInfo(self):
"""
Extracts info from the screen, and puts it into a device object
"""
self.modem.DeviceId = self.name.value()
self.modem.Device = self.hwdev.value()
self.modem.Dialup.Login = self.login.value()
self.modem.Dialup.Password = self.password.value()
self.modem.Dialup.InitString = self.initstring.value()
self.modem.Dialup.PhoneNumber = self.phoneno.value()
def runIt(self, mscreen):
"""
Show and run the screen, save files if necesarry
"""
self.screen = mscreen
g1 = snack.Grid(1, 1)
g2 = snack.Grid(2, 6)
g2.setField(snack.Label (_("Name")), 0, 0, anchorLeft=1)
g2.setField(snack.Label (_("Device")), 0, 1, anchorLeft=1)
g2.setField(snack.Label (_("ISP Phonenumber")), 0, 2, anchorLeft=1)
g2.setField(snack.Label (_("ISP Login")), 0, 3, anchorLeft=1)
g2.setField(snack.Label (_("ISP Password")), 0, 4, anchorLeft=1)
g2.setField(snack.Label (_("Modem Initstring")), 0, 5, anchorLeft=1)
g2.setField(self.name, 1, 0, (1, 0, 0, 0))
g2.setField(self.hwdev, 1, 1, (1, 0, 0, 0))
g2.setField(self.phoneno, 1, 2, (1, 0, 0, 0), anchorLeft=1)
g2.setField(self.login, 1, 3, (1, 0, 0, 0))
g2.setField(self.password, 1, 4, (1, 0, 0, 0))
g2.setField(self.initstring, 1, 5, (1, 0, 0, 0))
bb = snack.ButtonBar(self.screen, ((_("Ok"), "ok"),
(_("Cancel"), "cancel")))
tl = snack.GridForm(self.screen, _("Modem Configuration"), 1, 3)
tl.add(g1, 0, 0, (0, 0, 0, 1), anchorLeft=1)
tl.add(g2, 0, 1, (0, 0, 0, 1))
tl.add(bb, 0, 2, growx = 1)
self.setState(self.modem)
while 1:
res = tl.run()
if bb.buttonPressed(res) == "cancel":
self.screen.popWindow()
return False
elif bb.buttonPressed(res) == "ok":
self.screen.popWindow()
self.processInfo()
return True
def register_plugin():
from netconfpkg.plugins.NCPluginDevModem import setDevModemDialog
setDevModemDialog(NCModemInterfaceTui)
__author__ = "Harald Hoyer