package org.enhydra.shark.webclient.presentation;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
import org.enhydra.shark.api.admin.ApplicationMappingManagerAdmin;
import org.enhydra.shark.api.internal.appmappersistence.ApplicationMap;
import org.enhydra.shark.client.utilities.SharkInterfaceWrapper;
import org.enhydra.shark.webclient.business.SharkUtils;
import org.enhydra.shark.webclient.business.XMLAppMappingBuilder;
import org.enhydra.shark.webclient.presentation.utils.NavigConsts;
import org.enhydra.shark.webclient.spec.utils.ParamConsts;
import org.w3c.dom.Node;
import com.lutris.appserver.server.httpPresentation.ClientPageRedirectException;
import com.lutris.appserver.server.httpPresentation.HttpPresentationException;
public class AppMappingHandlerPO extends BasePO {
private static Map demoMap = new HashMap();
public Node handleDefault() throws HttpPresentationException {
return showPage();
}
public Node handleCreate() throws HttpPresentationException {
String from_element = myComms.request.getParameter("from");
String sortCriterion = myComms.request.getParameter("sortCriterion");
String sortOrder = myComms.request.getParameter("sortAsc");
String application = myComms.request.getParameter("application");
String tool_agent = myComms.request.getParameter("tool_agent");
String username = myComms.request.getParameter("username");
String password = myComms.request.getParameter("password");
String app_name = myComms.request.getParameter("app_name");
String app_mode = myComms.request.getParameter("app_mode");
if (sortCriterion == null) {
sortCriterion = "";
}
String sortAsc = "true";
if (sortOrder != null
&& (sortOrder.equalsIgnoreCase("true") || sortOrder.equalsIgnoreCase("false"))) {
sortAsc = sortOrder;
}
if (SharkUtils.sharkEdition.equalsIgnoreCase("demo")) {
if (demoMap.containsKey("create")) {
Integer count = (Integer) demoMap.get("create");
int i = count.intValue();
if (i == 3) {
throw new ClientPageRedirectException(NavigConsts.LIMIT_HANDLER);
}
i++;
demoMap.put("create", new Integer(i));
} else {
demoMap.put("create", new Integer(1));
}
}
if (application != null && tool_agent != null && app_name != null) {
StringTokenizer st = new StringTokenizer(application, ";");
String id = st.nextToken().trim();
String pkgId = st.nextToken().trim();
String pkgVer = st.nextToken().trim();
String wpId = st.nextToken().trim();
ApplicationMappingManagerAdmin aam = SharkInterfaceWrapper.getApplicationMappingsAdmin();
if (aam != null) {
ApplicationMap am = null;
try {
am=aam.createApplicationMap();
} catch (Exception ex) {
}
am.setPackageId(pkgId);
am.setApplicationDefinitionId(id);
am.setProcessDefinitionId(wpId);
am.setPackageVersion(pkgVer);
am.setToolAgentClassName(tool_agent);
am.setUsername(username);
am.setPassword(password);
am.setApplicationName(app_name);
Integer i = null;
try {
i = new Integer(app_mode);
} catch (Exception e) {
i = null;
}
am.setApplicationMode(i);
try {
aam.deleteApplicationMappingByMap(am);
aam.saveApplicationMapping(am);
} catch (Exception ex) {
}
} else {
// aam is null
}
throw new ClientPageRedirectException(NavigConsts.APP_MAPPING_HANDLER
+ "?from=" + from_element
+ "&sortCriterion=" + sortCriterion
+ "&sortAsc=" + sortAsc);
}
throw new ClientPageRedirectException(NavigConsts.APPLICATION_MAPPING_HANDLER
+ "?from=" + from_element + "&sortCriterion="
+ sortCriterion + "&sortAsc=" + sortAsc);
}
public Node handleCancel() throws HttpPresentationException {
String from_element = myComms.request.getParameter("from");
String sortCriterion = myComms.request.getParameter("sortCriterion");
String sortOrder = myComms.request.getParameter("sortAsc");
if (sortCriterion == null) {
sortCriterion = "";
}
String sortAsc = "true";
if (sortOrder != null
&& (sortOrder.equalsIgnoreCase("true") || sortOrder.equalsIgnoreCase("false"))) {
sortAsc = sortOrder;
}
throw new ClientPageRedirectException(NavigConsts.APPLICATION_MAPPING_HANDLER
+ "?from=" + from_element + "&sortCriterion="
+ sortCriterion + "&sortAsc=" + sortAsc);
}
protected Node showPage() throws HttpPresentationException {
try {
String pagingFrom = myComms.request.getParameter("from");
String sortCriterion = myComms.request.getParameter("sortCriterion");
String sortOrder = myComms.request.getParameter("sortAsc");
String message = myComms.request.getParameter("message");
if (sortCriterion == null) {
sortCriterion = "";
}
String sortAsc = "true";
if (sortOrder != null
&& (sortOrder.equalsIgnoreCase("true") || sortOrder.equalsIgnoreCase("false"))) {
sortAsc = sortOrder;
}
XMLAppMappingBuilder xmlImp = new XMLAppMappingBuilder(getUsername(),
myComms.application.getConfig(),
pagingFrom,
sortCriterion,
sortAsc);
if (message == null) {
message = "";
}
Node resn=xmlImp.getResult(xsltParamMap);
xsltParamMap.put("message", message);
return resn;
} catch (Exception ex) {
ex.printStackTrace();
throw new PresentationException("Can't show page", ex);
}
}
public String getXSLTransformation () throws Exception {
return getXSLTTransformation(ParamConsts.PROPERTY_PREFIX_APPMAPPING);
}
}
|