Esempio n. 1
0
    def __init__(self, zoneTemplate, session):
        assert isDefined(zoneTemplate)
        assert isDefined(session)

        assert zoneTemplate in session

        self.zoneTemplate = zoneTemplate
        self.session = session

        title = endl + "{FYEditing "
        if zoneTemplate.id:
            title += "Zone " + str(zoneTemplate.id)
        else:
            title += "New Zone"

        menuItems = [
            title,
            ("Zone Name", lambda clientId: _editZoneName(clientId, self),
             lambda clientId: self.zoneTemplate.name)
        ]

        self.form = Form(menuItems,
                         lambda clientId, abort=False: finishCallback(
                             clientId, session, abort))
        self.form.prompt = endl + "{!{FB<select an option>"
Esempio n. 2
0
    def __init__(self, mobTemplate, session):
        assert isDefined(mobTemplate)
        assert isDefined(session)

        assert mobTemplate in session

        self.mobTemplate = mobTemplate
        self.session = session

        title = endl + "{FYEditing "
        if mobTemplate.id:
            title += "Mob " + str(mobTemplate.id)
        else:
            title += "New Mob"

        menuItems = [
            title,
            (
                "mob short name",
                lambda clientId: _editMobShortName(clientId, self),
                lambda clientId: self.mobTemplate.sname,
            ),
        ]

        self.form = Form(menuItems, lambda clientId, abort=False: _finishCallback(clientId, session, abort))
Esempio n. 3
0
    def __init__(self, mobTemplate, session):
        assert isDefined(mobTemplate)
        assert isDefined(session)

        assert mobTemplate in session

        self.mobTemplate = mobTemplate
        self.session = session

        title = endl + "{FYEditing "
        if mobTemplate.id:
            title += "Mob " + str(mobTemplate.id)
        else:
            title += "New Mob"

        menuItems = [
            title,
            ("mob short name",
             lambda clientId: _editMobShortName(clientId, self),
             lambda clientId: self.mobTemplate.sname)
        ]

        self.form = Form(menuItems,
                         lambda clientId, abort=False: _finishCallback(
                             clientId, session, abort))
Esempio n. 4
0
def popPrompt(clientId, n=None):
    assert tracker.isClient(clientId)

    if (isDefined(n)):
        tracker.clients[clientId].popPrompt(n)
    else:
        tracker.clients[clientId].popPrompt()
Esempio n. 5
0
    def __init__( self, clientId, nameOfEdit, initialText, submitCallback, invalidSelectionCallback = "DEFAULT" ):
        """
        creates a text editor widget and activates it for clientId, used to input arbitrarily formatted text

        submitCallback: func( clientId, text )
        """

        assert isString( nameOfEdit )
        assert isString( initialText )
        assert isFunc( submitCallback )

        # invalidSelectionCallback may be:
        #  "DEFAULT" - an internal hack to bind to self.menu
        #  None      - meaning an invalid selection defers to a later cmdHandler
        #  Func      - a client-supplied invalidSelectionCallback
        if invalidSelectionCallback == "DEFAULT":
           invalidSelectionCallback = lambda clientId, remaining: _defaultInvalidSelectionCallback( clientId, self.menu)
        if isDefined( invalidSelectionCallback ):
            assert isFunc( invalidSelectionCallback )

        self.text = initialText
        self.submitCallback = submitCallback
        self.menu = endl + "{!{FYEditing %s" % nameOfEdit + endl
        self.cmdMap = CmdMap( invalidSelectionCallback )

        _addDisplay( self )
        _addFinish( self )

        self.menu += endl

        _activate( clientId, self )
Esempio n. 6
0
def popPrompt( clientId, n = None ):
    assert tracker.isClient( clientId )

    if ( isDefined( n ) ):
        tracker.clients[ clientId ].popPrompt( n )
    else:
        tracker.clients[ clientId ].popPrompt()
Esempio n. 7
0
    def __init__( self, menuItems, submitCallback, invalidSelectionCallback = "DEFAULT", alphabeticOptions = False ):
        """
        creates a form menu widget, used to contain other menu widgets
        """
        assert isList( menuItems )
        assert isFunc( submitCallback )
        assert isBool( alphabeticOptions )


        # invalidSelectionCallback may be:
        #  "DEFAULT" - an internal hack to bind to self.menu
        #  None      - meaning an invalid selection defers to a later cmdHandler
        #  Func      - a client-supplied invalidSelectionCallback
        if invalidSelectionCallback == "DEFAULT":
           invalidSelectionCallback = lambda clientId, remaining: defaultInvalidSelectionCallback( clientId, self.menu)
        if isDefined( invalidSelectionCallback ):
            assert isFunc( invalidSelectionCallback )
        
        
        assert len(menuItems) > 0

        self.menuItems = menuItems
        self.prompt = "{!{FB<options: "
        self.cmdMap = CmdMap( invalidSelectionCallback )
        self.alphabeticOptions = alphabeticOptions

        menuIndex = 1

        self.cmdMap.addCmd( "f", lambda clientId, remaining: submitCallback( clientId ) )
        self.cmdMap.addCmd( "a", lambda clientId, remaining: submitCallback( clientId, abort=True ) )
        for item in self.menuItems:
            if isString( item ):
                continue

            assert isTuple( item ) # item wasn't tuple or string
            assert len( item ) == 3
            
            ( itemDesc, itemSelectedFunc, itemValueDescFunc ) = item
            
            assert isString( itemDesc )
            assert isFunc( itemSelectedFunc)
            assert isFunc( itemValueDescFunc)

            itemLabel = menuIndex
            if self.alphabeticOptions:
                itemLabel = chr(96 + menuIndex )

            self.cmdMap.addCmd( "%s" % itemLabel, lambda clientId, remaining: itemSelectedFunc( clientId ) )
            self.prompt += "{FC%s{FB, " % itemLabel
            
            menuIndex += 1

        self.prompt += "{FCa{FB, {FCf{FB> " 
