org.semanticwb.portal.resources.CommentSwf Maven / Gradle / Ivy
Show all versions of SWBPortal Show documentation
/*
* SemanticWebBuilder es una plataforma para el desarrollo de portales y aplicaciones de integración,
* colaboración y conocimiento, que gracias al uso de tecnología semántica puede generar contextos de
* información alrededor de algún tema de interés o bien integrar información y aplicaciones de diferentes
* fuentes, donde a la información se le asigna un significado, de forma que pueda ser interpretada y
* procesada por personas y/o sistemas, es una creación original del Fondo de Información y Documentación
* para la Industria INFOTEC, cuyo registro se encuentra actualmente en trámite.
*
* INFOTEC pone a su disposición la herramienta SemanticWebBuilder a través de su licenciamiento abierto al público (‘open source’),
* en virtud del cual, usted podrá usarlo en las mismas condiciones con que INFOTEC lo ha diseñado y puesto a su disposición;
* aprender de él; distribuirlo a terceros; acceder a su código fuente y modificarlo, y combinarlo o enlazarlo con otro software,
* todo ello de conformidad con los términos y condiciones de la LICENCIA ABIERTA AL PÚBLICO que otorga INFOTEC para la utilización
* del SemanticWebBuilder 4.0.
*
* INFOTEC no otorga garantía sobre SemanticWebBuilder, de ninguna especie y naturaleza, ni implícita ni explícita,
* siendo usted completamente responsable de la utilización que le dé y asumiendo la totalidad de los riesgos que puedan derivar
* de la misma.
*
* Si usted tiene cualquier duda o comentario sobre SemanticWebBuilder, INFOTEC pone a su disposición la siguiente
* dirección electrónica:
* http://www.semanticwebbuilder.org
*/
package org.semanticwb.portal.resources;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.StringTokenizer;
import org.semanticwb.Logger;
import org.semanticwb.SWBPlatform;
import org.semanticwb.SWBPortal;
import org.semanticwb.SWBUtils;
import org.semanticwb.model.Resource;
import org.semanticwb.model.User;
import org.semanticwb.model.WebPage;
import org.semanticwb.portal.admin.admresources.util.WBAdmResourceUtils;
import org.semanticwb.portal.api.SWBParamRequest;
import org.semanticwb.portal.api.SWBResourceException;
import org.semanticwb.portal.api.SWBResourceURL;
import org.semanticwb.portal.api.SWBResourceURLImp;
import org.semanticwb.portal.util.FileUpload;
// TODO: Auto-generated Javadoc
/**
* Despliega los elementos indicados en la administracion de este recurso a fin
* de que los usuarios finales puedan enviar comentarios a una cuenta de
* correo en específico a través de una interfaz hecha con archivos de
* tipo Flash.
*
* Displays the interface configured in this resource's administration mode, so
* that the end users send their comments to a specific e-mail account through a
* Flash type interface.
*
* @author : Vanessa Arredondo Núñez
* @version 1.0
* @see org.semanticwb.portal.resources.Comment
*/
public class CommentSwf extends Comment {
/**
* Creates a new instance of ComentSwf.
*/
public CommentSwf() {
}
/**
* Obtiene los datos de la configuración del recurso y genera un objeto
* Document
con ellos. Gets this resource's configuration
* data and generates a Document
object with it
*
* @param request la petición HTTP generada por el usuario. the user's HTTP request
* @param response la respuesta hacia el usuario.the response to the user
* @param reqParams el objeto generado por SWB y asociado a la petición
* del usuario.the object gnerated by SWB and asociated to the user's request
* @return estructura en datos de la interfaz de captura de comentarios.
*
* @throws SWBResourceException si se produce en getDomEmail
.
* if getDomEmail
propagates this exception
.
* @throws IOException Signals that an I/O exception has occurred.
*/
@Override
public Document getDom(HttpServletRequest request,
HttpServletResponse response, SWBParamRequest reqParams)
throws SWBResourceException, IOException {
Resource base = getResourceBase();
String webWorkPath = "/work";
String name = getClass().getName().substring(
getClass().getName().lastIndexOf(".") + 1);
String path = SWBPlatform.getContextPath() + "/swbadmin/xsl/" + name + "/";
String action = (null != request.getParameter("com_act")
&& !"".equals(request.getParameter("com_act").trim())
? request.getParameter("com_act").trim()
: "com_step2");
Logger log = SWBUtils.getLogger(Comment.class);
try {
String lang = reqParams.getUser().getLanguage();
WebPage topic = reqParams.getWebPage();
Document dom = SWBUtils.XML.getNewDocument();
if ("com_step3".equals(action)) {
//TODO:reparar
//dom = getDomEmail(request, response, reqParams); // Envia correo
} else {
// Nueva ventana con formulario
User user = reqParams.getUser();
SWBResourceURLImp url = new SWBResourceURLImp(request, base,
reqParams.getWebPage(), SWBResourceURL.UrlType_RENDER);
url.setResourceBase(base);
url.setMode(SWBResourceURLImp.Mode_VIEW);
url.setWindowState(SWBResourceURLImp.WinState_MAXIMIZED);
url.setParameter("com_act", "com_step3");
url.setTopic(topic);
url.setCallMethod(reqParams.Call_DIRECT);
Element root = dom.createElement("form");
root.setAttribute("path", path);
root.setAttribute("accion", url.toString());
root.setAttribute("styleClass",
base.getAttribute("styleClass", "").equals("")
? ""
: "");
root.setAttribute("styleClassClose", "");
if (!"".equals(base.getAttribute("swf", "").trim())) {
String strSwfvar = "accion=" + url.toString();
root.setAttribute("swf", webWorkPath + "/"
+ base.getAttribute("swf").trim());
NodeList ndlSwfvar = base.getDom().getElementsByTagName(
"swfvar");
for (int i = 0; i < ndlSwfvar.getLength(); i++) {
strSwfvar += "&" + ndlSwfvar.item(i).getChildNodes(
).item(0).getNodeValue();
}
if (user.isSigned()) {
strSwfvar += "&txtFromName=";
strSwfvar += ("1".equals(base.getAttribute("firstname", "0").trim())
&& (null != user.getFirstName()
&& !"".equals(user.getFirstName().trim()))
? user.getFirstName().trim()
: "");
strSwfvar += ("1".equals(base.getAttribute("lastname", "0").trim())
&& (null != user.getLastName()
&& !"".equals(user.getLastName().trim()))
? " " + user.getLastName().trim()
: "");
strSwfvar += ("1".equals(base.getAttribute("middlename", "0").trim())
&& (null != user.getSecondLastName()
&& !"".equals(user.getSecondLastName().trim()))
? " " + user.getSecondLastName().trim()
: "");
strSwfvar += "&txtFromEmail=";
strSwfvar += (null != user.getEmail()
&& !"".equals(user.getEmail().trim())
? " " + user.getEmail().trim()
: "");
}
strSwfvar += "&txtTopic=" + topic.getTitle(lang);
strSwfvar += "&txtTopicDesc=" + topic.getDescription(lang);
root.setAttribute("swfvars", strSwfvar);
}
dom.appendChild(root);
}
return dom;
} catch (Exception e) {
log.error("Error while generating the comments form in resource "
+ base.getResourceType().getResourceClassName()
+ " with identifier " + base.getId() + " - "
+ base.getTitle(), e);
}
return null;
}
/**
* Muestra la vista para los datos de administración de este recurso
* y realiza las operaciones de almacenamiento de información necesarias.
* Shows the data administration screen for this resource and performs the
* data store operations needed.
* @param request la petición HTTP generada por el usuario. the user's HTTP request
* @param response la respuesta hacia el usuario.the response to the user
* @param paramsRequest el objeto generado por SWB y asociado a la petición
* del usuario.the object gnerated by SWB and asociated to the user's request
* @throws SWBResourceException si no existe el archivo de mensajes del idioma utilizado.
* if there is no file message of the corresponding language.
* @throws IOException si no se pueden extraer los datos del request a través
* del {@link org.semanticwb.portal.util.FileUpload FileUpload} utilizado para ello.
* if request data cannot be extracted through the FileUpload object used.
*/
@Override
public void doAdmin(HttpServletRequest request,
HttpServletResponse response, SWBParamRequest paramsRequest)
throws SWBResourceException, IOException {
StringBuffer ret = new StringBuffer("");
Resource base = getResourceBase();
WBAdmResourceUtils admResUtils = new WBAdmResourceUtils();
String msg = paramsRequest.getLocaleString("msgUndefinedOperation");
String action = (null != request.getParameter("act")
&& !"".equals(request.getParameter("act").trim())
? request.getParameter("act").trim()
: paramsRequest.getAction());
String webWorkPath = "/work";
String name = getClass().getName().substring(
getClass().getName().lastIndexOf(".") + 1);
String path = SWBPlatform.getContextPath() + "/swbadmin/xsl/" + name + "/";
Logger log = SWBUtils.getLogger(Comment.class);
if (action.equals("add") || action.equals("edit")) {
ret.append(getForm(request, paramsRequest));
} else if(action.equals("update")) {
FileUpload fup = new FileUpload();
try {
fup.getFiles(request, response);
String applet = null;
String value = (null != fup.getFileName("template")
&& !"".equals(fup.getFileName("template").trim())
? fup.getFileName("template").trim()
: null);
if (value != null || !"".equals(base.getAttribute(
"template", "").trim())) {
if (value != null) {
String file = admResUtils.getFileName(base, value);
if (file != null && !file.trim().equals("")) {
if (!admResUtils.isFileType(file, "xsl|xslt")) {
msg = paramsRequest.getLocaleString("msgErrFileType")
+ " xsl, xslt: " + file;
} else {
applet = admResUtils.uploadFileParsed(base, fup,
"template", request.getSession().getId());
if (applet != null && !applet.trim().equals("")) {
base.setAttribute("template", file);
path = webWorkPath + "/";
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
}
value = (null != fup.getValue("noimg")
&& !"".equals(fup.getValue("noimg").trim())
? fup.getValue("noimg").trim()
: "0");
if ("1".equals(value)
&& !"".equals(base.getAttribute("img", "").trim())) {
SWBUtils.IO.removeDirectory(SWBPortal.getWorkPath()
+ base.getWorkPath() + "/"
+ base.getAttribute("img").trim());
base.removeAttribute("img");
} else {
value = (null != fup.getFileName("img")
&& !"".equals(fup.getFileName("img").trim())
? fup.getFileName("img").trim()
: null);
if (value != null) {
String file = admResUtils.getFileName(base, value);
if (file != null && !file.trim().equals("")) {
if (!admResUtils.isFileType(file, "bmp|jpg|jpeg|gif")) {
msg = paramsRequest.getLocaleString("msgErrFileType")
+ " bmp, jpg, jpeg, gif: " + file;
} else {
if (admResUtils.uploadFile(base, fup, "img")) {
base.setAttribute("img", file);
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
}
value = (null != fup.getFileName("swf")
&& !"".equals(fup.getFileName("swf").trim())
? fup.getFileName("swf").trim()
: null);
if (value != null) {
String file = admResUtils.getFileName(base, value);
if (file != null && !file.trim().equals("")) {
if (!admResUtils.isFileType(file, "swf|emf|wmf")) {
msg = paramsRequest.getLocaleString("msgErrFileType")
+ " swf, emf, wmf: " + file;
} else {
if (admResUtils.uploadFile(base, fup, "swf")) {
base.setAttribute("swf", file);
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
} else {
msg = paramsRequest.getLocaleString("msgErrUploadFile")
+ " " + value + ".";
}
}
if (null != fup.getValue("area")
&& !"".equals(fup.getValue("area").trim())) {
base.setAttribute("area", fup.getValue("area").trim());
}
if (null != fup.getValue("responsable")
&& !"".equals(fup.getValue("responsable").trim())) {
base.setAttribute("responsable",
fup.getValue("responsable").trim());
}
if (null != fup.getValue("email")
&& !"".equals(fup.getValue("email").trim())) {
base.setAttribute("email", fup.getValue("email").trim());
}
setAttribute(base, fup, "alt");
setAttribute(base, fup, "btntexto");
setAttribute(base, fup, "lnktexto");
setAttribute(base, fup, "blnstyle");
setAttribute(base, fup, "firstname", "1");
setAttribute(base, fup, "lastname", "1");
setAttribute(base, fup, "middlename", "1");
setAttribute(base, fup, "styleClass");
setAttribute(base, fup, "menubar", "yes");
setAttribute(base, fup, "toolbar", "yes");
setAttribute(base, fup, "status", "yes");
setAttribute(base, fup, "location", "yes");
setAttribute(base, fup, "directories", "yes");
setAttribute(base, fup, "scrollbars", "yes");
setAttribute(base, fup, "resizable", "yes");
setAttribute(base, fup, "width");
setAttribute(base, fup, "height");
setAttribute(base, fup, "top");
setAttribute(base, fup, "left");
setAttribute(base, fup, "subject");
setAttribute(base, fup, "headermsg");
setAttribute(base, fup, "footermsg");
setAttribute(base, fup, "generatelog");
base.updateAttributesToDB();
Document dom = base.getDom();
if (dom != null) {
removeAllNodes(dom, Node.ELEMENT_NODE, "swfvar");
} else {
dom = SWBUtils.XML.getNewDocument();
Element root = dom.createElement("resource");
dom.appendChild(root);
}
value = (null != fup.getValue("swfvar")
&& !"".equals(fup.getValue("swfvar").trim())
? fup.getValue("swfvar").trim()
: null);
if (value != null) {
StringTokenizer stk = new StringTokenizer(value, "|");
while (stk.hasMoreTokens()) {
value = stk.nextToken();
Element emn = dom.createElement("swfvar");
emn.appendChild(dom.createTextNode(value));
dom.getFirstChild().appendChild(emn);
}
}
base.setXml(SWBUtils.XML.domToXml(dom));
msg = paramsRequest.getLocaleString("msgOkUpdateResource")
+ " " + base.getId();
if (applet != null && !"".equals(applet.trim())) {
ret.append(applet);
} else {
ret.append("\n");
}
} catch (SWBResourceException swbe) {
throw swbe;
} catch (org.semanticwb.SWBException e) {
log.error(e);
msg = paramsRequest.getLocaleString("msgErrUpdateResource")
+ " " + base.getId();
}
ret.append("\n");
} else if (action.equals("remove")) {
msg = admResUtils.removeResource(base);
ret.append("\n");
}
response.getWriter().print(ret.toString());
}
/**
* Arma una cadena que contiene el código HTML para mostrar la forma de los
* datos presentados por la pantalla de administración del recurso.
* Gets the HTML code for this resource's administration screen.
*
* @param request la petición HTTP generada por el usuario. the user's HTTP request
* @param paramsRequest el objeto generado por SWB y asociado a la petición
* del usuario.the object gnerated by SWB and asociated to the user's request
* @return el código HTML a mostrar.
*
*/
private String getForm(HttpServletRequest request,
SWBParamRequest paramsRequest) {
StringBuffer ret = new StringBuffer("");
String webWorkPath = "/work";
String name = getClass().getName().substring(
getClass().getName().lastIndexOf(".") + 1);
String path = SWBPlatform.getContextPath() + "/swbadmin/xsl/" + name + "/";
WBAdmResourceUtils admResUtils = new WBAdmResourceUtils();
Resource base = getResourceBase();
Logger log = SWBUtils.getLogger(Comment.class);
try {
SWBResourceURL url = paramsRequest.getRenderUrl().setAction("update");
ret.append("");
ret.append(" \n");
ret.append(" \n");
ret.append(getScript(request, paramsRequest));
} catch (Exception e) {
log.error(e);
}
return ret.toString();
}
/**
* Obtiene el código de JavaScript necesario para validar los datos
* capturados en la forma presentada por getForm()
. Gets the
* JavaScript code which performs the validations asociated with the code
* generated by getForm()
.
*
* @param request la petición HTTP generada por el usuario. the user's HTTP request
* @param paramsRequest el objeto generado por SWB y asociado a la petición
* del usuario.the object gnerated by SWB and asociated to the user's request
* @return contiene el código de JavaScript a ejecutar
*
*/
private String getScript(HttpServletRequest request,
SWBParamRequest paramsRequest) {
StringBuffer ret = new StringBuffer("");
WBAdmResourceUtils admResUtils = new WBAdmResourceUtils();
Logger log = SWBUtils.getLogger(Comment.class);
try {
ret.append("\n");
} catch (Exception e) {
log.error(e);
}
return ret.toString();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy