All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mortbay.html.FrameSet Maven / Gradle / Ivy

// ========================================================================
// $Id: FrameSet.java,v 1.4 2004/11/20 13:32:33 gregwilkins Exp $
// Copyright 1996-2004 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// Licensed 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.mortbay.html;
import java.io.IOException;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

/* ---------------------------------------------------------------- */
/** FrameSet.
 * 

* Usage *

 *      FrameSet set = new FrameSet("FrameTest","*,*","*,*");
 *      set.frame(0,0).name("Frame1",req.getRequestPath()+"?Frame=1");
 *      set.frame(0,1).name("Frame2",req.getRequestPath()+"?Frame=2");
 *      set.frame(1,0).name("Frame3",req.getRequestPath()+"?Frame=3");
 *      set.frame(1,1).name("Frame4",req.getRequestPath()+"?Frame=4");
 *      set.write(new Writer(res.getOutputStream()));
 * 
* @version $Id: FrameSet.java,v 1.4 2004/11/20 13:32:33 gregwilkins Exp $ * @author Greg Wilkins */ public class FrameSet extends Page { Frame[][] frames=null; String colSpec=null; String rowSpec=null; int cols; int rows; String border=""; Vector frameNames=null; Hashtable frameMap=null; /* ------------------------------------------------------------ */ /** FrameSet constructor. * @param colSpec Comma separated list of column widths specified * as pixels, percentage or '*' for variable */ public FrameSet(String title, String colSpec, String rowSpec) { super(title); this.colSpec=colSpec; this.rowSpec=rowSpec; cols=1; rows=1; int i=-1; while(colSpec != null && (i=colSpec.indexOf(",",i+1))>=0) cols++; i=-1; while(rowSpec != null && (i=rowSpec.indexOf(",",i+1))>=0) rows++; frames=new Frame[cols][rows]; for(int c=0;c=0) border+=" border=\""+width+"\""; if (color!=null) border+=" bordercolor=\""+color+"\""; return this; } /* ----------------------------------------------------------------- */ public Enumeration namedFrames() { if (frameNames==null) return new Vector().elements(); return frameNames.elements(); } /* ----------------------------------------------------------------- */ public Frame frame(String name) { if (frameMap==null) return null; return (Frame) frameMap.get(name); } /* ----------------------------------------------------------------- */ /** Name a frame. * By convention, frame names match Page section names */ public Frame nameFrame(String name,int col, int row) { if (frameMap==null) { frameMap=new Hashtable(10); frameNames=new Vector(10); } Frame frame = frames[col][row]; if (frame==null) frame = frames[col][row] = new Frame(); if (frameMap.get(name)==null) frameNames.addElement(name); frameMap.put(name,frame); frame.name(name); return frame; } /* ----------------------------------------------------------------- */ public void write(Writer out) throws IOException { writeHtmlHead(out); out.write(""); for(int r=0;r"); writeElements(out); out.write(""); out.write(""); out.write(""); } };




© 2015 - 2024 Weber Informatics LLC | Privacy Policy