home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / browser / breakingstyle.java < prev    next >
Text File  |  1995-08-11  |  2KB  |  73 lines

  1. /*
  2.  * @(#)BreakingStyle.java    1.10 95/03/14 Jonathan Payne
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package browser;
  21.  
  22. import java.io.*;
  23. import awt.*;
  24. import java.util.*;
  25. import net.www.html.*;
  26.  
  27. /**
  28.  * Class BreakingStyle is a BasicStyle which also allows for
  29.  * paragraph breaks.  This style is associated with such tags as
  30.  * <p>, <h1>, <li>, and so on.  A break size may be
  31.  * specified in the constructor.
  32.  * @version 1.10, 14 Mar 1995
  33.  * @author Jonathan Payne
  34.  */
  35.  
  36. public class BreakingStyle extends BasicStyle {
  37.     int    amount;
  38.  
  39.     public BreakingStyle(String spec) {
  40.     super((amount = -1, spec));
  41.     }
  42.  
  43.     protected void handleStyleSpec(String spec) {
  44.     String attr = specAttribute(spec);
  45.  
  46.     if (attr.equals("break")) {
  47.         setBreak(Integer.parseInt(specValue(spec)));
  48.     } else {
  49.         super.handleStyleSpec(spec);
  50.     }
  51.     }
  52.  
  53.     void doBreak(WRFormatter f) {
  54.     int amt = (amount == -1) ? 16 : amount;
  55.  
  56.     f.breakLine(amt);
  57.     }
  58.  
  59.     public void start(WRFormatter f, TagRef ref) {
  60.     doBreak(f);
  61.     super.start(f, ref);
  62.     }
  63.  
  64.     public void finish(WRFormatter f, TagRef ref) {
  65.     doBreak(f);
  66.     super.finish(f, ref);
  67.     }
  68.  
  69.     void setBreak(int amount) {
  70.     this.amount = amount;
  71.     }
  72. }
  73.