blob: ebdf3dcf90616f8aea1fccce184983ea16d43374 [file] [log] [blame]
/* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.portals.pluto.demo.v3;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.portals.pluto.demo.v3.Constants.PARAM_BORDER_COLOR;
import static org.apache.portals.pluto.demo.v3.Constants.PARAM_COLOR;
import static org.apache.portals.pluto.demo.v3.Constants.PARAM_IMGNAME;
import static org.apache.portals.pluto.demo.v3.Constants.DEFAULT_IMAGE;
import java.io.IOException;
import java.io.PrintWriter;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import static org.apache.portals.pluto.demo.v3.Constants.IMG_MAP;
/**
* A portlet for displaying an image and text using a resource URL.
*/
public class ResourcePortlet extends GenericPortlet {
// Set up logging
private final Logger logger = LoggerFactory.getLogger(ResourcePortlet.class);
protected void doView(RenderRequest req, RenderResponse resp)
throws PortletException, IOException {
if (logger.isDebugEnabled()) {
logger.debug(this.getClass().getName(), "doView", "Entry");
}
resp.setContentType("text/html");
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(
"/WEB-INF/jsp/view-ivp.jsp");
rd.include(req, resp);
}
/* (non-Javadoc)
* @see javax.portlet.GenericPortlet#serveResource(javax.portlet.ResourceRequest, javax.portlet.ResourceResponse)
*/
@SuppressWarnings("deprecation")
@Override
public void serveResource(ResourceRequest req, ResourceResponse resp)
throws PortletException, IOException {
String key = req.getParameter(PARAM_IMGNAME);
String imgDir = DEFAULT_IMAGE;
if ((key != null) && IMG_MAP.containsKey(key)) {
imgDir = IMG_MAP.get(key);
}
String bc = req.getParameter(PARAM_BORDER_COLOR);
String imgStyle = "";
if (bc != null) {
imgStyle = " style='border:1px solid " + bc + ";' ";
}
String ctx = req.getContextPath();
String ca = req.getCacheability();
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
String clr = req.getParameter(PARAM_COLOR);
clr = (clr == null) ? "#FFFFFF" : clr;
if (logger.isDebugEnabled()) {
logger.debug(this.getClass().getName(), "serveResource", "photo=" + key + ", bgcolor=" + clr + ", border=" + bc);
}
// add action button if cacheability allows -
PortletURL aurl = null;
String bmu = "<p>Action URL could not be created.</p>";
try {
aurl = resp.createActionURL();
} catch (Exception e) {}
if (aurl != null) {
bmu = "<form METHOD='POST' ACTION='" + aurl + "'>" +
"<input id='" + resp.getNamespace() + "-clear' type='submit' name='action' value='Action' /></form>";
}
writer.write("<div style='background-color:" + clr + ";'>\n");
writer.write(" <table style='background-color:" + clr + ";'>");
writer.write(" <tr><td align='center' style='background-color:" + clr + ";'>");
writer.write(" <img src='" + ctx + imgDir + "'" + imgStyle + ">\n");
writer.write(" </td><td style='background-color:" + clr + ";'>");
writer.write(" <p>" + bmu + "</p>");
writer.write(" <p>Cacheability: " + ca + "</p>");
writer.write(" </td></tr>");
writer.write(" </table>");
writer.write("</div>\n");
}
public void processAction(ActionRequest req, ActionResponse resp)
throws PortletException, IOException {
}
}