home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / cellhtml / CellHtml.jar / Tools.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-09-20  |  6.0 KB  |  363 lines

  1. import java.io.DataInputStream;
  2. import javax.microedition.io.Connector;
  3. import javax.microedition.io.HttpConnection;
  4. import javax.microedition.lcdui.Image;
  5.  
  6. public class Tools {
  7.    public static int GetTokenQuickPos = -1;
  8.    public static int ColorStackLevel = 16;
  9.    public static int[] ColorStack;
  10.    public static int ColorStackIndex;
  11.    public static int HistoryLevel;
  12.    public static String[] HistoryStack;
  13.    public static int HistoryIndex;
  14.  
  15.    public static int toInt(String var0) {
  16.       int var1 = 0;
  17.  
  18.       try {
  19.          var1 = Integer.parseInt(var0);
  20.       } catch (Exception var3) {
  21.       }
  22.  
  23.       return var1;
  24.    }
  25.  
  26.    public static String GetTokenZ(String var0, int var1, char var2, boolean var3) {
  27.       int var4 = 0;
  28.       int var5 = -1;
  29.       int var6 = 1;
  30.       if (var3 && var1 > 1) {
  31.          var5 = GetTokenQuickPos;
  32.          var6 = var1 - 1;
  33.       }
  34.  
  35.       while(true) {
  36.          if (var3) {
  37.             GetTokenQuickPos = var5;
  38.          }
  39.  
  40.          var4 = var0.indexOf(var2, var5 + 1);
  41.          if (var1 == var6) {
  42.             if (var4 != -1) {
  43.                return var0.substring(var5 + 1, var4);
  44.             }
  45.  
  46.             return var0.substring(var5 + 1, var0.length());
  47.          }
  48.  
  49.          if (var4 == -1) {
  50.             return null;
  51.          }
  52.  
  53.          ++var6;
  54.          var5 = var4;
  55.       }
  56.    }
  57.  
  58.    public static String GetTokenY(String var0, int var1, char var2) {
  59.       return GetTokenZ(var0, var1, var2, false);
  60.    }
  61.  
  62.    public static String GetTokenX(String var0, int var1, char var2) {
  63.       String var3 = GetTokenY(var0, var1, var2);
  64.       if (var3 == null) {
  65.          var3 = "";
  66.       }
  67.  
  68.       return var3;
  69.    }
  70.  
  71.    public static String GetToken(String var0, int var1) {
  72.       return GetTokenX(var0, var1, '@');
  73.    }
  74.  
  75.    public static String RepStringX(String var0, String var1, String var2, boolean var3) {
  76.       String var6 = "";
  77.       if (var0 != null && var1 != null && var2 != null) {
  78.          int var7;
  79.          String var10;
  80.          if (var3) {
  81.             for(String var8 = var1.toLowerCase(); (var7 = var0.toLowerCase().indexOf(var8)) != -1; var0 = var10) {
  82.                String var9 = var0.substring(0, var7);
  83.                var10 = var0.substring(var7 + var8.length());
  84.                var6 = var6 + var9 + var2;
  85.             }
  86.          } else {
  87.             while((var7 = var0.indexOf(var1)) != -1) {
  88.                String var4 = var0.substring(0, var7);
  89.                var10 = var0.substring(var7 + var1.length());
  90.                var6 = var6 + var4 + var2;
  91.                var0 = var10;
  92.             }
  93.          }
  94.  
  95.          return var6 + var0;
  96.       } else {
  97.          return var0;
  98.       }
  99.    }
  100.  
  101.    public static String RepString(String var0, String var1, String var2) {
  102.       return RepStringX(var0, var1, var2, false);
  103.    }
  104.  
  105.    public static int GetColor(String var0) {
  106.       if (var0 == null) {
  107.          return 16777215;
  108.       } else {
  109.          var0 = var0.toLowerCase();
  110.          if (var0.equals("black")) {
  111.             return 0;
  112.          } else if (var0.equals("blue")) {
  113.             return 4095;
  114.          } else if (var0.equals("cyan")) {
  115.             return 65535;
  116.          } else if (var0.equals("gray")) {
  117.             return 8421504;
  118.          } else if (var0.equals("green")) {
  119.             return 65280;
  120.          } else if (var0.equals("magenta")) {
  121.             return 16711935;
  122.          } else if (var0.equals("red")) {
  123.             return 16711680;
  124.          } else if (var0.equals("white")) {
  125.             return 16777215;
  126.          } else if (var0.equals("yellow")) {
  127.             return 16776960;
  128.          } else {
  129.             if (var0.startsWith("#") && var0.length() > 1) {
  130.                var0 = var0.substring(1);
  131.             }
  132.  
  133.             if (var0.startsWith("0x") && var0.length() > 2) {
  134.                var0 = var0.substring(2);
  135.             }
  136.  
  137.             try {
  138.                return Integer.parseInt(var0, 16);
  139.             } catch (Exception var2) {
  140.                return 16777215;
  141.             }
  142.          }
  143.       }
  144.    }
  145.  
  146.    public static void initColorStack() {
  147.       ColorStackIndex = -1;
  148.    }
  149.  
  150.    public static void pushColorStack(int var0) {
  151.       if (ColorStackIndex + 1 < ColorStackLevel) {
  152.          ++ColorStackIndex;
  153.          ColorStack[ColorStackIndex] = var0;
  154.       }
  155.  
  156.    }
  157.  
  158.    public static int popColorStack() {
  159.       int var0 = ColorStack[ColorStackIndex];
  160.       if (ColorStackIndex > 0) {
  161.          --ColorStackIndex;
  162.       }
  163.  
  164.       return var0;
  165.    }
  166.  
  167.    public static void initHistoryStack() {
  168.       HistoryIndex = -1;
  169.    }
  170.  
  171.    public static void pushHistoryStack(String var0) {
  172.       if (var0.indexOf(63) == -1) {
  173.          if (HistoryIndex < 0 || !var0.equals(HistoryStack[HistoryIndex])) {
  174.             if (HistoryIndex + 1 < HistoryLevel) {
  175.                ++HistoryIndex;
  176.                HistoryStack[HistoryIndex] = var0;
  177.             }
  178.  
  179.          }
  180.       }
  181.    }
  182.  
  183.    public static String popHistoryStack() {
  184.       String var0 = HistoryStack[HistoryIndex];
  185.       if (HistoryIndex > 0) {
  186.          --HistoryIndex;
  187.       }
  188.  
  189.       return var0;
  190.    }
  191.  
  192.    public static String GetURLBase(String var0) {
  193.       String var1 = var0;
  194.       if (var0 == null) {
  195.          return "";
  196.       } else {
  197.          if (!var0.startsWith("http://")) {
  198.             var1 = "http://" + var0;
  199.          }
  200.  
  201.          int var2 = var1.length();
  202.  
  203.          int var3;
  204.          for(var3 = var2 - 1; var3 >= 0 && var1.charAt(var3) != '/' && var1.charAt(var3) != '\\'; --var3) {
  205.          }
  206.  
  207.          var1 = var1.substring(0, var3 + 1);
  208.          if (var1.equals("http://")) {
  209.             var1 = var0 + "/";
  210.          }
  211.  
  212.          return var1;
  213.       }
  214.    }
  215.  
  216.    public static String GetURLRoot(String var0) {
  217.       if (var0 == null) {
  218.          return "";
  219.       } else {
  220.          if (var0.startsWith("http://")) {
  221.             var0 = var0.substring(7);
  222.          }
  223.  
  224.          int var1 = var0.length();
  225.          if (var1 == 0) {
  226.             return "";
  227.          } else {
  228.             int var2;
  229.             for(var2 = 0; var2 < var1 && var0.charAt(var2) != '/' && var0.charAt(var2) != '\\'; ++var2) {
  230.             }
  231.  
  232.             if (var2 < var1) {
  233.                var0 = var0.substring(0, var2 + 1);
  234.             } else {
  235.                var0 = var0 + "/";
  236.             }
  237.  
  238.             return "http://" + var0;
  239.          }
  240.       }
  241.    }
  242.  
  243.    public static Image CreateGifImage(byte[] var0) {
  244.       try {
  245.          GifDecoder var1 = new GifDecoder(var0);
  246.  
  247.          Image var2;
  248.          for(var2 = null; var1.moreFrames(); var1.nextFrame()) {
  249.             try {
  250.                var2 = var1.decodeImage();
  251.                if (HTMLStream.GF != null && var2 != null) {
  252.                   HTMLStream.GF.addImage(var2);
  253.                }
  254.             } catch (Exception var4) {
  255.                break;
  256.             }
  257.          }
  258.  
  259.          var1.clear();
  260.          Object var6 = null;
  261.          if (HTMLStream.GF != null && HTMLStream.GF.size() > 1) {
  262.             var2 = HTMLStream.GF.getImage();
  263.          }
  264.  
  265.          return var2;
  266.       } catch (Exception var5) {
  267.          return null;
  268.       }
  269.    }
  270.  
  271.    public static Image LoadHtmlImage(String var0) {
  272.       var0 = RepStringX(var0, ".jpg", ".png", true);
  273.       Object var1 = null;
  274.       Runtime.getRuntime().gc();
  275.       if (var0.toLowerCase().endsWith(".png")) {
  276.          try {
  277.             int var15;
  278.             byte[] var17;
  279.             if ((var17 = CellHtml.cachepool.getCache(var0)) == null) {
  280.                HttpConnection var11 = (HttpConnection)Connector.open(var0);
  281.                if (var11.getResponseCode() != 200) {
  282.                   var11.close();
  283.                   Object var13 = null;
  284.                   throw new Exception();
  285.                }
  286.  
  287.                var15 = (int)var11.getLength();
  288.                var17 = new byte[var15];
  289.                DataInputStream var20 = var11.openDataInputStream();
  290.                var20.readFully(var17);
  291.                var20.close();
  292.                var11.close();
  293.                Object var12 = null;
  294.                if (var0.indexOf(63) == -1) {
  295.                   CellHtml.cachepool.setCache(var0, var17);
  296.                }
  297.             } else {
  298.                var15 = var17.length;
  299.             }
  300.  
  301.             Image var21 = Image.createImage(var17, 0, var15);
  302.             Object var18 = null;
  303.             return var21;
  304.          } catch (Exception var5) {
  305.             return null;
  306.          }
  307.       } else if (var0.toLowerCase().endsWith(".gif")) {
  308.          try {
  309.             byte[] var3;
  310.             if ((var3 = CellHtml.cachepool.getCache(var0)) == null) {
  311.                HttpConnection var8 = (HttpConnection)Connector.open(var0);
  312.                if (var8.getResponseCode() != 200) {
  313.                   var8.close();
  314.                   Object var10 = null;
  315.                   throw new Exception();
  316.                }
  317.  
  318.                int var2 = (int)var8.getLength();
  319.                var3 = new byte[var2];
  320.                DataInputStream var4 = var8.openDataInputStream();
  321.                var4.readFully(var3);
  322.                var4.close();
  323.                var8.close();
  324.                Object var9 = null;
  325.                if (var0.indexOf(63) == -1) {
  326.                   CellHtml.cachepool.setCache(var0, var3);
  327.                }
  328.             } else {
  329.                int var14 = var3.length;
  330.             }
  331.  
  332.             Image var19 = CreateGifImage(var3);
  333.             Object var16 = null;
  334.             return var19;
  335.          } catch (Exception var6) {
  336.             return null;
  337.          }
  338.       } else {
  339.          return null;
  340.       }
  341.    }
  342.  
  343.    public static String cutString(String var0, int var1) {
  344.       for(int var2 = var0.length(); MapCanvas.strWidth(var0) > var1; var0 = var0.substring(0, var2)) {
  345.          --var2;
  346.          if (var2 == 0) {
  347.             var0 = "";
  348.             break;
  349.          }
  350.       }
  351.  
  352.       return var0;
  353.    }
  354.  
  355.    static {
  356.       ColorStack = new int[ColorStackLevel];
  357.       ColorStackIndex = -1;
  358.       HistoryLevel = 16;
  359.       HistoryStack = new String[HistoryLevel];
  360.       HistoryIndex = -1;
  361.    }
  362. }
  363.