def __init__(self):
     self.simpleWorkflowHelper = SimpleWorkflowHelper()
 def __init__(self):
     self.simpleWorkflowHelper = SimpleWorkflowHelper()
class SimpleworkflowData:
    def __init__(self):
        self.simpleWorkflowHelper = SimpleWorkflowHelper()
    
    def __activate__(self, context):
       self.velocityContext = context
       self.Services = self.vc("Services") 
       self.simpleWorkflowHelper.setStorage(self.Services.storage)
       self.simpleWorkflowHelper.setVelocityService(self.Services.velocityService);
       self.simpleWorkflowHelper.setSystemConfiguration(self.vc("systemConfig"))
       self.simpleWorkflowHelper.setPortalId(self.vc("portalId"))
       self.simpleWorkflowHelper.setParentVelocityContext(self.__convertToVelocityContext())
       
       self.log = self.vc("log")
       
       request = self.vc("request")
       response = self.vc("response")
       formData = self.vc("formData")
       self.log.debug("parameters:     " +formData.toString())
       
       func = self.vc("formData").get("func", "")
       # Allow for URL GET paramaters
       if self.vc("request").method == "GET" and func != "":
            func = ""
       if func == "" and request.getParameter("func"):
            func = request.getParameter("func")
            
       if func == "get-tfpackage":
            oid = request.getParameter("oid")
            tfPackage = self.simpleWorkflowHelper.getTFPackage(oid)
            writer = response.getPrintWriter("text/plain; charset=UTF-8")
            writer.println(tfPackage.toString())
            writer.close()
            return None
        
       if func == "action":
            oid = request.getParameter("oid")
            action = request.getParameter("action")
            self.simpleWorkflowHelper.updateTFPackage(oid,self.vc("formData"))
            targetStep = None
            if action != "save":
                targetStep = self.simpleWorkflowHelper.updateWorkflowMetadata(oid,action)
            self.simpleWorkflowHelper.reindex(oid,targetStep,self.vc("page").authentication.get_username())  
            response.sendRedirect("/home")            
            return None
        
       
    def getFormHtml(self, oid): 
        return self.simpleWorkflowHelper.getFormHtml(oid)
    
    def getFormData(self, field):
        formData = self.vc("formData")
        return StringEscapeUtils.escapeHtml(formData.get(field, ""))
    
    # Get from velocity context
    def vc(self, index):
        if self.velocityContext[index] is not None:
            return self.velocityContext[index]
        else:
            self.log.error("ERROR: Requested context entry '" + index + "' doesn't exist")
            return None

    def __convertToVelocityContext(self):
        vc = VelocityContext()
        for key in self.velocityContext.keySet():
            vc.put(key, self.vc(key));
        vc.put("velocityContext", vc);
        return vc
class SimpleworkflowData:
    def __init__(self):
        self.simpleWorkflowHelper = SimpleWorkflowHelper()

    def __activate__(self, context):
        self.velocityContext = context
        self.Services = self.vc("Services")
        self.simpleWorkflowHelper.setStorage(self.Services.storage)
        self.simpleWorkflowHelper.setVelocityService(
            self.Services.velocityService)
        self.simpleWorkflowHelper.setSystemConfiguration(
            self.vc("systemConfig"))
        self.simpleWorkflowHelper.setPortalId(self.vc("portalId"))
        self.simpleWorkflowHelper.setParentVelocityContext(
            self.__convertToVelocityContext())

        self.log = self.vc("log")

        request = self.vc("request")
        response = self.vc("response")
        formData = self.vc("formData")
        self.log.debug("parameters:     " + formData.toString())

        func = self.vc("formData").get("func", "")

        # Allow for URL GET paramaters
        if self.vc("request").method == "GET" and func != "":
            func = ""
        if func == "" and request.getParameter("func"):
            func = request.getParameter("func")

        if func == "get-tfpackage":
            oid = request.getParameter("oid")
            tfPackage = self.simpleWorkflowHelper.getTFPackage(oid)
            writer = response.getPrintWriter("text/plain; charset=UTF-8")
            writer.println(tfPackage.toString())
            writer.close()
            return None

        if func == "action":
            oid = request.getParameter("oid")
            action = request.getParameter("action")
            objMeta = request.getParameter("objMeta")

            self.simpleWorkflowHelper.updateTFPackage(oid, self.vc("formData"))
            targetStep = None
            if action != "save":
                targetStep = self.simpleWorkflowHelper.updateWorkflowMetadata(
                    oid, action)

            if objMeta is not None:

                paramList = ArrayList()
                objMetaArray = objMeta.split(":")

                for objMetaParam in objMetaArray:
                    objMetaParamArray = objMetaParam.split(";")
                    if len(objMetaParamArray) == 2:
                        paramList.add(
                            KeyValue(objMetaParamArray[0],
                                     objMetaParamArray[1]))
                self.simpleWorkflowHelper.updateObjectMetadata(oid, paramList)

            self.simpleWorkflowHelper.reindex(
                oid, targetStep,
                self.vc("page").authentication.get_username())
            writer = response.getPrintWriter("text/plain; charset=UTF-8")
            writer.println("{\"success\":\"true\"}")
            writer.close()
            return None

    def getFormHtml(self, oid):
        return self.simpleWorkflowHelper.getFormHtml(oid)

    def getFormData(self, field):
        formData = self.vc("formData")
        return StringEscapeUtils.escapeHtml(formData.get(field, ""))

    # Get from velocity context
    def vc(self, index):
        if self.velocityContext[index] is not None:
            return self.velocityContext[index]
        else:
            self.log.error("ERROR: Requested context entry '" + index +
                           "' doesn't exist")
            return None

    def __convertToVelocityContext(self):
        vc = VelocityContext()
        for key in self.velocityContext.keySet():
            vc.put(key, self.vc(key))
        vc.put("velocityContext", vc)
        return vc