亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? droflo.py

?? 日常的辦公系統 應用工作流框架等增加員工的基本信息、培訓信息、獎罰信息、薪資信息
?? PY
?? 第 1 頁 / 共 4 頁
字號:
## Copyright (c) 2005, John Mettraux, OpenWFE.org# All rights reserved.# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met:# # . Redistributions of source code must retain the above copyright notice, this#   list of conditions and the following disclaimer.  # # . Redistributions in binary form must reproduce the above copyright notice, #   this list of conditions and the following disclaimer in the documentation #   and/or other materials provided with the distribution.# # . Neither the name of the "OpenWFE" nor the names of its contributors may be#   used to endorse or promote products derived from this software without#   specific prior written permission.# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE.## $Id: droflo.py,v 1.63 2005/07/07 07:39:47 jmettraux Exp $#"""    jython classes for rendering and editing expressions for DroFlo    This code is made for running with Jython only.    $Id: droflo.py,v 1.63 2005/07/07 07:39:47 jmettraux Exp $"""import syssys.add_package('java.net')sys.add_package('java.lang')sys.add_package('java.util')sys.add_package('org.apache.log4j')sys.add_package('openwfe.org.misc')sys.add_package('openwfe.org.engine')sys.add_package('openwfe.org.engine.launch')sys.add_package('openwfe.org.engine.expressions')sys.add_package('openwfe.org.engine.expressions.raw')sys.add_package('openwfe.org.engine.expressions.sync')#print 'sys.path : %s' % sys.pathfrom java.net import URLfrom java.lang import Stringfrom java.util import HashMapfrom org.apache.log4j import Loggerfrom openwfe.org.misc import WebUtilsfrom openwfe.org.engine import expressions## log4j's loggerlog = Logger.getLogger('droflo.py')## CONSTANTSEMPTY_STRING = String()def _img (req, s, width=None, height=None):    s = '/images/%s' % s    if req:         s = req.contextPath + s    if width:         width = 'width=%s' % width    else:        width = ''    if height:        height = ' height=%s' % height    else:        height = ''    return '<img src="%s" border=0 %s%s>' % (s, width, height)IMG_ARROW = 'arrow.png'IMG_ARROW_TO_LEFT = 'arrow-to-left.png'IMG_ARROW_TO_RIGHT = 'arrow-to-right.png'IMG_DOWN_TO_LEFT = 'down-to-left.png'IMG_DOWN_TO_RIGHT = 'down-to-right.png'IMG_PARTICIPANT = 'participant.png'IMG_SUBPROCESS = 'subprocess.png'IMG_BRANCH = 'branch.png'IMG_CONCURRENCE = 'concurrence.png'IMG_ITERATOR = 'iterator.png'IMG_START = 'start.png'IMG_END = 'end.png'IMG_PLUS = 'plus.png'IMG_MINUS = 'minus.png'IMG_UP = 'up.png'IMG_DOWN = 'down.png'IMG_EDIT = 'edit.png'IMG_OK = 'ok.png'SCOPE_PREFIX = 'scope__'BTN_TOGGLE_HELP = '<p align=left><a href=droflo.action?action=togglehelp title="Show help pane">show help</a></p>'BTN_HIDE_HELP = '<p align=left><a href=droflo.action?action=togglehelp title="Hide help pane">hide help</a></p>'FORM_JSCRIPT = """<script language=\"javascript\">    function submitForm (formName, actionTarget)    {        document.forms[formName].action=actionTarget;        document.forms[formName].method=\"POST\";        document.forms[formName].submit();    }</script>"""P_EXP_NAME = 'expName'P_EXP_ID = 'expId'GENERIC_HELP_FILE = 'help.jsp'RENDERER_MAP = {}ROOT_FORM_NAME = 'rootForm'EDIT_FORM_NAME = 'editForm'NEW_EXP_NAME = 'newExpName'UPDATE_ACTION = 'droflo.action?action=updateexpression'UPDATE_FLOW_NAME_ACTION = 'droflo.action?action=updateflowname'ADD_EXPRESSION_ACTION = 'droflo.action?action=addexpression'UPDATE_SUBPROCESS_NAME_ACTION = 'droflo.action?action=updatesubprocessname'CREATE_SUBPROCESS_ACTION = 'droflo.action?action=createsubprocess'REMOVE_SUBPROCESS_ACTION = 'droflo.action?action=removesubprocess'OPTIONS = [ 'field', 'variable' ]VALUE = 'value'FIELD_VALUE = 'field-value'VARIABLE_VALUE = 'variable-value'FUNCTION_VALUE = 'function-value'VALUE_OPTIONS = [ VALUE, FIELD_VALUE, VARIABLE_VALUE, FUNCTION_VALUE ]#OTHER_OPTIONS = [ 'other-value', 'other-field-value', 'other-variable-value' ]OTHER_OPTIONS = [ 'other-%s' % val for val in VALUE_OPTIONS ]REF = 'ref'FIELD_REF = 'field-ref'VARIABLE_REF = 'variable-ref'DEFAULT_REF = 'default-ref'ELSE_REF = 'else-ref'REFS = [ REF, FIELD_REF, VARIABLE_REF, DEFAULT_REF, ELSE_REF ]P_ADD_PARAM = 'add param'P_REMOVE = 'remove'BUTTON = 'button'FLOW_NAME_FORM = 'flowNameForm'P_FLOW_NAME = 'flowName'P_FLOW_REVISION = 'flowRevision'SUBPROCESS_NAME_FORM = 'subProcessNameForm'P_SUBPROCESS_NAME = 'subProcessName'P_OLD_SUBPROCESS_NAME = 'old_%s' % P_SUBPROCESS_NAME#P_SUBPROCESS_PATH = 'subProcessPath'P_SUBPROCESS_EXP = 'subProcessExp'TO_VARIABLE = 'to-variable'FROM_VARIABLE = 'from-variable'## some help methodsdef _isList (o):    return type(o) == type([])def _isTuple (o):    return type(o) == type((1, ))def _getKeyWithPrefix (expression, prefix):    for k in expression.attributes.keySet():        if k.startswith(prefix): return k    return Nonedef _neutralize (s):    if not s: return 'None'    s = s.replace('>', '&gt;')    s = s.replace('<', '&lt;')    return s## THE 'MAIN' METHODSdef renderFlow (session, out, req):    """        this method is called from java DrofloHelper    """    if session.isInEditMode():         out.println(FORM_JSCRIPT)    out.println('<table border=0 cellpadding=2 cellspacing=1>')        # the table holding the flow table and the help display    out.println('<tr><td valign=top>')    #     # render the main flow    _renderDefinition(session, out, req, session.flowDefinition)    #    # show help button    if session.isInEditMode() and not session.isHelpVisible():        out.println(BTN_TOGGLE_HELP)    # end of flow cell    out.println('</td>')    if session.isInEditMode() and session.isHelpVisible():        out.println('<td valign=top>')        # display editor help if any        if session.expressionToEdit != None:            renderer = _getRenderer(session.expressionToEdit)            helpFileName = renderer.getHelpFileName()            if helpFileName != None:                #WebUtils.include(out, session.applicationContext.applicationDirectory+helpFileName)                u = URL(session.webappUrl+helpFileName)                WebUtils.include(out, u)                out.println('<br>\n<hr>')                # display generic help        #WebUtils.include(out, session.applicationContext.applicationDirectory+GENERIC_HELP_FILE)        u = URL(session.webappUrl+GENERIC_HELP_FILE)        WebUtils.include(out, u)        out.println(BTN_HIDE_HELP)        out.println('</td>')        #    # end of the flow & help table    out.println('</tr></table>')def parseRequest (session, req):    #log.debug('parseRequest()')    if not session.expressionToEdit: return    renderer = _getRenderer(session.expressionToEdit)    renderer.parseRequest(session, session.expressionToEdit, req)    ## OTHER METHODSdef _getRenderer (expression):    log.debug\        ('_getRenderer() expression.class is %s' % expression.getClass().name)    rendererClassName = RENDERER_MAP.get(expression.class)    if rendererClassName == None:         log.debug('_getRenderer() returning DefaultExpressionRenderer')        return DefaultExpressionRenderer()    return rendererClassName()def _isEditable (expression):    renderer = _getRenderer(expression)    return isinstance(renderer, Editable)def _displayRemoveSubDefinitionButton (req, out, defineExpressionId):    href = "%s&%s=%s" % (REMOVE_SUBPROCESS_ACTION, P_SUBPROCESS_EXP, defineExpressionId.expressionName)    _displaySimpleButton(out, href, _img(req, IMG_MINUS))def _renderDefinition (session, out, req, definition, defExpression=None):    isWorkflowDefinition = (defExpression == None)    if not defExpression:         defExpression = definition.getSelf()    log.debug("_renderDefinition() defExpression is %s" % defExpression.id)    subDefName = defExpression.attributes.get('name')    out.println('<table border=1 cellpadding=2 cellspacing=1>')        # the table containing the flow    if isWorkflowDefinition:        #        # it's a workflow        out.println('<tr>');        out.print('<td align=right>');        out.print('flow<br>\nrevision');        out.println('</td>');        out.print('<td align=left>');        if session.isInEditMode():            out.print('<form name=%s>' % FLOW_NAME_FORM)            out.println('<input type=text name=%s value="%s"><br>' % (P_FLOW_NAME, definition.id.workflowDefinitionName))            out.print('<input type=text name=%s value="%s">&nbsp;' % (P_FLOW_REVISION, definition.id.workflowDefinitionRevision))            _displayOkButton(req, out, FLOW_NAME_FORM, action=UPDATE_FLOW_NAME_ACTION)            out.print('</form>')        else:            out.print(definition.id.workflowDefinitionName);            out.println('<br>')            out.print(definition.id.workflowDefinitionRevision);        out.println('</td>');        out.println('</tr>');        out.println('<tr>');        out.print('<td align=right colspan=2>');        out.print('<a href=%s>' % definition.id.workflowDefinitionUrl);        out.print(_neutralize(definition.id.workflowDefinitionUrl))        out.print('</a>');        out.println('</td>');        out.println('</tr>');    else:        #        # it's a subprocess definition        out.println('<tr>')        out.print('<td align=center>')        out.print(_img(req, IMG_SUBPROCESS))        out.print('<br>\nsubprocess')        out.println('</td>')        out.print('<td valign=bottom>')        expId = defExpression.id.expressionId        if session.isInEditMode():            subProcessNameForm = '%s::%s' % (SUBPROCESS_NAME_FORM, expId)            out.print('<form name=%s>' % subProcessNameForm)            out.println('<input type=hidden name=%s value="%s">' % (P_SUBPROCESS_EXP, expId))            out.print('<input type=text name=%s value="%s">&nbsp;' % (P_SUBPROCESS_NAME, subDefName))            _displayOkButton(req, out, subProcessNameForm, action=UPDATE_SUBPROCESS_NAME_ACTION)            out.print('</form>')            out.print('&nbsp;')            _displayRemoveSubDefinitionButton(req, out, defExpression.id)        else:            out.print(_neutralize(subDefName))        out.println('</td>')        out.println('</tr>')        out.println('<tr><td align=center colspan=2>')    out.println('<br>')    #    # render the body of the flow    out.print(_img(req, IMG_START))    out.println('<br>')    bodyExpression = definition.getBody(defExpression)    if bodyExpression:        _renderExpression(session, out, req, definition, bodyExpression)    else:        if session.isInEditMode() and not session.expressionToEdit:            _displayAddButton(req, session, out, defExpression.id, "add root expression<br>\n")    out.println('<br>')    out.println(_img(req, IMG_END))    #    # render each subflow    #if definition.subDefinitions and len(definition.subDefinitions) > 0:    out.println('<br>')    for subDef in definition.getSubDefinitions(defExpression):        out.println('<br>')        _renderDefinition(session, out, req, definition, subDef)    if session.isInEditMode():        out.print('<br>\n<p align=right><a href=%s&%s=%s&%s=%s title="Create a subprocess">subprocess %s</a></p>' % (CREATE_SUBPROCESS_ACTION, P_SUBPROCESS_EXP, defExpression.id.expressionId, P_SUBPROCESS_NAME, 'new-subprocess', _img(req, IMG_PLUS)))    out.println('</td></tr></table>')        # the end of the flow table

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久久久女国产乱| 精品一区二区在线免费观看| 日韩成人免费在线| 91黄色免费看| 亚洲精品老司机| 91免费视频观看| 最新不卡av在线| 9色porny自拍视频一区二区| 国产亚洲欧洲一区高清在线观看| 麻豆一区二区三区| 91精品在线免费观看| 午夜影院久久久| 欧美日韩亚洲综合| 人人超碰91尤物精品国产| 91精品国产乱| 精品亚洲porn| 久久综合五月天婷婷伊人| 国产成人av电影在线| 国产欧美日韩麻豆91| av中文字幕不卡| 亚洲免费高清视频在线| 欧美在线观看一区| 五月天欧美精品| 日韩精品一区二区三区四区| 国产一区二区三区四区在线观看| 日韩一区二区三| 国产在线精品不卡| 国产精品国产三级国产aⅴ原创| voyeur盗摄精品| 亚洲综合丝袜美腿| 在线亚洲一区二区| 日韩精品一级中文字幕精品视频免费观看 | 色综合久久久久久久久| 亚洲高清免费视频| 欧美电影免费提供在线观看| 日韩一区二区三| 精品一区二区影视| 亚洲综合成人在线| 欧美国产一区视频在线观看| 欧美体内she精高潮| 韩国v欧美v日本v亚洲v| 亚洲高清中文字幕| 国产精品久久久久三级| 日韩美女在线视频| 欧美日韩黄色影视| av网站一区二区三区| 激情欧美一区二区三区在线观看| 亚洲另类一区二区| 国产亚洲一区二区三区在线观看| 欧美日韩国产经典色站一区二区三区 | 看电影不卡的网站| 亚洲高清免费视频| 中文字幕一区二| 久久久蜜桃精品| 91精品国产高清一区二区三区 | 在线免费观看一区| 成人avav影音| 国产成人啪午夜精品网站男同| 日韩成人精品视频| 亚洲成av人片在线观看无码| 中文字幕综合网| 中文字幕中文字幕在线一区| 国产亚洲视频系列| 久久久国产午夜精品| 亚洲精品一区在线观看| 日韩美女一区二区三区| 91精品国产色综合久久不卡电影| 欧美日韩国产综合草草| 在线观看成人免费视频| 91亚洲永久精品| 91看片淫黄大片一级在线观看| 国产精品一区二区黑丝| 国产九色精品成人porny | 亚洲综合色丁香婷婷六月图片| 中文字幕一区二区在线播放| 欧美国产日韩精品免费观看| 国产视频一区在线观看| 国产三区在线成人av| 久久久99免费| 久久久91精品国产一区二区三区| 久久亚洲欧美国产精品乐播| 精品国产一区二区三区久久久蜜月 | 成+人+亚洲+综合天堂| 国产.欧美.日韩| 国产成a人亚洲精品| 成人一区二区三区| av亚洲精华国产精华精华| av毛片久久久久**hd| 色婷婷综合激情| 欧美日韩精品专区| 欧美一区在线视频| 久久久99免费| 亚洲欧洲精品成人久久奇米网| 亚洲欧美自拍偷拍| 香蕉久久一区二区不卡无毒影院| 日韩av电影免费观看高清完整版| 美女脱光内衣内裤视频久久网站| 久久69国产一区二区蜜臀| 国产盗摄一区二区三区| 色综合视频在线观看| 5858s免费视频成人| 精品国产1区二区| 中文一区在线播放| 亚洲国产你懂的| 精品一区精品二区高清| 99国内精品久久| 91精品国产欧美一区二区18| 国产欧美1区2区3区| 亚洲视频在线一区观看| 调教+趴+乳夹+国产+精品| 国产美女娇喘av呻吟久久| 色美美综合视频| 欧美大片在线观看一区| 日韩一区有码在线| 九一九一国产精品| 91在线播放网址| 日韩免费高清电影| 亚洲精品免费在线观看| 久久精品国产精品青草| 日本高清不卡视频| 精品乱人伦小说| 玉米视频成人免费看| 国产一区二区看久久| 在线看一区二区| 欧美va天堂va视频va在线| 亚洲欧美日韩在线不卡| 极品少妇xxxx偷拍精品少妇| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 国产精品美女久久久久久久久| 性欧美大战久久久久久久久| 国产1区2区3区精品美女| 69堂精品视频| 亚洲综合一区在线| av在线不卡观看免费观看| 精品国产a毛片| 视频一区免费在线观看| 99久久精品国产导航| 国产午夜精品一区二区| 蜜臀av一区二区在线免费观看| 色噜噜久久综合| 国产精品电影一区二区三区| 国产麻豆精品在线观看| 日韩一级成人av| 亚洲一区二区综合| 色综合视频一区二区三区高清| 国产色婷婷亚洲99精品小说| 免费精品视频在线| 欧美老人xxxx18| 一区二区三区鲁丝不卡| 不卡的电视剧免费网站有什么| 欧美精品一区视频| 日韩电影一区二区三区四区| 欧美日韩精品专区| 亚洲午夜在线观看视频在线| 色综合久久久久| 中文字幕国产精品一区二区| 国产成人在线视频免费播放| 精品国产不卡一区二区三区| 六月婷婷色综合| 日韩午夜三级在线| 日韩电影在线观看一区| 欧美精品1区2区3区| 午夜精品一区二区三区免费视频| 色美美综合视频| 亚洲综合色视频| 欧美午夜精品免费| 午夜亚洲国产au精品一区二区| 在线亚洲高清视频| 亚洲综合激情网| 欧美日韩第一区日日骚| 五月天一区二区三区| 欧美一区二区视频免费观看| 视频一区在线播放| 日韩精品一区二区三区四区视频| 免费的成人av| 欧美成人免费网站| 国产一区二区不卡在线| 中文字幕va一区二区三区| 99久久久精品| 亚洲在线中文字幕| 欧美日韩国产乱码电影| 天天做天天摸天天爽国产一区| 制服丝袜av成人在线看| 九九国产精品视频| 国产日韩欧美在线一区| 成人天堂资源www在线| 亚洲人成7777| 欧美伦理影视网| 精品写真视频在线观看| 中文字幕免费在线观看视频一区| 国产成人精品亚洲777人妖| 国产欧美视频一区二区| 色婷婷精品久久二区二区蜜臀av | 天堂一区二区在线| 日韩精品一区二区三区蜜臀| 成人三级伦理片| 亚洲黄色免费网站| 日韩午夜av一区| 成人免费高清在线| 五月婷婷久久综合|