⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 droflo.py

📁 日常的办公系统 应用工作流框架等增加员工的基本信息、培训信息、奖罚信息、薪资信息
💻 PY
📖 第 1 页 / 共 4 页
字号:
            i = i+1        #        # is there a something to remove ?                if P_REMOVE == buttonValue:            #log.debug('removing >%s<' % req.getParameter('key'))            #log.debug('key type >%s<' % type(req.getParameter('key')))            newAttributes.remove(req.getParameter('key'))        #        # set attributes into expression        expression.setAttributes(newAttributes)        if buttonValue == 'submit' or buttonValue == 'cancel':            session.unloadExpressionToEdit()## SequenceExpressionRendererclass SequenceExpressionRenderer (ExpressionRenderer):    def _render (self, out, req, session, definition, expression):        out.println('<table border=0 cellpadding=0 cellspacing=0>')        for fei in expression.children:            childExpression = definition.get(fei)            out.println('<tr>')            out.print('<td align=center>')            _renderExpression(session, out, req, definition, childExpression)            if session.isInEditMode() and not session.expressionToEdit:                _displayMoveButtons(req, session, out, definition, expression, fei)            out.println('</td>')            out.println('</tr>')            if expression.children.indexOf(fei) < len(expression.children)-1:                out.println('<tr>')                out.print('<td align=center>')                out.print(_img(req, IMG_ARROW))                out.println('</td>')                out.println('</tr>')                out.println('</table>')        if session.isInEditMode() and not session.expressionToEdit:            out.println('<br>')            _displayAddButton(req, session, out, expression.id, 'add to %s<br>\n' % session.getExpressionName(expression))## ConcurrenceExpressionRendererclass ConcurrenceExpressionRenderer (ExpressionRenderer, Editable):    def __init__ (self):        self.FORM_NAME = 'syncform'        self.fieldNames = [ 'count', 'merge', 'merge-type', 'remaining' ]        self.fields = [             'count',             ('merge', ['first', 'last', 'highest', 'lowest']),            ('merge-type', ['mix', 'override']),            ('remaining', ['cancel', 'forget'])        ]    def _render (self, out, req, session, definition, expression):        HEIGHT = 7        WIDTH_MOD = 140        out.println('<table border=0 cellpadding=0 cellspacing=0>')        width = expression.children.size()        out.println('<tr>')        out.print('<td colspan=%i align=center>' % width)        out.print(_img(req, IMG_CONCURRENCE, width*WIDTH_MOD, HEIGHT))        out.println('</td>')        out.println('</tr>')        out.println('<tr>')        # a swimlane for each child        for fei in expression.children:            childExpression = definition.get(fei)            out.print('<td align=center>')            out.print(_img(req, IMG_ARROW))            out.println('<br>')            _renderExpression(session, out, req, definition, childExpression)            #_displayMoveButtons(req, session, out, definition, expression, fei)            out.println('<br>')            out.print(_img(req, IMG_ARROW))            out.println('</td>')        out.println('</tr>')        # bottom bar and sync        out.println('<tr>')        out.print('<td colspan=%i align=center>' % width)        out.print(_img(req, IMG_CONCURRENCE, width*WIDTH_MOD, HEIGHT))        out.println('<br>')        out.print('<small>sync : </small>')        if session.isInEditMode() and expression.equals(session.expressionToEdit):            out.print('<form name=%s>' % self.FORM_NAME)            out.print('<table border=0>\n')            for f in self.fields:                out.print('<tr>\n')                if _isTuple(f):                    fieldName, fieldValues = f                    selectedValue = expression.attributes.get(fieldName)                    out.print('<td align=right>%s : </td>\n' % fieldName)                    out.print('<td>');                    _displaySelect(out, fieldName, fieldValues, selected=selectedValue)                    out.print('</td>\n');                else:                    #value = _getValue(expression, f)                    value = expression.attributes.get(f)                    if not value: value = ''                    out.print('<td align=right>%s : </td>\n' % f)                    out.print('<td>');                    out.print('<input type=text name="%s" value="%s" size="%s">' % (f, value, 5))                    out.print('</td>\n');                out.print('</tr>\n')            out.print('</table>\n')            _displayOkButton(req, out, self.FORM_NAME, definition, expression.id)            out.print('</form>')        else:            #out.print(session.getExpressionName(expression.syncExpression))            co = expression.attributes.get('count')            mg = expression.attributes.get('merge')            mt = expression.attributes.get('merge-type')            rm = expression.attributes.get('remaining')            if not co: co = '*'            if not mg: mg = 'first'            if not mt: mt = 'mix'            if not rm: rm = 'cancel'            out.print('<br>\ncount:%s  merge:%s  merge-type:%s  remaining:%s' % (co, mg, mt, rm))        out.println('</td>')        out.println('</tr>')                out.println('</table>')        if session.isInEditMode() and expression.equals(session.expressionToEdit):            out.println('<br>')            _displayAddButton(req, session, out, expression.id, 'add element to %s :<br>' % session.getExpressionName(expression))    def _edit (self, out, req, session, definition, expression):        self._render(out, req, session, definition, expression)    def parseRequest (self, session, expression, req):        attributes = HashMap()        attributes.put('sync', 'generic')        for fn in self.fieldNames:            fv = req.getParameter(fn)            attributes.put(fn, fv)        expression.attributes = attributes        session.unloadExpressionToEdit()    def getHelpFileName (self):        return 'h_concurrence.htm'## IfExpressionRendererclass IfExpressionRenderer (ExpressionRenderer, Editable):    def _render (self, out, req, session, definition, expression):        eCondition = None        eThen = None        eElse = None        if expression.children.size() > 0:             eCondition = definition.get(expression.children[0])        if expression.children.size() > 1:             eThen = definition.get(expression.children[1])        if expression.children.size() > 2:             eElse = definition.get(expression.children[2])        out.println('<table border=0 cellpadding=0 cellspacing=0>')        # display condition (and diamond)        out.println('<tr>')        out.println('<td colspan=2 align=center>')        out.print(_img(req, IMG_BRANCH))        out.println('<br>')        if eCondition:            _renderExpression(session, out, req, definition, eCondition)        elif session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add conditional clause<br>\n', _getConditionalExpressions(session))        out.println('</td>')        out.println('</tr>')        out.println('<tr>')        out.print('<td align=center>')        out.print(_img(req, IMG_DOWN_TO_LEFT))        out.println(' then</td>')        out.print('<td align=center>')        out.print(_img(req, IMG_DOWN_TO_RIGHT))        out.println(' else</td>')        out.println('</tr>')        out.println('<tr>')        # display then         out.print('<td align=center valign=middle>')        if eThen:            _renderExpression(session, out, req, definition, eThen)        elif eCondition and session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add then clause<br>\n', _getClassicalExpressions(session))        out.println('</td>')        # display else         out.print('<td align=center valign=middle>')        if eElse:            _renderExpression(session, out, req, definition, eElse)        elif eCondition and eThen and session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add else clause<br>\n', _getClassicalExpressions(session))        out.println('</td>')        out.println('</tr>')        out.println('<tr>')        out.print('<td align=center>')        out.print(_img(req, IMG_DOWN_TO_RIGHT))        out.println('</td>')        out.print('<td align=center>')        out.print(_img(req, IMG_DOWN_TO_LEFT))        out.println('</td>')        out.println('</tr>')        out.println('<tr>')        out.print('<td colspan=2 align=center>')        out.print(_img(req, IMG_BRANCH))        out.println('</td>')        out.println('</tr>')        # end        out.print('</table>')    def _edit (self, out, req, session, definition, expression):        self._render(out, req, session, definition, expression)## WhenExpressionRendererclass WhenExpressionRenderer (ExpressionRenderer):    def _render (self, out, req, session, definition, expression):        expressionName = session.getExpressionName(expression)        eCondition = None        eThen = None        eOne = None        eOneId = None        eTwo = None        eTwoId = None        if len(expression.children) > 0:            eOneId = expression.children.get(0)            eOne = definition.get(eOneId)        if len(expression.children) > 1:            eTwoId = expression.children.get(1)            eTwo = definition.get(eTwoId)        if eOne and not eTwo:            if isinstance(eOne, expressions.ComparisonExpression):                eCondition = eOne            else:                eThen = eOne        elif eTwo:            eCondition = eOne            eThen = eTwo            # no enforcement by the renderer here...        out.println('<table border=0 cellpadding=0 cellspacing=0>')        out.println('<tr>')        # diamond and condition        out.print('<td align=center valign=top colspan=2>')        out.print(_img(req, IMG_BRANCH))        out.println('<br>')        out.println('%s<br>' % expressionName)        #_renderScopedDefinition\        #    (session, out, req, definition, expression.scopeUrl, isScopedConditional=1)        if eCondition:            _renderExpression(session, out, req, definition, eCondition)        elif session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add conditional clause<br>\n', _getConditionalExpressions(session))        out.println('<br>\n&nbsp;')        out.print('</td>')        out.println('</tr>')        # then clause        out.println('<tr>')        out.print('<td align=right valign=top>')        out.print(_img(req, IMG_ARROW_TO_RIGHT))        out.println('</td>')        out.print('<td align=center valign=top>')        if eThen:            _renderExpression(session, out, req, definition, eThen)        elif session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add then clause<br>\n', _getClassicalExpressions(session))        out.print('</td>')        out.println('</tr>')        # end        out.print('</table>')    def getHelpFileName (self):        return 'h_when.htm'## [Concurrent]IteratorExpressionRendererclass IteratorExpressionRenderer (BasicRenderer):    def __init__ (self):        BasicRenderer.__init__(self)        self.mandatoryFields = [ [ 'on-value', 'on-field-value', 'on-variable-value' ], [ 'to-field', 'to-variable' ] ]        self.optionalFields = [ 'value-separator' ]        self.arrowCount = 1    def _render (self, out, req, session, definition, expression):        expressionName = session.getExpressionName(expression)        onKey = _getKeyWithPrefix(expression, 'on-')        toKey = _getKeyWithPrefix(expression, 'to-')        onValue = _neutralize(expression.attributes.get(onKey))        toValue = _neutralize(expression.attributes.get(toKey))        out.println('<table border=0 cellpadding=0 cellspacing=0>')        out.println('<tr>')        out.print('<td align=center valign=middle colspan=2>')        out.print('%s<br>\n' % expressionName)        if onKey:            out.print('%s : %s<br>\n' % (onKey, onValue))        if toKey:            out.print('%s : %s' % (toKey, toValue))        out.println('</td>')        out.println('</tr>')        out.println('<tr>')        out.println('<td align=center valign=middle>')        for i in xrange(self.arrowCount):            out.print(_img(req, IMG_ARROW))        out.println('</td>')        out.println('<td align=center valign=middle>')        #_renderScopedDefinition\        #    (session, out, req, definition, expression.scopeUrl, isScopedConditional=1)        child = definition.get(expression.childExpressionId)        if child :            _renderExpression(session, out, req, definition, child)        elif session.isInEditMode():            _displayAddButton(req, session, out, expression.id, 'Add body to iteration<br>\n', _getClassicalExpressions(session))        out.println('</td>')        out.println('</tr>')        out.println('</table>')    def getHelpFileName (self):        return 'h_iterator.htm'class ConcurrentIteratorExpressionRenderer (IteratorExpressionRenderer):    def __init__ (self):        IteratorExpressionRenderer.__init__(self)        self.arrowCount = 2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -