📄 mappinmenu.java
字号:
package org.sreid.j2me.gmapviewer;import java.util.*;import javax.microedition.lcdui.*;import javax.microedition.midlet.*;import org.sreid.j2me.util.*;// Handles permanent (non-search) map pins.public class MapPinMenu extends List implements CommandListener { private final GMapViewer app; private static final String BACK = "Back"; private static final String GO_TO_PIN = "Go to pin"; private static final String EDIT_PIN = "Rename pin"; private static final String DELETE_PIN = "Delete pin"; private final Vector mapPins = new Vector(); Displayable cameFrom; MapPinMenu(GMapViewer app) { super("Map pins", List.IMPLICIT); this.app = app; setCommandListener(this); addCommand(new Command(BACK, Command.BACK, 1)); addCommand(new Command(GO_TO_PIN, Command.ITEM, 1)); addCommand(new Command(EDIT_PIN, Command.ITEM, 2)); addCommand(new Command(DELETE_PIN, Command.ITEM, 2)); loadList(); } public void commandAction(Command c, Displayable d) { final MapPin pin = (getSelectedIndex() < 0 || mapPins.size() == 0 ? null : (MapPin)mapPins.elementAt(getSelectedIndex())); String cmd = c.getLabel(); if (cmd.equals(BACK)) { app.display.setCurrent(cameFrom); } else if (pin == null) { // all of the commands below require a map pin } else if (cmd.equals(GO_TO_PIN) || c == List.SELECT_COMMAND) { app.canvas.setXY(pin.x, pin.y); app.display.setCurrent(app.canvas); } else if (cmd.equals(EDIT_PIN)) { final Dialog dlg = Dialog.createTextDialog("Edit map pin", "Map pin text", pin.text, 40, TextField.ANY); dlg.setCallback(new Runnable() { public void run() { String userResponse = (String)dlg.getUserResponse(); if (userResponse != null) { pin.text = (String)userResponse; app.mpm.keepPin(pin); loadList(); } }}); dlg.showOn(app); } else if (cmd.equals(DELETE_PIN)) { final Dialog dlg = Dialog.createConfirmationDialog("Delete map pin?", "Are you sure you want to delete this map pin: " + pin.text, "Yes, delete it.", "No, keep it."); dlg.setCallback(new Runnable() { public void run() { if (dlg.getUserResponse() == Dialog.USER_CONFIRMED) { app.mpm.deletePin(pin); loadList(); } }}); dlg.showOn(app); } else { throw new IllegalArgumentException("Unrecognized command: " + cmd); } } void loadList() { mapPins.removeAllElements(); while (size() > 0) { delete(0); } for (Enumeration enum = app.mpm.enumeration() ; enum.hasMoreElements() ; ) { MapPin mp = (MapPin)enum.nextElement(); if (mp.isPermanent) { append(mp.text, null); mapPins.addElement(mp); } } if (mapPins.size() == 0) { append("You currently have no permanent map pins.", null); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -