home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / CFJava.cab / CFJavaRuntime.cab / netscape / application / TextParagraphFormat.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-10-01  |  5.4 KB  |  234 lines

  1. package netscape.application;
  2.  
  3. import java.util.StringTokenizer;
  4. import netscape.util.ClassInfo;
  5. import netscape.util.Codable;
  6. import netscape.util.CodingException;
  7. import netscape.util.Decoder;
  8. import netscape.util.Encoder;
  9. import netscape.util.InconsistencyException;
  10.  
  11. public class TextParagraphFormat implements Cloneable, Codable {
  12.    int _leftIndent;
  13.    int _leftMargin;
  14.    int _rightMargin;
  15.    int _lineSpacing;
  16.    int[] _tabStops;
  17.    int _justification;
  18.    boolean _wrapsUnderFirstCharacter;
  19.    static final String LEFTINDENT_KEY = "leftIndent";
  20.    static final String LEFTMARGIN_KEY = "leftMargin";
  21.    static final String RIGHTINDENT_KEY = "rightMargin";
  22.    static final String LINESPACING_KEY = "lineSpacing";
  23.    static final String TABSTOPS_KEY = "tabStops";
  24.    static final String JUSTIFICATION_KEY = "justification";
  25.    static final String WRAPS_UNDER_FIRST_CHARACTER_KEY = "wrapsUnderFirstCharacter";
  26.  
  27.    public Object clone() {
  28.       try {
  29.          Object var2 = super.clone();
  30.          TextParagraphFormat var1 = (TextParagraphFormat)var2;
  31.          if (this._tabStops != null) {
  32.             var1.clearAllTabPositions();
  33.             var1.setTabPositions(this._tabStops);
  34.          }
  35.  
  36.          return var2;
  37.       } catch (CloneNotSupportedException var4) {
  38.          throw new InconsistencyException(this + ": clone() not supported :" + var4);
  39.       }
  40.    }
  41.  
  42.    public void setLeftMargin(int var1) {
  43.       this._leftMargin = var1;
  44.    }
  45.  
  46.    public int leftMargin() {
  47.       return this._leftMargin;
  48.    }
  49.  
  50.    public void setLeftIndent(int var1) {
  51.       this._leftIndent = var1;
  52.    }
  53.  
  54.    public int leftIndent() {
  55.       return this._leftIndent;
  56.    }
  57.  
  58.    public void setRightMargin(int var1) {
  59.       this._rightMargin = var1;
  60.    }
  61.  
  62.    public int rightMargin() {
  63.       return this._rightMargin;
  64.    }
  65.  
  66.    public void setLineSpacing(int var1) {
  67.       this._lineSpacing = var1;
  68.    }
  69.  
  70.    public int lineSpacing() {
  71.       return this._lineSpacing;
  72.    }
  73.  
  74.    public void setJustification(int var1) {
  75.       if (this._justification >= 0 && this._justification <= 3) {
  76.          this._justification = var1;
  77.       }
  78.    }
  79.  
  80.    public int justification() {
  81.       return this._justification;
  82.    }
  83.  
  84.    public void setWrapsUnderFirstCharacter(boolean var1) {
  85.       this._wrapsUnderFirstCharacter = var1;
  86.    }
  87.  
  88.    public boolean wrapsUnderFirstCharacter() {
  89.       return this._justification == 0 ? this._wrapsUnderFirstCharacter : false;
  90.    }
  91.  
  92.    public void clearAllTabPositions() {
  93.       this._tabStops = null;
  94.    }
  95.  
  96.    public void addTabPosition(int var1) {
  97.       if (var1 >= 0) {
  98.          if (this._tabStops == null) {
  99.             this._growTabArrayTo(20);
  100.             this._tabStops[0] = var1;
  101.          } else {
  102.             int var3 = this._tabStops.length;
  103.             if (this._tabStops[var3 - 1] != -1) {
  104.                this._growTabArrayTo(this._tabStops.length + 10);
  105.                var3 = this._tabStops.length;
  106.             }
  107.  
  108.             for(int var2 = 0; var2 < var3; ++var2) {
  109.                if (this._tabStops[var2] > var1) {
  110.                   return;
  111.                }
  112.  
  113.                if (this._tabStops[var2] == -1) {
  114.                   this._tabStops[var2] = var1;
  115.                   return;
  116.                }
  117.             }
  118.  
  119.          }
  120.       }
  121.    }
  122.  
  123.    public void setTabPositions(int[] var1) {
  124.       if (var1 != null) {
  125.          this.clearAllTabPositions();
  126.          int var2 = var1.length;
  127.  
  128.          for(int var3 = 0; var3 < var2; ++var3) {
  129.             this.addTabPosition(var1[var3]);
  130.          }
  131.  
  132.       }
  133.    }
  134.  
  135.    public int[] tabPositions() {
  136.       int var1 = 0;
  137.       int var2 = 0;
  138.  
  139.       for(int var3 = this._tabStops.length; var2 < var3 && this._tabStops[var2] != -1; ++var2) {
  140.          ++var1;
  141.       }
  142.  
  143.       int[] var4 = new int[var1];
  144.       System.arraycopy(this._tabStops, 0, var4, 0, var1);
  145.       return var4;
  146.    }
  147.  
  148.    public int positionForTab(int var1) {
  149.       return this._tabStops != null && var1 >= 0 && var1 < this._tabStops.length ? this._tabStops[var1] : -1;
  150.    }
  151.  
  152.    public void describeClassInfo(ClassInfo var1) {
  153.       var1.addClass("netscape.application.TextParagraphFormat", 1);
  154.       var1.addField("leftIndent", (byte)8);
  155.       var1.addField("leftMargin", (byte)8);
  156.       var1.addField("rightMargin", (byte)8);
  157.       var1.addField("lineSpacing", (byte)8);
  158.       var1.addField("tabStops", (byte)16);
  159.       var1.addField("justification", (byte)8);
  160.       var1.addField("wrapsUnderFirstCharacter", (byte)0);
  161.    }
  162.  
  163.    public void encode(Encoder var1) throws CodingException {
  164.       var1.encodeInt("leftIndent", this._leftIndent);
  165.       var1.encodeInt("leftMargin", this._leftMargin);
  166.       var1.encodeInt("rightMargin", this._rightMargin);
  167.       var1.encodeInt("lineSpacing", this._lineSpacing);
  168.       if (this._tabStops != null) {
  169.          FastStringBuffer var2 = new FastStringBuffer();
  170.          int var4 = this._tabStops.length;
  171.  
  172.          for(int var3 = 0; var3 < var4; ++var3) {
  173.             var2.append(this._tabStops[var3] + ".");
  174.          }
  175.  
  176.          var1.encodeString("tabStops", var2.toString());
  177.       } else {
  178.          var1.encodeString("tabStops", (String)null);
  179.       }
  180.  
  181.       var1.encodeInt("justification", this._justification);
  182.       var1.encodeBoolean("wrapsUnderFirstCharacter", this._wrapsUnderFirstCharacter);
  183.    }
  184.  
  185.    public void decode(Decoder var1) throws CodingException {
  186.       this._leftIndent = var1.decodeInt("leftIndent");
  187.       this._leftMargin = var1.decodeInt("leftMargin");
  188.       this._rightMargin = var1.decodeInt("rightMargin");
  189.       this._lineSpacing = var1.decodeInt("lineSpacing");
  190.       String var2 = var1.decodeString("tabStops");
  191.       if (var2 != null) {
  192.          try {
  193.             StringTokenizer var3 = new StringTokenizer(var2, ".", false);
  194.             this.addTabPosition(Integer.parseInt(var3.nextToken()));
  195.          } catch (Exception var4) {
  196.             throw new CodingException("Illegal tab stop data: \"" + var2 + "\"");
  197.          }
  198.       }
  199.  
  200.       this._justification = var1.decodeInt("justification");
  201.       this._wrapsUnderFirstCharacter = var1.decodeBoolean("wrapsUnderFirstCharacter");
  202.    }
  203.  
  204.    public void finishDecoding() throws CodingException {
  205.    }
  206.  
  207.    private void _growTabArrayTo(int var1) {
  208.       if (var1 >= 1) {
  209.          if (this._tabStops == null || this._tabStops.length < var1) {
  210.             int[] var4 = this._tabStops;
  211.             int var2 = var1 + 5;
  212.  
  213.             for(this._tabStops = new int[var2]; var2-- > 0; this._tabStops[var2] = -1) {
  214.             }
  215.  
  216.             if (var4 != null) {
  217.                int var3 = var4.length;
  218.  
  219.                for(int var5 = 0; var5 < var3; ++var5) {
  220.                   this._tabStops[var5] = var4[var5];
  221.                }
  222.  
  223.             }
  224.          }
  225.       }
  226.    }
  227.  
  228.    public String toString() {
  229.       StringBuffer var1 = new StringBuffer();
  230.       var1.append("leftIndent = " + this._leftIndent + " " + "leftMargin = " + this._leftMargin + " " + "rightMargin = " + this._rightMargin + " " + "lineSpacing = " + this._lineSpacing + " " + "justification = " + this._justification);
  231.       return var1.toString();
  232.    }
  233. }
  234.