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

  1. /*
  2.  * @(#)Style.java    1.7 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.util.*;
  23. import net.www.html.*;
  24. import awt.*;
  25.  
  26. /**
  27.  * The Style class is used to specify most of the style changes
  28.  * that occur as a result of html tag refs.  Zero or more of the
  29.  * parameters may be specified for change.  BasicStyle operates on
  30.  * instances of FormattingParameters, generating new instances of
  31.  * FormattingParameters by modifying old ones.
  32.  * @see awt.FormattingParameters
  33.  * @see BasicStyle
  34.  * @version 1.7, 14 Mar 1995
  35.  * @author Jonathan Payne
  36.  */
  37.  
  38. public class Style {
  39.     public boolean renders = true;    /** is the text rendered? */
  40.  
  41.     public void start(WRFormatter f, TagRef ref) {
  42.     if (!renders) {
  43.         f.stopRendering();
  44.     }
  45.     }
  46.  
  47.     public void finish(WRFormatter f, TagRef ref) {
  48.     if (!renders) {
  49.         f.startRendering();
  50.     }
  51.     }
  52.  
  53.     public Style(String init) {
  54.     if (init != null) {
  55.         StringTokenizer t = new StringTokenizer(init, ", ");
  56.  
  57.         while (t.hasMoreTokens())
  58.         handleStyleSpec(t.nextToken());
  59.     }
  60.     }
  61.  
  62.     protected String specAttribute(String spec) {
  63.     int i;
  64.  
  65.     if ((i = spec.indexOf('=')) == -1) {
  66.         throw new Exception("Bad style spec: " + spec);
  67.     }
  68.  
  69.     return spec.substring(0, i);
  70.     }
  71.  
  72.     protected String specValue(String spec) {
  73.     int i;
  74.  
  75.     if ((i = spec.indexOf('=')) == -1) {
  76.         throw new Exception("Bad style spec: " + spec);
  77.     }
  78.  
  79.     return spec.substring(i + 1);
  80.     }
  81.  
  82.     protected void handleStyleSpec(String spec) {
  83.     if (specAttribute(spec).equals("renders")) {
  84.         renders = specValue(spec).equals("true");
  85.     } else {
  86.         throw new Exception("Unknown style specification: " + spec);
  87.     }
  88.     }
  89. }
  90.