import javax.microedition.lcdui.*;
public class PhaseListForm extends Form implements CommandListener,ItemCommandListener
{
private Commandback,del,look,delAll,rename, send;
private RestRecordrestRecord=null;
private PhaseManagephaseManage=null;
private StringItem[]stringItems=null;
//用于标记是否在选择残局
privatebooleanifSelect = false;
//调用残局时的变量定义
privateint[][]chess = null;
privateServerFormserverForm = null;
private Commandselect = null;
public PhaseListForm(PhaseManage pm)
{//这个构造函数为残局管理服务
super("残局列表");
ifSelect = false;
phaseManage=pm;
restRecord=new RestRecord();
back=new Command("Back",Command.EXIT,1);
del=new Command("Del",Command.ITEM,1);
delAll=new Command("DelAll",Command.ITEM,1);
look=new Command("Look",Command.ITEM,1);
rename = new Command("Rename",Command.ITEM,1);
send = new Command("Send",Command.ITEM,1);
stringItems=getItemList();
addCommand(back);
setCommandListener(this);
//System.out.println("初始化RecordManage成功");
}
public PhaseListForm(ServerForms ,int[][]chess)
{//这个构造函数为调用残局摆擂服务
super("选择残局");
this.chess = chess;
serverForm = s;
ifSelect = true;
restRecord=new RestRecord();
select = new Command("Select",Command.ITEM,1);
back=new Command("Back",Command.EXIT,1);
stringItems=getItemList();
addCommand(back);
setCommandListener(this);
}
private StringItem[]getItemList()
{
String[] recordNameList=restRecord.getPhaseList();
int n=recordNameList.length;
StringItem[]items=new StringItem[n];
for(int i=0;i
{
items[i]=new StringItem(null,recordNameList[i],Item.PLAIN);
if(!ifSelect)
{
items[i].setDefaultCommand(look);
items[i].addCommand(del);
items[i].addCommand(delAll);
items[i].addCommand(rename);
items[i].addCommand(send);
}
else
{
items[i].addCommand(select);
}
items[i].setItemCommandListener(this);
append(items[i]);
append("\n");
}
return items;
}
public void commandAction(Command com,Displayable dis)
{//在这个方法里面一定要标记出是哪个命令,防止按任意键时调用命令
if(com == back && !ifSelect)
{
Chess.dis.setCurrent(phaseManage);
}
if(com == back && ifSelect)
{
Chess.dis.setCurrent(serverForm);
}
}
public void commandAction(Command com,Item item)
{
if(com == select)
{
int itemNumber=0;
for(int i=0;i
{
if(item.equals(stringItems[i]))
{
itemNumber=i;
break;
}
}
//System.out.println("得到的itemNumber是:"+itemNumber);
String phaseName=((StringItem)item).getText();
chess = restRecord.getPhase(phaseName);
serverForm.setChess(chess);
Chess.dis.setCurrent(serverForm);
}
if(com==del)
{
int itemNumber=0;
for(int i=0;i
{
if(item.equals(stringItems[i]))
{
itemNumber=i;
break;
}
}
//System.out.println("得到的itemNumber是:"+itemNumber);
String phaseName=((StringItem)item).getText();
int flag=restRecord.delPhase(phaseName);
if(flag==0)
{
//System.out.println("删除残局成功");
delete(itemNumber);
//System.out.println("删除StringItem成功");
}
else
{
//System.out.println("删除残局失败");
Alert alert=new Alert("Message","删除残局失败",null,AlertType.WARNING);
Chess.dis.setCurrent(alert, this);
}
}
if(com==delAll)
{
int flag=restRecord.delAllPhase();
if(flag==0)
{
//System.out.println("删除全部残局成功");
deleteAll();
//System.out.println("删除全部StringItem成功");
}
}
if(com==look)
{
int itemNumber=0;
for(int i=0;i
{
if(item.equals(stringItems[i]))
{
itemNumber=i;
break;
}
}
//System.out.println("得到的itemNumber是:"+itemNumber);
String phaseName=((StringItem)item).getText();
int[][]chess = restRecord.getPhase(phaseName);
PhaseLookCanvasplc = new PhaseLookCanvas(chess ,this);
Chess.dis.setCurrent(plc);
}
if(com==rename)
{
int itemNumber=0;
for(int i=0;i
{
if(item.equals(stringItems[i]))
{
itemNumber=i;
break;
}
}
//System.out.println("得到的itemNumber是:"+itemNumber);
StringItemtempItem = (StringItem)item;
PhaseRenameFormprf = new PhaseRenameForm(tempItem,restRecord,this);
Chess.dis.setCurrent(prf);
}
if(com == send)
{
Flash flash = new Flash(this);
flash.sending();
flash.startFlash();
int itemNumber=0;
for(int i=0;i
{
if(item.equals(stringItems[i]))
{
itemNumber=i;
break;
}
}
//System.out.println("得到的itemNumber是:"+itemNumber);
String phaseName=((StringItem)item).getText();
chess = restRecord.getPhase(phaseName);
new ClientChess(this, chess, flash);
}
}
};