📄 groupmanager.java
字号:
import javax.microedition.pim.*;
import javax.microedition.lcdui.*;
/**
* GroupManager类是个名片分组管理器,可以添加、删除名片组。还可以浏览组内的名片。
*/
public class GroupManager extends MicroComponent implements CommandListener {
//
private Cardcase cardcase; //名片盒
private CardcaseMIDlet midlet; //
private Display display;
private Displayable backScreen; //返回屏幕
private List groupListView; //名片组列表视图
private TextBox tbGroupName; //名片组名输入视图
private Form delForm; //删除名片组,提示用户是否删除组中的所有名片
private Command cmdBack = new Command("返回", Command.BACK, 1);
private Command cmdSelect = new Command("查看", Command.ITEM, 2);
private Command cmdNew = new Command("新建", Command.SCREEN, 3);
private Command cmdDelete = new Command("删除", Command.SCREEN, 4);
private Command cmdOK = new Command("确定", Command.OK, 1);
private Command cmdCancel = new Command("取消", Command.CANCEL, 2);
//构造方法
public GroupManager(Cardcase cardcase, CardcaseMIDlet midlet, Displayable backScreen) {
this.cardcase = cardcase;
this.midlet = midlet;
display = Display.getDisplay(midlet);
this.backScreen = backScreen;
//创建名片组列表视图
groupListView = new List("名片组", Choice.IMPLICIT);
groupListView.addCommand(cmdBack);
groupListView.addCommand(cmdNew);
groupListView.setCommandListener(this);
//创建名片组名输入视图
tbGroupName = new TextBox("请输入组名:", "", 40, TextField.ANY);
tbGroupName.addCommand(cmdOK);
tbGroupName.addCommand(cmdCancel);
tbGroupName.setCommandListener(this);
}
//显示名片组列表视图
public void show() {
updateView();
display.setCurrent(groupListView);
}
//更新列表视图
public void updateView() {
groupListView.deleteAll(); //清除
String[] categories = new String[0];
try {//获取所有的名片组
categories = cardcase.getCategories();
}
catch(PIMException pime) {
midlet.showError("名片分组管理错误!原因:\n" + pime.toString());
}
for(int i=0; i<categories.length; i++) {
groupListView.append(categories[i], null);
}
if(groupListView.size() > 0) {
groupListView.addCommand(cmdDelete);
groupListView.setSelectCommand(cmdSelect);
}
else {
groupListView.removeCommand(cmdDelete);
groupListView.removeCommand(cmdSelect);
}
}
//处理视图上的命令,响应用户操作
public void commandAction(Command cmd, Displayable d) {
if(cmd == cmdBack) {
midlet.backToMainMenu();
}
else if(cmd == cmdSelect) { //查看组内的名片
int index = groupListView.getSelectedIndex();
String name = groupListView.getString(index);
//创建组名片管理器
GroupCardManager cardList = new GroupCardManager(cardcase, name, midlet, this);
cardList.show();
}
else if(cmd == cmdNew) {
display.setCurrent(tbGroupName);
}
else if(cmd == cmdDelete) { //删除名片组
if(delForm == null) {
createDelForm();
}
display.setCurrent(delForm);
}
else if(cmd == cmdOK) { //创建名片组
String name = tbGroupName.getString();
try {
if(name.trim().length()>0) {
cardcase.addCategory(name);
updateView();
}
}
catch(PIMException pime) {
midlet.showError("创建名片组" + name +"错误!\n原因:" + pime.toString());
}
display.setCurrent(groupListView);
}
else if(cmd == cmdCancel) {
display.setCurrent(groupListView);
}
}
//创建删除名片组的视图
public void createDelForm() {
delForm = new Form("删除名片组");
ChoiceGroup cgItem = new ChoiceGroup("是否删除组中的所有名片?", Choice.EXCLUSIVE);
delForm.append(cgItem);
cgItem.append(" 是", null);
cgItem.append(" 否", null);
cgItem.setDefaultCommand(new Command("确定", Command.OK, 1));
cgItem.setItemCommandListener(new ItemCommandListener() {
public void commandAction(Command cmd, Item item) {
ChoiceGroup cg = (ChoiceGroup)item;
String name = groupListView.getString(groupListView.getSelectedIndex());
try {
boolean boo = cg.isSelected(0);
cardcase.deleteCategory(name, boo);
}
catch(PIMException pime) {
System.out.println("deleteCategory is error. \n" + pime.toString());
}
show();
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -