home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPSourceEdit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  3.3 KB  |  185 lines

  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.util.StringTokenizer;
  4.  
  5. public class JDPSourceEdit extends JDPRichText {
  6.    String[] thisToken;
  7.    Color[] thisTokenColor;
  8.    int[] thisTokenLength;
  9.    int[] thisTokenPos;
  10.    Font thisFont;
  11.    int[] tempStartPos;
  12.    String totalTokens;
  13.    StringTokenizer stok;
  14.  
  15.    void loadTokens() {
  16.       int var1 = 0;
  17.       this.thisToken = new String[33];
  18.       this.thisTokenColor = new Color[33];
  19.       this.thisTokenLength = new int[33];
  20.       this.thisTokenPos = new int[500];
  21.       this.thisToken[var1] = "/*";
  22.       this.thisTokenColor[var1++] = JDPUtils.darker(JDPUtils.darker(Color.green));
  23.       this.thisToken[var1] = "//";
  24.       this.thisTokenColor[var1++] = JDPUtils.darker(JDPUtils.darker(Color.green));
  25.       this.thisToken[var1] = "class";
  26.       this.thisTokenColor[var1++] = Color.blue;
  27.       this.thisToken[var1] = "public";
  28.       this.thisTokenColor[var1++] = Color.blue;
  29.       this.thisToken[var1] = "private";
  30.       this.thisTokenColor[var1++] = Color.blue;
  31.       this.thisToken[var1] = "static";
  32.       this.thisTokenColor[var1++] = Color.blue;
  33.       this.thisToken[var1] = "final";
  34.       this.thisTokenColor[var1++] = Color.blue;
  35.       this.thisToken[var1] = "void";
  36.       this.thisTokenColor[var1++] = Color.blue;
  37.       this.thisToken[var1] = "new";
  38.       this.thisTokenColor[var1++] = Color.blue;
  39.       this.thisToken[var1] = "for";
  40.       this.thisTokenColor[var1++] = Color.blue;
  41.       this.thisToken[var1] = "null";
  42.       this.thisTokenColor[var1++] = Color.blue;
  43.       this.thisToken[var1] = "int";
  44.       this.thisTokenColor[var1++] = Color.blue;
  45.       this.thisToken[var1] = "float";
  46.       this.thisTokenColor[var1++] = Color.blue;
  47.       this.thisToken[var1] = "long";
  48.       this.thisTokenColor[var1++] = Color.blue;
  49.       this.thisToken[var1] = "byte";
  50.       this.thisTokenColor[var1++] = Color.blue;
  51.       this.thisToken[var1] = "boolean";
  52.       this.thisTokenColor[var1++] = Color.blue;
  53.       this.thisToken[var1] = "true";
  54.       this.thisTokenColor[var1++] = Color.blue;
  55.       this.thisToken[var1] = "false";
  56.       this.thisTokenColor[var1++] = Color.blue;
  57.       this.thisToken[var1] = "while";
  58.       this.thisTokenColor[var1++] = Color.blue;
  59.       this.thisToken[var1] = "if";
  60.       this.thisTokenColor[var1++] = Color.blue;
  61.       this.thisToken[var1] = "else";
  62.       this.thisTokenColor[var1++] = Color.blue;
  63.       this.thisToken[var1] = "switch";
  64.       this.thisTokenColor[var1++] = Color.blue;
  65.       this.thisToken[var1] = "case";
  66.       this.thisTokenColor[var1++] = Color.blue;
  67.       this.thisToken[var1] = "default";
  68.       this.thisTokenColor[var1++] = Color.blue;
  69.       this.thisToken[var1] = "this";
  70.       this.thisTokenColor[var1++] = Color.blue;
  71.       this.thisToken[var1] = "try";
  72.       this.thisTokenColor[var1++] = Color.blue;
  73.       this.thisToken[var1] = "catch";
  74.       this.thisTokenColor[var1++] = Color.blue;
  75.       this.thisToken[var1] = "throws";
  76.       this.thisTokenColor[var1++] = Color.blue;
  77.       this.thisToken[var1] = "class";
  78.       this.thisTokenColor[var1++] = Color.blue;
  79.       this.thisToken[var1] = "extends";
  80.       this.thisTokenColor[var1++] = Color.blue;
  81.       this.thisToken[var1] = "import";
  82.       this.thisTokenColor[var1++] = Color.blue;
  83.       this.thisToken[var1] = "implements";
  84.       this.thisTokenColor[var1++] = Color.blue;
  85.       this.thisToken[var1] = "return";
  86.       this.thisTokenColor[var1++] = Color.blue;
  87.       this.totalTokens = "";
  88.       int var2 = 0;
  89.  
  90.       for(int var36 = 0; var36 < this.thisToken.length; ++var36) {
  91.          this.thisTokenLength[var36] = this.thisToken[var36].length();
  92.          String var69 = this.totalTokens;
  93.          this.totalTokens = var69 + this.thisToken[var36] + " ";
  94.          this.thisTokenPos[var2] = var36;
  95.          var2 += this.thisTokenLength[var36] + 1;
  96.       }
  97.  
  98.    }
  99.  
  100.    public JDPSourceEdit(JDPUser var1) {
  101.       super.user = var1;
  102.       super.indent = 0;
  103.       super.wrapOn = false;
  104.       this.thisFont = new Font("Courier", 0, 12);
  105.       super.startPos = new int[100];
  106.       super.startPos[0] = 0;
  107.       this.tempStartPos = new int[1];
  108.       ((JDPRichText)this).init();
  109.       this.loadTokens();
  110.    }
  111.  
  112.    public synchronized void formatText() {
  113.       int var1 = 0;
  114.       int var2 = 0;
  115.       int var3 = -1;
  116.       boolean var4 = false;
  117.       boolean var5 = false;
  118.       String var6 = super.text.getText();
  119.       int var7 = this.tempStartPos.length;
  120.       if (var7 < super.startPos.length) {
  121.          this.tempStartPos = new int[var7 + 100];
  122.          super.font = new Font[var7 + 100];
  123.          super.color = new Color[var7 + 100];
  124.       }
  125.  
  126.       this.tempStartPos[var2] = 0;
  127.       super.font[var2] = this.thisFont;
  128.       super.color[var2] = Color.black;
  129.       this.stok = new StringTokenizer(var6, "\r\n\t !%*()-+=|\\[]{};:\"'<>,/", true);
  130.       int var8 = this.stok.countTokens();
  131.  
  132.       for(int var9 = 0; var9 < var8; ++var9) {
  133.          String var10 = this.stok.nextToken();
  134.          if (var10.length() > 1 && this.totalTokens.indexOf(var10 + " ") >= 0) {
  135.             var3 = this.thisTokenPos[this.totalTokens.indexOf(var10 + " ")];
  136.             if (var2 + 2 > this.tempStartPos.length) {
  137.                int[] var11 = this.tempStartPos;
  138.                this.tempStartPos = new int[var2 + 100];
  139.                System.arraycopy(var11, 0, this.tempStartPos, 0, var2);
  140.                Font[] var12 = super.font;
  141.                super.font = new Font[var2 + 100];
  142.                System.arraycopy(var12, 0, super.font, 0, var2);
  143.                Color[] var13 = super.color;
  144.                super.color = new Color[var2 + 100];
  145.                System.arraycopy(var13, 0, super.color, 0, var2);
  146.             }
  147.  
  148.             this.tempStartPos[var2] = var1;
  149.             super.font[var2] = this.thisFont;
  150.             super.color[var2++] = this.thisTokenColor[var3];
  151.             super.color[var2] = Color.black;
  152.             super.font[var2] = this.thisFont;
  153.             this.tempStartPos[var2] = var1 + var10.length();
  154.             var4 = true;
  155.             var5 = true;
  156.          } else {
  157.             if (var2 == 0) {
  158.                var2 = 1;
  159.             }
  160.  
  161.             if (var5) {
  162.                super.color[var2] = Color.black;
  163.                super.font[var2] = this.thisFont;
  164.                this.tempStartPos[var2] = var1;
  165.                ++var2;
  166.                var5 = false;
  167.             }
  168.          }
  169.  
  170.          var1 += var10.length();
  171.       }
  172.  
  173.       if (!var4) {
  174.          var2 = 1;
  175.          super.startPos = new int[var2];
  176.          super.font[0] = this.thisFont;
  177.          super.color[0] = Color.black;
  178.       } else {
  179.          --var2;
  180.          super.startPos = new int[var2];
  181.          System.arraycopy(this.tempStartPos, 0, super.startPos, 0, var2);
  182.       }
  183.    }
  184. }
  185.