⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.java

📁 MobileDict
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 

package mobiledict;

import com.siemens.mp.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Vector;
import javax.microedition.lcdui.*;

// Referenced classes of package mobiledict:
//            c, d, MobileDict, b, 
//            e

public class a extends Canvas
    implements CommandListener
{

    public a()
    {
        _fldgoto = 0;
        l = 0;
        _mthint();
        _fldint = new Image[13];
        try
        {
            for(int i1 = 1; i1 <= 13; i1++)
                _fldint[i1 - 1] = Image.createImage(String.valueOf(String.valueOf((new StringBuffer("/images/")).append(i1).append(".PNG"))));

        }
        catch(IOException ioexception) { }
    }

    public void a(int i1, int j1, int k1, int l1, int i2, int j2, int k2, 
            int l2)
    {
        s = i1;
        p = j1;
        g = k1;
        _fldbyte = l1;
        e = i2;
        d = j2;
        _fldelse = k2;
        n = l2;
    }

    public void a(Display display, MobileDict mobiledict)
    {
        h = display;
        c = mobiledict;
        _fldchar = (new Command[] {
            new Command(MobileDict.j._fldtry, 4, 0), new Command(MobileDict.j._fldif, 4, 1), new Command(MobileDict.j._fldint, 4, 2), new Command(MobileDict.j.a, 6, 4), new Command(MobileDict.j._flddo, 4, 3)
        });
        r = (new Command[] {
            new Command(MobileDict.j.n, 4, 0), new Command(MobileDict.j._fldtry, 4, 1), new Command(MobileDict.j._fldint, 4, 3), new Command(MobileDict.j.a, 6, 5), new Command(MobileDict.j.c, 4, 2), new Command(MobileDict.j._flddo, 4, 4)
        });
        _fldnull = new Command(MobileDict.j._fldchar, 4, 0);
        a("");
    }

    public void a(String s1, int i1)
    {
        m = s1;
        l = i1;
        _fldfor = true;
        h.setCurrent(this);
    }

    protected void paint(Graphics g1)
    {
        k = g1;
        if(_fldfor)
        {
            _fldfor = false;
            if(a())
            {
                c c1 = new c(this, m, o, _flddo, null);
                c1._mthdo();
            } else
            {
                d d1 = new d(this);
                d1.a(j, _fldgoto);
            }
        }
    }

    private void _mthif()
    {
        h.setCurrent(this);
        k.setColor(0xffffff);
        k.fillRect(0, 0, 101, 80);
        k.setColor(0);
        k.drawString(MobileDict.j.g, 50, 34, 17);
    }

    public void a(String s1)
    {
        _fldlong = new TextBox(MobileDict.j._fldelse, s1, 100, 0);
        for(int i1 = 0; i1 < r.length; i1++)
            _fldlong.addCommand(r[i1]);

        h.setCurrent(_fldlong);
        _fldlong.setCommandListener(this);
    }

    public void _mthfor()
    {
        _mthif();
        _fldgoto = a(2, b, _fldvoid);
        d d1 = new d(this);
        d1.a(j, _fldgoto);
    }

    public void commandAction(Command command, Displayable displayable)
    {
        if(command == r[0])
            a(_fldlong.getString(), 0);
        else
        if(command == r[1])
            a(_fldlong.getString(), 1);
        else
        if(command == r[4])
            _mthdo();
        else
        if(command == List.SELECT_COMMAND)
        {
            if(i.size() == 0)
                a("", 1);
            else
                a(i.getString(i.getSelectedIndex()), 0);
        } else
        if(command == _fldchar[0])
        {
            if(i.size() == 0)
                a("", 1);
            else
                a(i.getString(i.getSelectedIndex()), 1);
        } else
        if(command == _fldchar[1])
        {
            if(MobileDict._fldcase == 0)
                a("");
            else
                a(i.getString(i.getSelectedIndex()));
        } else
        if(command == r[5] || command == _fldchar[4])
        {
            Form form = new Form(MobileDict.j._flddo);
            form.append(MobileDict.j._fldgoto);
            form.addCommand(_fldnull);
            h.setCurrent(form);
            form.setCommandListener(this);
            if(command == r[5])
                _fldif = 0;
            else
                _fldif = 1;
        } else
        if(command == _fldnull)
        {
            if(_fldif == 0)
            {
                h.setCurrent(_fldlong);
                _fldlong.setCommandListener(this);
            } else
            {
                h.setCurrent(i);
                i.setCommandListener(this);
            }
        } else
        if(command == r[3] || command == _fldchar[3])
            c._mthif();
    }

    public void _mthdo()
    {
        i = new List(MobileDict.j.c, 3);
        for(int i1 = 0; i1 < _fldchar.length; i1++)
            i.addCommand(_fldchar[i1]);

        for(int j1 = 0; j1 < f.size(); j1++)
            i.append((String)f.elementAt(j1), null);

        if(i.size() == 0)
            i.setTitle(MobileDict.j.p);
        h.setCurrent(i);
        i.setCommandListener(this);
    }

    private void _mthint()
    {
        File file = new File();
        try
        {
            int i1 = file.open("LastTen");
            int j1 = file.length(i1);
            if(j1 > 0)
            {
                byte abyte0[] = new byte[j1];
                int k1 = -1;
                try
                {
                    k1 = file.read(i1, abyte0, 0, j1);
                }
                catch(IOException ioexception1) { }
                int l1 = 0;
                for(int i2 = 0; i2 < abyte0.length; i2 += 2)
                {
                    if(abyte0[i2] != 10 || abyte0[i2 + 1] != 0)
                        continue;
                    String s1;
                    if(i2 > 0)
                        s1 = e.a(abyte0, l1, i2);
                    else
                        s1 = "";
                    l1 = i2 + 2;
                    f.addElement(s1);
                }

            }
            file.close(i1);
        }
        catch(IOException ioexception) { }
    }

    public boolean a(int i1)
    {
        int j1 = _fldnew != 0 ? n : _fldbyte;
        byte byte0;
        byte byte1;
        byte byte2;
        if(i1 == -1)
        {
            if(q[0][0] <= 0)
                return false;
            byte0 = 5;
            byte1 = 0;
            byte2 = 1;
        } else
        {
            if(q[5][0] >= j1 - 1)
                return false;
            byte0 = 0;
            byte1 = 5;
            byte2 = 4;
        }
        for(int k1 = byte0; k1 != byte1; k1 += i1)
        {
            for(int i2 = 0; i2 < 10; i2++)
            {
                q[k1][i2] = q[k1 + i1][i2];
                _fldtry[k1][i2] = _fldtry[k1 + i1][i2];
            }

            _fldcase[k1] = _fldcase[k1 + i1];
            a[k1] = a[k1 + i1];
            j[k1] = j[k1 + i1];
        }

        _fldcase[byte1] = 0;
        a[byte1] = 0;
        j[byte1] = "";
        if(a[byte2] == 0)
        {
            q[byte1][0] = q[byte2][0] + i1;
            _fldcase[byte1] = 1;
        } else
        {
            for(int l1 = a[byte2]; l1 >= 0; l1--)
            {
                if(l1 > 0)
                {
                    if((i1 != -1 || q[1][l1] <= 0) && (i1 != 1 || q[4][l1] >= _fldtry[4][l1] - 1))
                        continue;
                    _fldcase[byte1] = l1 + 1;
                    q[byte1][l1] = q[byte2][l1] + i1;
                    for(int j2 = l1 - 1; j2 >= 0; j2--)
                        q[byte1][j2] = q[byte2][j2];

                    break;
                }
                q[byte1][0] = q[byte2][0] + i1;
                _fldcase[byte1] = 1;
            }

        }
        a(2, byte1, ((int []) (null)));
        return true;
    }

    public void a(int i1, d d1)
    {
        _mthif();
        a(1, i1, ((int []) (null)));
        c c1 = new c(this, m, o, _flddo, d1);
        c1._mthdo();
    }

    private boolean a()
    {
        byte abyte0[];
        int i1;
        int j1;
        int k1;
        int l1;
        File file;
        int ai[];
        int ai1[];
        int i2;
        boolean flag;
        boolean flag1;
        k.drawString(MobileDict.j.r, 50, 34, 17);
        m = m.trim();
        _fldnew = e._mthdo(m);
        if(_fldnew == 0)
        {
            i1 = s;
            j1 = p;
            k1 = g;
            l1 = _fldbyte;
            abyte0 = m.toLowerCase().getBytes();
        } else
        {
            i1 = e;
            j1 = d;
            k1 = _fldelse;
            l1 = n;
            abyte0 = e._mthif(m);
        }
        file = new File();
        ai = new int[10];
        ai1 = new int[10];
        i2 = 0;
        flag = true;
        flag1 = true;
        int j2;
        byte abyte1[];
        int i4;
        int l4;
        int i5;
        byte byte0;
        int j5;
        int k5;
        if(_fldnew == 0)
            j2 = file.open("dict");
        else
            j2 = file.open("cdict");
        abyte1 = new byte[k1];
        i4 = 0;
        l4 = 0;
        i5 = 0;
        byte0 = 3;
        j5 = 0;
        k5 = 0;
_L9:
        if(!flag1) goto _L2; else goto _L1
_L1:
        int k3 = 0;
        if(j5 <= 0) goto _L4; else goto _L3
_L3:
        if(abyte1[j5] != 0) goto _L5; else goto _L2
_L5:
        int l3;
        abyte0 = (new String(abyte0, j5, abyte0.length - j5)).getBytes();
        if(_fldnew == 1)
            j5++;
        byte0 = abyte1[j5];
        if(byte0 == 3)
        {
            k5 = abyte1[j5 + 1];
            if(k5 < 0)
                k5 += 256;
            int j3 = abyte1[j5 + 2];
            if(j3 < 0)
                j3 += 256;
            k5 += j3 * 256;
            j3 = abyte1[j5 + 3] & 0xf;
            k5 += j3 * 0x10000;
        } else
        {
            l4 = i5;
            k5 = abyte1[j5 + 1] & 0xf;
        }
        l3 = abyte1[k1 - 1];
        if(l3 < 0)
            l3 += 256;
        l3 >>= 4;
          goto _L6
_L4:
        l3 = l1 - 1;
_L6:
        do
        {
            i4 = (k3 + l3) / 2;
            if(j5 == 0)
                i5 = i1 + i4 * k1;
            else
            if(byte0 == 3)
                i5 = j1 + (k5 + i4) * k1;
            else
                i5 = l4 + (k5 + i4) * k1;
            file.seek(j2, i5);
            file.read(j2, abyte1, 0, k1);
            int i3;
            if(_fldnew == 0)
                for(i3 = 0; i3 < k1 && (abyte1[i3] >= 16 || abyte1[i3] < 0); i3++);
            else
                for(i3 = 0; i3 < k1 && (abyte1[i3] != 0 || abyte1[i3 + 1] >= 16 || abyte1[i3 + 1] < 0); i3 += 2);
            j5 = i3;
            byte abyte2[] = new byte[j5];
            for(int k2 = 0; k2 < j5; k2++)
                abyte2[k2] = abyte1[k2];

            if(_fldnew == 0)
            {
                String s1 = new String(abyte2);
                s1.trim();
                s1 = s1.toLowerCase();
                abyte2 = s1.getBytes();
            }
            int l5 = abyte0.length;
            int k4;
            if(l5 < j5)
                k4 = l5;
            else
                k4 = j5;
            int j4 = a(abyte0, abyte2, k4);
            if(j4 == 0)
                if(l5 < j5)
                    j4 = -1;
                else
                if(l5 > j5)
                    if(_fldnew == 0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -