indexlist.java

来自「Online Map for Mobile」· Java 代码 · 共 74 行

JAVA
74 行
字号
import javax.microedition.lcdui.*;

public class IndexList extends List implements CommandListener { 
    BrowserCanvas canvas;
    String        prefix;
    Index         index;
    Displayable   parent;
    static final int MAX_LENGTH = 32;

    IndexList(BrowserCanvas canvas, Index index, String prefix, Displayable parent) { 
        super(index.name, IMPLICIT);
        this.canvas = canvas;
        this.index = index;
        this.prefix = prefix;
        this.parent = parent;
        for (int i = 0; i < index.objects.length; i++) { 
            if (index.objects[i].name.toLowerCase().startsWith(prefix)) { 
                append(index.objects[i].name, null);
            }
        }
        if (size() == 0) { 
            canvas.browser.error(Locale.current.getResource("No items"), parent);
        } else { 
            addCommand(MapBrowser.SEARCH_CMD);
            addCommand(MapBrowser.SELECT_CMD);
            addCommand(MapBrowser.BACK_CMD);
            if (index.type == Index.POINT) { 
                addCommand(MapBrowser.ALL_CMD);
            }                
            setCommandListener(this);
            Display.getDisplay(canvas.browser).setCurrent(this);
        }
    }
    
    public void commandAction(Command c, Displayable d) 
    {
        if (c == MapBrowser.SEARCH_CMD) { 
            new SearchForm(canvas, index, this);
        } else if (c == MapBrowser.ALL_CMD) { 
            Location[] locations = new Location[size()];
            for (int i = 0, j = 0; i < index.objects.length; i++) { 
                if (index.objects[i].name.toLowerCase().startsWith(prefix)) { 
                    locations[j++] = index.objects[i];
                }
            }
            canvas.setPositions(index, locations);
            Display.getDisplay(canvas.browser).setCurrent(canvas);
        } else if (c != MapBrowser.BACK_CMD) { 
            int n = getSelectedIndex();
            if (n >= 0) { 
                int i = 0;
                while (!index.objects[i].name.toLowerCase().startsWith(prefix) || --n >= 0) { 
                    i += 1;
                }
                if (index.type == Index.SUBINDEX) { 
                    new IndexList(canvas, (Index)index.objects[i], "", this);
                } else { 
                    if (index.objects[i].info != null ||index.objects[i].image != null ) { 
                        new InfoForm(canvas, index, index.objects[i], this);
                    } else { 
                        canvas.setPositions(index, new Location[]{index.objects[i]});
                        Display.getDisplay(canvas.browser).setCurrent(canvas);
                    }
                }
            }
        } else { 
            Display.getDisplay(canvas.browser).setCurrent(parent);
        }
    }
}
           

    

⌨️ 快捷键说明

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