home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / text / AbstractWriter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.9 KB  |  162 lines

  1. package javax.swing.text;
  2.  
  3. import java.io.IOException;
  4. import java.io.Writer;
  5. import java.util.Enumeration;
  6.  
  7. public abstract class AbstractWriter {
  8.    // $FF: renamed from: it javax.swing.text.ElementIterator
  9.    private ElementIterator field_0;
  10.    private Writer out;
  11.    private int indentLevel;
  12.    private int indentSpace;
  13.    private Document doc;
  14.    private int maxLineLength;
  15.    private int currLength;
  16.    private int startOffset;
  17.    private int endOffset;
  18.    protected static final char NEWLINE = '\n';
  19.  
  20.    protected AbstractWriter(Writer var1, Document var2) {
  21.       this(var1, (Document)var2, 0, var2.getLength());
  22.    }
  23.  
  24.    protected AbstractWriter(Writer var1, Document var2, int var3, int var4) {
  25.       this.indentLevel = 0;
  26.       this.indentSpace = 2;
  27.       this.doc = null;
  28.       this.maxLineLength = 100;
  29.       this.currLength = 0;
  30.       this.startOffset = 0;
  31.       this.endOffset = 0;
  32.       this.doc = var2;
  33.       this.field_0 = new ElementIterator(var2.getDefaultRootElement());
  34.       this.out = var1;
  35.       this.startOffset = var3;
  36.       this.endOffset = var3 + var4;
  37.    }
  38.  
  39.    protected AbstractWriter(Writer var1, Element var2) {
  40.       this(var1, (Element)var2, 0, var2.getEndOffset());
  41.    }
  42.  
  43.    protected AbstractWriter(Writer var1, Element var2, int var3, int var4) {
  44.       this.indentLevel = 0;
  45.       this.indentSpace = 2;
  46.       this.doc = null;
  47.       this.maxLineLength = 100;
  48.       this.currLength = 0;
  49.       this.startOffset = 0;
  50.       this.endOffset = 0;
  51.       this.doc = var2.getDocument();
  52.       this.field_0 = new ElementIterator(var2);
  53.       this.out = var1;
  54.       this.startOffset = var3;
  55.       this.endOffset = var3 + var4;
  56.    }
  57.  
  58.    protected void decrIndent() {
  59.       --this.indentLevel;
  60.    }
  61.  
  62.    protected Document getDocument() {
  63.       return this.doc;
  64.    }
  65.  
  66.    protected ElementIterator getElementIterator() {
  67.       return this.field_0;
  68.    }
  69.  
  70.    protected String getText(Element var1) throws BadLocationException {
  71.       return this.doc.getText(var1.getStartOffset(), var1.getEndOffset() - var1.getStartOffset());
  72.    }
  73.  
  74.    protected boolean inRange(Element var1) {
  75.       return var1.getStartOffset() >= this.startOffset && var1.getStartOffset() < this.endOffset || this.startOffset >= var1.getStartOffset() && this.startOffset < var1.getEndOffset();
  76.    }
  77.  
  78.    protected void incrIndent() {
  79.       ++this.indentLevel;
  80.    }
  81.  
  82.    protected void indent() throws IOException {
  83.       int var1 = this.indentLevel * this.indentSpace;
  84.  
  85.       for(int var2 = 0; var2 < var1; ++var2) {
  86.          this.write(' ');
  87.       }
  88.  
  89.    }
  90.  
  91.    protected void setIndentSpace(int var1) {
  92.       this.indentSpace = var1;
  93.    }
  94.  
  95.    protected void setLineLength(int var1) {
  96.       this.maxLineLength = var1;
  97.    }
  98.  
  99.    protected void text(Element var1) throws BadLocationException, IOException {
  100.       String var2 = this.getText(var1);
  101.       if (var2.length() > 0) {
  102.          this.write(var2);
  103.       }
  104.  
  105.    }
  106.  
  107.    protected abstract void write() throws IOException, BadLocationException;
  108.  
  109.    protected void write(char var1) throws IOException {
  110.       this.out.write(var1);
  111.       if (var1 == '\n') {
  112.          this.currLength = 0;
  113.       } else {
  114.          ++this.currLength;
  115.          if (this.currLength == this.maxLineLength) {
  116.             this.out.write(10);
  117.             this.currLength = 0;
  118.             this.indent();
  119.          }
  120.       }
  121.  
  122.    }
  123.  
  124.    protected void write(String var1) throws IOException {
  125.       int var2 = this.indentLevel * this.indentSpace;
  126.       int var3 = var1.indexOf(10);
  127.       if (this.currLength + var1.length() <= this.maxLineLength) {
  128.          this.out.write(var1);
  129.          this.currLength += var1.length();
  130.          if (var3 >= 0) {
  131.             this.currLength -= var3 - 1;
  132.          }
  133.       } else if (var2 + var1.length() <= this.maxLineLength) {
  134.          this.out.write(10);
  135.          this.currLength = 0;
  136.          this.indent();
  137.          this.out.write(var1);
  138.          this.currLength = var2 + var1.length();
  139.          if (var3 >= 0) {
  140.             this.currLength -= var3 - 1;
  141.          }
  142.       } else {
  143.          int var4 = this.maxLineLength - var2;
  144.          String var5 = var1.substring(0, var4);
  145.          this.write(var5);
  146.          var5 = var1.substring(var4, var1.length());
  147.          this.write(var5);
  148.       }
  149.  
  150.    }
  151.  
  152.    protected void writeAttributes(AttributeSet var1) throws IOException {
  153.       Enumeration var2 = var1.getAttributeNames();
  154.  
  155.       while(var2.hasMoreElements()) {
  156.          Object var3 = var2.nextElement();
  157.          this.write(" " + var3 + "=" + var1.getAttribute(var3));
  158.       }
  159.  
  160.    }
  161. }
  162.