Package org.w3c.jigsaw.tutorials

Source Code of org.w3c.jigsaw.tutorials.FancyFrame

// FancyFrame.java
// $Id: FancyFrame.java,v 1.4 2000/08/16 21:37:48 ylafon Exp $
// (c) COPYRIGHT MIT and INRIA, 1998.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.jigsaw.tutorials;

import java.util.Date;
import org.w3c.tools.resources.Attribute;
import org.w3c.tools.resources.AttributeRegistry;
import org.w3c.tools.resources.DirectoryResource;
import org.w3c.tools.resources.FileResource;
import org.w3c.tools.resources.FramedResource;
import org.w3c.tools.resources.ProtocolException;
import org.w3c.tools.resources.ResourceException;
import org.w3c.tools.resources.StringAttribute;
import org.w3c.jigsaw.frames.HTTPFrame;
import org.w3c.jigsaw.html.HtmlGenerator;
import org.w3c.jigsaw.http.Reply;
import org.w3c.jigsaw.http.Request;
import org.w3c.www.http.HTTP;

/**
* @version $Revision: 1.4 $
* @author  Beno�t Mah� (bmahe@w3.org)
*/
public class FancyFrame extends HTTPFrame {

    /**
     * Attribute index - Message to display
     */
    protected static int ATTR_MESSAGE = -1 ;

    static {
  Attribute a   = null ;
  Class     cls = null ;

  try {
      cls = Class.forName("org.w3c.jigsaw.tutorials.FancyFrame");
  } catch (Exception ex) {
      ex.printStackTrace() ;
      System.exit(1) ;
  }

  // The message attribute
   a = new StringAttribute("message", "Hello", Attribute.EDITABLE) ;
   ATTR_MESSAGE = AttributeRegistry.registerAttribute(cls, a) ;
    }

    /**
     * Get the message.
     * @return A String instance.
     */
    public String getMessage() {
  return getString(ATTR_MESSAGE, null);
    }

    /**
     * Display the Frame message and some attributes of our
     * associated FileResource. This method is called only if
     * our associated resource *is* a FileResource.
     * @param request The request to handle.
     * @return A Reply instance.
     * @exception ProtocolException if processing the request failed
     * @exception ResourceException if an internal error occurs
     */
    protected Reply getFileResource(Request request)
  throws ProtocolException, ResourceException
    {
  // get our associated FileResource
  FileResource fres = getFileResource();
  // Create the HTML generator, and set titles:
  HtmlGenerator g = new HtmlGenerator("FancyFrame");
  g.append("<h1>FancyFrame output</h1>");
  // emit the message
  g.append("<p>",getMessage(),"</p>");
  // display information about our FileResource
  g.append("<h2> FileResource associated : </h2>");
  g.append("<ul><li>Identifier : ",fres.getIdentifier());
  g.append("<li>File : "+fres.getFile());
  g.append("<li>Last Modified Time : ",
     new Date(fres.getLastModified()).toString(),
     "</ul>");
  // now emit the reply
  Reply reply = createDefaultReply(request, HTTP.OK) ;
  reply.setStream(g) ;
  return reply ;
    }

    /**
     * Display the Frame message and some attributes of our
     * associated DirectoryResource. This method is called only if
     * our associated resource *is* a DirectoryResource.
     * @param request The request to handle.
     * @return A Reply instance.
     * @exception ProtocolException if processing the request failed
     * @exception ResourceException if an internal error occurs
     */
    protected Reply getDirectoryResource(Request request)
  throws ProtocolException, ResourceException
    {
  // get our associated DirectoryResource
  DirectoryResource dres = getDirectoryResource();
  // Create the HTML generator, and set titles:
  HtmlGenerator g = new HtmlGenerator("FancyFrame");
  g.append("<h1>FancyFrame output</h1>");
  // emit the message
  g.append("<p>",getMessage(),"</p>");
  // display information about our DirectoryResource
  g.append("<h2> DirectoryResource associated : </h2>");
  g.append("<ul><li>Identifier : ",dres.getIdentifier());
  g.append("<li>Directory : "+dres.getDirectory());
  g.append("<li>Last Modified Time : ",
     new Date(dres.getLastModified()).toString(),
     "</ul>");
  // now emit the reply
  Reply reply = createDefaultReply(request, HTTP.OK) ;
  reply.setStream(g) ;
  return reply ;
    }

    /**
     * Display the Frame message and some attributes of our
     * associated Resource. This method is called if the associated
     * resource has been registered with <strong>registerOtherResource</strong>
     * or if it's not a usual resource (FileResource, DirectoryResource)
     * @param request The request to handle.
     * @return A Reply instance.
     * @exception ProtocolException if processing the request failed
     * @exception ResourceException if an internal error occurs
     */
    protected Reply getOtherResource(Request request)
  throws ProtocolException, ResourceException
    // get our associated Resource
  FramedResource res = getResource();
  // Create the HTML generator, and set titles:
  HtmlGenerator g = new HtmlGenerator("FancyFrame");
  g.append("<h1>FancyFrame output</h1>");
  // emit the message
  g.append("<p>",getMessage(),"</p>");
  // display information about our Resource
  g.append("<h2> Resource associated : </h2>");
  g.append("<ul><li>Identifier : ",res.getIdentifier());
  g.append("<li>Last Modified Time : ",
     new Date(res.getLastModified()).toString(),
     "</ul>");
  // now emit the reply
  Reply reply = createDefaultReply(request, HTTP.OK) ;
  reply.setStream(g) ;
  return reply ;

    }

}
TOP

Related Classes of org.w3c.jigsaw.tutorials.FancyFrame

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.