View Javadoc

1   // ========================================================================
2   // $Id: Block.java,v 1.3 2004/05/09 20:31:28 gregwilkins Exp $
3   // Copyright 1996-2004 Mort Bay Consulting Pty. Ltd.
4   // ------------------------------------------------------------------------
5   // Licensed under the Apache License, Version 2.0 (the "License");
6   // you may not use this file except in compliance with the License.
7   // You may obtain a copy of the License at 
8   // http://www.apache.org/licenses/LICENSE-2.0
9   // Unless required by applicable law or agreed to in writing, software
10  // distributed under the License is distributed on an "AS IS" BASIS,
11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  // See the License for the specific language governing permissions and
13  // limitations under the License.
14  // ========================================================================
15  
16  package org.mortbay.html;
17  import java.io.IOException;
18  import java.io.Writer;
19  
20  /* -------------------------------------------------------------------- */
21  /** HTML Block Composite.
22   * Block of predefined or arbitrary type.
23   * Block types are predefined for PRE, BLOCKQUOTE, CENTER, LISTING,
24   * PLAINTEXT, XMP, DIV (Left and Right) and SPAN.
25   * @see  org.mortbay.html.Composite
26   */
27  public class Block extends Composite
28  {
29      /* ----------------------------------------------------------------- */
30      /** Preformatted text */
31      public static final String Pre="pre";
32      /** Quoted Text */
33      public static final String Quote="blockquote";
34      /** Center the block */
35      public static final String Center="center";
36      /** Code listing style */
37      public static final String Listing="listing";
38      /** Plain text */
39      public static final String Plain="plaintext";
40      /** Old pre format - preserve line breaks */
41      public static final String Xmp="xmp";
42      /** Basic Division */
43      public static final String Div="div";
44      /** Left align */
45      public static final String Left="divl";
46      /** Right align */
47      public static final String Right="divr";
48      /** Bold */
49      public static final String Bold="b";
50      /** Italic */
51      public static final String Italic="i";
52      /** Span */
53      public static final String Span="span";
54  
55      /* ----------------------------------------------------------------- */
56      private String tag;
57  
58      /* ----------------------------------------------------------------- */
59      /** Construct a block using the passed string as the tag.
60       * @param tag The tag to use to open and close the block.
61       */
62      public Block(String tag)
63      {
64          this.tag=tag;
65          if (tag==Left)
66          {
67              tag=Div;
68              left();
69          }
70          if (tag==Right)
71          {
72              tag=Div;
73              right();
74          }
75      }
76  
77      /* ----------------------------------------------------------------- */
78      /** Construct a block using the passed string as the tag.
79       * @param tag The tag to use to open and close the block.
80       * @param attributes String of attributes for opening tag.
81       */
82      public Block(String tag, String attributes)
83      {
84          super(attributes);
85          this.tag=tag;
86      }
87          
88      /* ----------------------------------------------------------------- */
89      public void write(Writer out)
90           throws IOException
91      {
92          out.write('<'+tag+attributes()+'>');
93          super.write(out);
94          out.write("</"+tag+"\n>");
95      }
96  }
97  
98