home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1998 October / DPPCPRO1098.ISO / Hotdog / files / snagpack.exe / LETTERS.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-21  |  3.5 KB  |  193 lines

  1. import java.io.DataInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6.  
  7. public class letters {
  8.    private letter[] letterIndex;
  9.    private letter[] pictureIndex;
  10.    private int letterCount;
  11.    private int picCount;
  12.    private boolean convertLetter;
  13.    private short maxLetters = 256;
  14.    private short maxPics = 256;
  15.    private InputStream ipfile;
  16.    private DataInputStream inputDataStream;
  17.    private boolean fileError;
  18.    int spaceWidth = 5;
  19.    private boolean dbg;
  20.  
  21.    public boolean getFileError() {
  22.       return this.fileError;
  23.    }
  24.  
  25.    public boolean[][] getLetterArray(int var1) {
  26.       return this.letterIndex[var1].getLetter();
  27.    }
  28.  
  29.    private String readLine() throws IOException {
  30.       String var2;
  31.       do {
  32.          var2 = this.inputDataStream.readLine();
  33.          if (var2 == null) {
  34.             return var2;
  35.          }
  36.  
  37.          var2 = var2.trim();
  38.       } while(var2.startsWith("##"));
  39.  
  40.       return var2;
  41.    }
  42.  
  43.    public letter searchLetters(char var1) {
  44.       int var2 = 0;
  45.       this.debug("Search " + var1 + "letterCount " + this.letterCount);
  46.       if (var1 == ' ') {
  47.          return this.letterIndex[this.letterCount - 1];
  48.       } else {
  49.          while(var2 < this.letterCount && var1 != this.letterIndex[var2].getChar()) {
  50.             ++var2;
  51.          }
  52.  
  53.          if (var2 >= this.letterCount) {
  54.             return null;
  55.          } else {
  56.             this.debug("Found " + this.letterIndex[var2].getChar());
  57.             return this.letterIndex[var2];
  58.          }
  59.       }
  60.    }
  61.  
  62.    private void debug(String var1) {
  63.       if (this.dbg && var1 != null) {
  64.          System.out.println(var1);
  65.       }
  66.  
  67.    }
  68.  
  69.    private void debug(int var1) {
  70.       if (this.dbg) {
  71.          System.out.println(var1);
  72.       }
  73.  
  74.    }
  75.  
  76.    public letter searchLetters(String var1) {
  77.       int var2;
  78.       for(var2 = 0; var2 < this.picCount && !var1.equals(this.pictureIndex[var2].getString()); ++var2) {
  79.       }
  80.  
  81.       if (var2 >= this.picCount) {
  82.          this.debug("Picture string not found");
  83.          return null;
  84.       } else {
  85.          this.debug("Found " + this.letterIndex[var2].getString());
  86.          return this.pictureIndex[var2];
  87.       }
  88.    }
  89.  
  90.    public letters(URL var1, String var2, int var3) {
  91.       this.letterIndex = new letter[this.maxLetters];
  92.       this.pictureIndex = new letter[this.maxPics];
  93.       this.spaceWidth = var3;
  94.  
  95.       try {
  96.          this.ipfile = (new URL(var1, var2)).openStream();
  97.          this.inputDataStream = new DataInputStream(this.ipfile);
  98.       } catch (MalformedURLException var4) {
  99.          System.out.println("Error in URL" + var1.toString());
  100.          this.fileError = true;
  101.       } catch (IOException var5) {
  102.          System.out.println("io exception opening " + var2);
  103.          this.fileError = true;
  104.       }
  105.  
  106.    }
  107.  
  108.    public void readFontFile() throws Exception {
  109.       Object var1 = null;
  110.       Object var2 = null;
  111.       int var3 = 0;
  112.  
  113.       do {
  114.          try {
  115.             while(true) {
  116.                var11 = this.readLine();
  117.                if (var11 == null || var11.length() >= 1) {
  118.                   if (var11 != null) {
  119.                      this.debug("Char from font file :" + var11);
  120.                      String var10 = var11.trim();
  121.                      char var5 = var10.charAt(0);
  122.                      var11 = this.readLine();
  123.                      var3 = new Integer(var11);
  124.                      this.debug("width of letter :" + var3);
  125.                      if (var10.length() > 1) {
  126.                         this.debug("picture");
  127.                         this.pictureIndex[this.picCount] = new letter(var10, funcnum.MAXBITS, var3);
  128.                         this.convertLetter = false;
  129.                      } else {
  130.                         this.letterIndex[this.letterCount] = new letter(var5, funcnum.MAXBITS, var3);
  131.                         this.convertLetter = true;
  132.                      }
  133.  
  134.                      for(int var6 = 0; var6 < var3; ++var6) {
  135.                         var11 = this.readLine();
  136.  
  137.                         int var4;
  138.                         try {
  139.                            var4 = Integer.parseInt(var11, funcnum.MAXBITS);
  140.                         } catch (NumberFormatException var8) {
  141.                            throw new Exception("Error in font file - conversion");
  142.                         }
  143.  
  144.                         this.debug("tempString " + var4);
  145.                         if (this.convertLetter) {
  146.                            this.conversion(this.letterCount, var4, var6);
  147.                         } else {
  148.                            this.conversion(this.picCount, var4, var6);
  149.                         }
  150.                      }
  151.  
  152.                      if (this.convertLetter) {
  153.                         ++this.letterCount;
  154.                      } else {
  155.                         ++this.picCount;
  156.                      }
  157.                   }
  158.                   break;
  159.                }
  160.             }
  161.          } catch (IOException var9) {
  162.             throw new Exception("Read font error");
  163.          }
  164.       } while(var11 != null);
  165.  
  166.       try {
  167.          this.ipfile.close();
  168.          this.inputDataStream.close();
  169.       } catch (IOException var7) {
  170.       }
  171.  
  172.       this.letterIndex[this.letterCount++] = new letter(funcnum.MAXBITS, this.spaceWidth);
  173.    }
  174.  
  175.    private void conversion(int var1, int var2, int var3) {
  176.       int var4 = 0;
  177.  
  178.       for(int var5 = 0; var5 < funcnum.MAXBITS; ++var5) {
  179.          var4 = var2 & 1;
  180.          if (var4 == 1) {
  181.             if (this.convertLetter) {
  182.                this.letterIndex[var1].addOnOff(true, var5, var3);
  183.             } else {
  184.                this.pictureIndex[var1].addOnOff(true, var5, var3);
  185.             }
  186.          }
  187.  
  188.          var2 >>= 1;
  189.       }
  190.  
  191.    }
  192. }
  193.