Package org.gatein.pc.samples.remotecontroller

Source Code of org.gatein.pc.samples.remotecontroller.RemoteControllerPortlet

/*
* Copyright (c) 2008, Your Corporation. All Rights Reserved.
*/

package org.gatein.pc.samples.remotecontroller;

import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.portlet.ResourceURL;
import javax.portlet.WindowState;
import java.io.IOException;
import java.io.PrintWriter;

/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris Laprun</a>
* @version $Revision: 9979 $
*/
public class RemoteControllerPortlet extends GenericPortlet
{
   private static final String ZIPCODE = "zipcode";

   @Override
   protected void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException
   {
      renderResponse.setContentType("text/html");
      PrintWriter printWriter = renderResponse.getWriter();
      String namespace = "n_" + renderResponse.getNamespace();
      printWriter.print("<p><a href='#' onclick=\"" + namespace + "_remote=" + namespace + "_openRemote('");
      ResourceURL resource = renderResponse.createResourceURL();
      printWriter.print(resource);
      printWriter.print("')\">Open remote control!</a></p>");
   }

   @Override
   protected void doHeaders(RenderRequest renderRequest, RenderResponse renderResponse)
   {
      PrintWriter printWriter = null;
      try
      {
         printWriter = renderResponse.getWriter();
         String namespace = "n_" + renderResponse.getNamespace();
         String remoteWindowName = namespace + "_remote";
         printWriter.print("<script type='text/javascript'>var " + remoteWindowName + "; function " + namespace
            + "_openRemote(url){window.name='" + namespace + "_parent';window.open(url, '" + remoteWindowName
            + "', 'width=400,height=200,scrollable=yes')}" +
            "onload = function() {" +
            "if (typeof " + remoteWindowName + " != 'undefined') {" + remoteWindowName + ".location.reload(true);}" +
            "}</script>");
      }
      catch (IOException e)
      {
         e.printStackTrace()//To change body of catch statement use File | Settings | File Templates.
      }
   }

   @Override
   public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws PortletException, IOException
   {
      resourceResponse.setContentType("text/html");
      PrintWriter writer = resourceResponse.getWriter();
      String namespace = "n_" + resourceResponse.getNamespace();
      writer.print("<html><head><script type='text/javascript'>function openLinkInParent(url){window.open(url,'"
         + namespace + "_parent');}</script>\n<link rel=\"stylesheet\" href='" + resourceRequest.getContextPath() + "/css/master.css' type=\"text/css\"/></head><body>");
      PortletURL url = resourceResponse.createRenderURL();
      url.setWindowState(WindowState.MINIMIZED);
      writer.print("<div class=\"remote-container\"><ul><li><a href='#' onclick=\"" + createParentURL(url) + "\"><img\n" +
         "                        src=\"" + resourceRequest.getContextPath() + "/images/icon-minimize.gif\" alt=\"\"/> minimize parent portlet</a></li>");
      url.setWindowState(WindowState.MAXIMIZED);
      writer.print("<li><a href='#' onclick=\"" + createParentURL(url) + "\"><img\n" +
         "                        src=\"" + resourceRequest.getContextPath() + "/images/icon-maximize.gif\" alt=\"\"/> maximize parent portlet</a></li>");
      url.setWindowState(WindowState.NORMAL);
      writer.print("<li><a href='#' onclick=\"" + createParentURL(url) + "\"><img\n" +
         "                        src=\"" + resourceRequest.getContextPath() + "/images/icon-normal.gif\" alt=\"\"/> make parent portlet normal</a></li></ul>");
      writer.print("<br/><ul><li>");
      writer.print("Set value of <b>'zipcode'</b> public render parameter to:</li>");
      url.setParameter(ZIPCODE, "80201");
      writer.print("<li><a href='#' onclick=\"" + createParentURL(url) + "\">Denver, CO</a>");
      url.setParameter(ZIPCODE, "94102");
      writer.print("<li><a href='#' onclick=\"" + createParentURL(url) + "\">San Francisco, CA</a>");
      url.setParameter(ZIPCODE, "20001");
      writer.print("<li><a href='#' onclick=\"" + createParentURL(url) + "\">Washington, DC</a>");
      writer.print("</ul></div></body></html>");
   }

   private String createParentURL(PortletURL url)
   {
      return "openLinkInParent('" + url + "')";
   }
}
TOP

Related Classes of org.gatein.pc.samples.remotecontroller.RemoteControllerPortlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.