/*
* JFolder, Copyright 2001-2006 Gary Steinmetz
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jfolder.console.web.develop.workflow.template;
//base classes
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
//project specific classes
import org.jfolder.common.UnexpectedSystemException;
import org.jfolder.common.tagging.ConceptTag;
import org.jfolder.common.tagging.ConceptTagCharacteristicHolder;
import org.jfolder.common.tagging.ConceptTagConstraintHolder;
import org.jfolder.common.tagging.RootConceptTagHolder;
import org.jfolder.common.utils.web.ParameterSet;
import org.jfolder.common.utils.xml.XMLHelper;
import org.jfolder.common.web.template.SubmitActionContext;
import org.jfolder.common.web.template.SubmitActionParameters;
import org.jfolder.console.base.BaseStudioFrameServlet;
import org.jfolder.console.base.ConsolePageContext;
import org.jfolder.console.base.ConsoleSession;
import org.jfolder.project.model.ProjectSystem;
import org.jfolder.security.model.UserHolder;
import org.jfolder.workflow.model.template.WorkflowTemplateTagHelper;
import org.jfolder.workflow.model.template.v1.core.StartWorkflowTemplateTag;
import org.jfolder.workflow.model.template.v1.core.StateWorkflowTemplateTag;
import org.jfolder.workflow.model.template.v1.core.StopWorkflowTemplateTag;
//other classes
public class DevelopWorkflowTemplateServlet extends BaseStudioFrameServlet {
public DevelopWorkflowTemplateServlet() {
}
//protected boolean checkAccess(UserHolder inUser) {
//
// boolean outValue = false;
//
// UserAuthorizationAndAccessControl uaaac =
// UserHelper.getUserAuthorizationAndAccessControl();
//
// outValue = isDeveloper(uaaac, inUser);
//
// return outValue;
//}
public ConsolePageContext process(ConsoleSession inCs, UserHolder inUser,
ParameterSet inPs, SubmitActionContext inSac) throws IOException {
//try {
ConsolePageContext outValue = null;
//MiscHelper.println(
// "ScriptStudioFrameServlet-Action = " + inSac.getAction());
//MiscHelper.println(
// "ScriptStudioFrameServlet-2Action = " + inSac.getSubAction());
if (commonActions(inCs, inUser, inPs, inSac)) {
//MiscHelper.println("common actions executed");
}
else if (inSac.isAction(SubmitActionParameters.DO_NOTHING)) {
}
else if (inSac.isAction(SubmitActionParameters.OPEN)) {
inCs.setStudioFrameState(
BaseStudioFrameServlet.HIGH_LEVEL_MODE);
String appName = inSac.getFirstParameter();
inCs.setOpenApplication(appName);
//ProjectApplicationSet was = inCs.getProjectApplicationSet();
ProjectSystem wa = inCs.getUserProjectSystem(appName);
//ProjectScript ws = wa.getScript();
////MiscHelper.println();
//String content = ws.getContent();
////MiscHelper.println("CONTENT = " + content);
//Document doc = XMLHelper.loadDocument(content);
//RootConceptTagHolder rsth =
// WorkflowTemplateTagHelper.getRootConceptTagHolder(
// doc, null, null, ws.getName());
//
////MiscHelper.println("ValueLength = "
//// + rsth.getConceptTagCharacteristic().getValueLength());
////MiscHelper.println("Frame,rsth = " + rsth);
//inCs.setRootHolder(rsth);
//MiscHelper.println("WebStudioFrame Remove following statement"
// + (new java.util.Date()));
//for (int i = 0; i < 100; i++) {
// rsth.revalidate();
//}
//MiscHelper.println("WebStudioFrame Remove previous statement"
// + (new java.util.Date()));
}
else if (inSac.isAction(SubmitActionParameters.UPDATE,
SubmitActionParameters.COORDINATES)) {
//MiscHelper.println("PARAMETER1 = "
// + inSac.getFirstParameter());
//MiscHelper.println("PARAMETER2 = "
// + inSac.getSecondParameter());
//MiscHelper.println("PARAMETER3 = "
//+ inSac.getThirdParameter());
processDeltaCoorAction(
inCs.getRootHolder(), inSac.getFirstParameter(),
Integer.parseInt(inSac.getSecondParameter()),
Integer.parseInt(inSac.getThirdParameter()));
}
else {
inSac.unknownAction();
}
outValue = DevelopWorkflowTemplateContext.newInstance(inCs);
return outValue;
//}
//catch (ParserConfigurationException pce) {
// throw new UnexpectedSystemException(pce);
//}
//catch (SAXException saxe) {
// throw new UnexpectedSystemException(saxe);
//}
//catch (IOException ioe) {
// throw new UnexpectedSystemException(ioe);
//}
}
private final static void processDeltaCoorAction(
RootConceptTagHolder inRsth, String inCode, int inDeltaX,
int inDeltaY) {
ConceptTagConstraintHolder ctconh =
WorkflowTemplateTagHelper.getNearestConceptTag(
inRsth, inCode, new StringBuffer());
ConceptTag tag = ctconh.getCharacteristicHolder().getConceptTag();
if (tag instanceof StartWorkflowTemplateTag) {
StartWorkflowTemplateTag startTag = (StartWorkflowTemplateTag)tag;
startTag.setXCord((startTag.getXCord() + inDeltaX) + "");
startTag.setYCord((startTag.getYCord() + inDeltaY) + "");
}
else if (tag instanceof StateWorkflowTemplateTag) {
StateWorkflowTemplateTag stateTag = (StateWorkflowTemplateTag)tag;
stateTag.setXCord((stateTag.getXCord() + inDeltaX) + "");
stateTag.setYCord((stateTag.getYCord() + inDeltaY) + "");
}
else if (tag instanceof StopWorkflowTemplateTag) {
StopWorkflowTemplateTag stopTag = (StopWorkflowTemplateTag)tag;
stopTag.setXCord((stopTag.getXCord() + inDeltaX) + "");
stopTag.setYCord((stopTag.getYCord() + inDeltaY) + "");
}
}
protected void saveChanges(ConsoleSession inCs, UserHolder inUser,
ParameterSet inPs, SubmitActionContext inSac) {
//
RootConceptTagHolder rcth = inCs.getRootHolder();
String saveText = rcth.getXMLRepresentation();
//
String appName = inCs.getOpenApplication();
//String webPage = inCs.getOpenWebPage();
//
//ProjectApplicationSet was = inCs.getProjectApplicationSet();
//ProjectApplication wa = was.getApplication(appName);
//ProjectScript ps = wa.getScript();
////ProjectWebPage wwp = wa.getWebPage(webPage);
////
//ps.setContent(saveText);
////
//inCs.saveProjectApplicationSet();
throw UnexpectedSystemException.notImplemented();
}
}
|