Esempio n. 8
0
    def __init__( self, zoneTemplate, session ):
        assert isDefined( zoneTemplate )
        assert isDefined( session )

        assert zoneTemplate in session

        self.zoneTemplate = zoneTemplate
        self.session      = session

        title = endl + "{FYEditing "
        if zoneTemplate.id:
            title += "Zone " + str(zoneTemplate.id)
        else:
            title += "New Zone"
        
        menuItems = [
            title,
            ( "Zone Name", lambda clientId: _editZoneName( clientId, self ), lambda clientId: self.zoneTemplate.name )
            ]

        self.form = Form( menuItems, lambda clientId, abort=False: finishCallback( clientId, session, abort ) )
        self.form.prompt = endl + "{!{FB<select an option>"
Esempio n. 9
0
    def __init__(self,
                 clientId,
                 nameOfEdit,
                 initialText,
                 submitCallback,
                 invalidSelectionCallback="DEFAULT"):
        """
        creates a text editor widget and activates it for clientId, used to input arbitrarily formatted text

        submitCallback: func( clientId, text )
        """

        assert isString(nameOfEdit)
        assert isString(initialText)
        assert isFunc(submitCallback)

        # invalidSelectionCallback may be:
        #  "DEFAULT" - an internal hack to bind to self.menu
        #  None      - meaning an invalid selection defers to a later cmdHandler
        #  Func      - a client-supplied invalidSelectionCallback
        if invalidSelectionCallback == "DEFAULT":
            invalidSelectionCallback = lambda clientId, remaining: _defaultInvalidSelectionCallback(
                clientId, self.menu)
        if isDefined(invalidSelectionCallback):
            assert isFunc(invalidSelectionCallback)

        self.text = initialText
        self.submitCallback = submitCallback
        self.menu = endl + "{!{FYEditing %s" % nameOfEdit + endl
        self.cmdMap = CmdMap(invalidSelectionCallback)

        _addDisplay(self)
        _addFinish(self)

        self.menu += endl

        _activate(clientId, self)
Esempio n. 10
0
    def __init__(self, menuItems, selectionCallback, invalidSelectionCallback="DEFAULT", alphabeticOptions=False):
        """
        creates a menu widget, used to prompt the user to select a value from a set

        menuItems: [item] - the list of items to display in the menu.
                             item:  string - a line of text (e.g. header) to display in the menu
                                   or
                                   ( string, value ) - a description, value pair that the user can select

        selectionCallback: func - the function called with args ( clientId, selectedValue ) when the user selects a value

        invalidSelectionCallback: func - the function called with args ( clientId, clientInputRemaining )
                                         when the user's input doesn't map to a valid choice

        alphabeticOptions: bool - if true, use alphabetic, i.e. a..z, instead of numeric indices for the menu
        """
        assert isList(menuItems)
        assert isFunc(selectionCallback)
        assert isBool(alphabeticOptions)

        assert len(menuItems) > 0

        self.menu = "{!"

        # invalidSelectionCallback may be:
        #  "DEFAULT" - an internal hack to bind to self.menu
        #  None      - meaning an invalid selection defers to a later cmdHandler
        #  Func      - a client-supplied invalidSelectionCallback
        if invalidSelectionCallback == "DEFAULT":
            invalidSelectionCallback = lambda clientId, remaining: defaultInvalidSelectionCallback(clientId, self.menu)
        if isDefined(invalidSelectionCallback):
            assert isFunc(invalidSelectionCallback)

        self.prompt = ""
        self.cmdMap = CmdMap(invalidSelectionCallback)

        menuIndex = 1

        for item in menuItems:
            if isString(item):
                self.menu += item + endl
                continue

            assert isTuple(item)  # item wasn't string
            assert len(item) == 2

            (itemDesc, itemValue) = item

            assert isString(itemDesc)

            itemLabel = menuIndex
            if alphabeticOptions:
                itemLabel = chr(96 + menuIndex)

            self.menu += " {FC%s{FG) - {FU%s" % (itemLabel, itemDesc) + endl

            def getItemSelectedFunction(selectedValue):
                return lambda clientId, remaining: selectionCallback(clientId, selectedValue)

            self.cmdMap.addCmd("%s" % itemLabel, getItemSelectedFunction(itemValue))
            menuIndex += 1

        self.menu += "{@"
Esempio n. 11
0
 def test_getSessionFactoryTwoDBsDifferentType(self):
     assert isDefined(
         db.getSessionFactory("TEST", "test-type", self.base, db.data))
     assert isDefined(
         db.getSessionFactory("TEST2", "test-type2", self.base, db.data))
Esempio n. 12
0
 def test_getSessionFactoryTwice(self):
     assert isDefined(
         db.getSessionFactory("TEST", "test-type", self.base, db.data))
     assert isDefined(
         db.getSessionFactory("TEST", "test-type", self.base, db.data))
Esempio n. 13
0
 def test_getSessionFactoryTwoDBsDifferentType(self):
     assert isDefined( db.getSessionFactory("TEST", "test-type", self.base, db.data ) )
     assert isDefined( db.getSessionFactory("TEST2", "test-type2", self.base, db.data ) )
Esempio n. 14
0
 def test_getSessionFactoryTwice(self):
     assert isDefined( db.getSessionFactory("TEST", "test-type", self.base, db.data ) )
     assert isDefined( db.getSessionFactory("TEST", "test-type", self.base, db.data ) )