package com.entersoft.j2me.gui;
import java.util.Vector;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;
import com.entersoft.j2me.client.ControlNote;
import com.entersoft.j2me.client.EnterClubMIDlet;
import com.entersoft.j2me.client.Search;
import com.entersoft.j2me.client.SearchHouseEnterprise;
import com.entersoft.j2me.client.SendDataPage;
import com.entersoft.j2me.gui.Message.ConstKode;
import com.entersoft.j2me.gui.Message.Information;
import com.entersoft.j2me.gui.Message.ExceptionMessage;
import com.entersoft.j2me.gui.action.DrawScreen;
import com.entersoft.j2me.gui.action.ListAction;
import com.entersoft.j2me.model.DrawExceptionMessage;
import com.entersoft.j2me.model.ImageManage;
import com.entersoft.j2me.operation.DataOperation;
import com.entersoft.j2me.client.*;
import com.entersoft.j2me.entity.DataObject;
import com.entersoft.j2me.entity.News;
import com.entersoft.j2me.entity.RecordStoreData;
import com.entersoft.j2me.entity.User;
public class List extends Canvas implements Runnable{
EnterClubMIDlet mainMIDlet;
/** 子父级画布对象*/
Canvas canvas;
/** 控制对象*/
Display display;
/** 图片管理器*/
ImageManage imageManage;
/** 业务管理对象*/
DataOperation objDO;
/** 数据管理对象*/
DataObject objDB;
/** 业务管理对象*/
SendDataPage sdp;
/** 主父级画布对象*/
Grid mainCanvas;
/** 画屏对象*/
DrawScreen ds;
/** 列表对象*/
News news;
/** 当先用户对象*/
User user;
/** 列表显示对象*/
ListAction la;
/** 业务处理标识*/
boolean flag=false;
/**确认按键是否按下标识*/
boolean listItemPressed=false;
/** 当前选项索引标识*/
private int listIndex=0;
/** 是否是订阅资讯*/
private boolean isOrderType=false;
/** 是否是退订资讯*/
private boolean isDeleteType=false;
/** 是否退订*/
private boolean isDelete=false;
/** 是否订阅*/
private boolean isOrder=false;
/** 是否已经订阅或者退订*/
private boolean isExist=false;
/** 资讯编号组*/
private Vector newsNumberArray=null;
/** 当前订阅的资讯编号或当前退订的资讯编号组*/
private Vector orderedOrDeleteNewsType=null;
/** 当前板块编号*/
private int boardId=-1;
/** 列表显示类型*/
private int showListType=-1;
/** 错误信息*/
DrawExceptionMessage exception;
/** 列表选项组*/
private Vector itemText=null;
/** 列表选项图标*/
private Vector itemImage=null;
/** 控制面板对象*/
TitleAndMenu controlPanel;
/** 列表字体*/
private Font panelFont;
/** 特定列表文本*/
private String listItemText=null;
/** 特定列表图标*/
private Image listItemIcon=null;
/** 背景图片*/
private Image listBackGroundImage=null;
/** 16进制背景颜色*/
private int listBackGroundColor=0xCAEE90;
/** RGB背景颜色*/
private int red=255,green=255,blue=255;
/** 选项索引*/
private int itemIndex=0;
/** 焦点选项背景色*/
private int focusItemBackGroundColor=0x80c060;
/** 焦点选项文本颜色*/
private int focusItemFontColor=0xff0000;
/** 选项文本颜色*/
private int ItemFontColor=0x191970;
/** 选项索引类型*/
private int listIndexType=ConstKode.NULL;
/** 列表编号颜色*/
private int indexNumberColor=0x000000;
/** 焦点*/
private int focus=0;
/** 列表宽度*/
private int listWidth=0;
/** 列表高度*/
private int listHeight=0;
/** 全屏显示标识*/
private boolean isFillFullScreen=true;
/** 图片尺寸标识*/
private boolean imgSizeBig=false;
/** 选项内容长度标识*/
private boolean isLongText=false;
/** 循环选项标识*/
private boolean isCircle=false;
/** 焦点选项起点坐标*/
private int itemTextX=0;
private int charIndex=0;
/** 列表页数*/
private int page=0;
/** 每一屏幕显示列表的数量*/
private int listCount=0;
/** 列表常量高度*/
private int listConst=0;
/** 图标宽度*/
private int itemIconWidth=0;
/** 图标高度*/
private int itemIconHeight=0;
/** 左键按下标识*/
private boolean leftKeyPressed=false;
/** 右键按下标识*/
private boolean rightKeyPressed=false;
/** 父级事件标识符*/
private int actionMarker=-1;
/** 用户登陆标识符*/
private boolean isLogin=false;
/** 企业板块列表标识符*/
private boolean isEnterpriseList=false;
/** 楼盘板块列表标识符*/
private boolean isHouseList=false;
/** 车商列表标识符*/
private boolean isCarsList=false;
/** 商场列表标识符*/
private boolean isMarketsList=false;
/** 生活资讯当前子列表标识符*/
private String ccbl=null;
public List(EnterClubMIDlet mainMIDlet,Canvas canvas,Font panelFont)
{
this.setFullScreenMode(true);
this.mainMIDlet=mainMIDlet;
this.canvas=canvas;
this.display=Display.getDisplay(this.mainMIDlet);
this.panelFont=panelFont;
listWidth=this.getWidth();
listHeight=this.getHeight();
ds=new DrawScreen(this.mainMIDlet,this,this.panelFont);
la=new ListAction(this.mainMIDlet,this.display,this,this.mainCanvas);
}
protected void paint(Graphics graphics) {
//清除屏幕;
this.setFullScreenMode(true);
graphics.setColor( 255, 255, 255);
graphics.fillRect(0, 0, getWidth(), getHeight());
initialization(itemText);
if (isFillFullScreen)
{
//屏幕背景颜色
if ((this.listBackGroundColor != 0xFFFFFF) && (this.red==255 && this.green==255 && this.blue==255))
{
graphics.setColor(listBackGroundColor);
}
if ((this.red!=255 || this.green!=255 || this.blue!=255) && (this.listBackGroundColor==0xFFFFFF))
{
graphics.setColor(red, green, blue);
}
graphics.fillRect(0, 0, getWidth(), getHeight());
//panelFont=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
graphics.setFont(panelFont);
setDrawScreenObject(graphics);
ds.drawFullScreen(graphics);
}else//非全屏模式
{
//屏幕背景颜色
if ((this.listBackGroundColor != 0xFFFFFF) && (this.red==255 && this.green==255 && this.blue==255))
{
graphics.setColor(listBackGroundColor);
}
if ((this.red!=255 || this.green!=255 || this.blue!=255) && (this.listBackGroundColor==0xFFFFFF))
{
graphics.setColor(red, green, blue);
}
graphics.fillRect(controlPanel.getLeftPanelW(), controlPanel.getTitlePanelH(), listWidth, listHeight);
//panelFont=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
graphics.setFont(panelFont);
if (controlPanel.isTitlePanel() && controlPanel.isMenuPanel() && controlPanel.isLeftPanel() && controlPanel.isRightPanel())
{
controlPanel.drawTitlePanel(graphics);
controlPanel.drawLeftMenuPanel(graphics);
if (this.isOrderType)
{
DataObject object=new DataObject();
//News orderTypes=object.getListObject(RecordStoreData.ORDERTYPES, news);
news=object.getListObject(RecordStoreData.USER_ORDERNEWSTYPE);
//Vector order=orderTypes.getNumber();
Vector user=news.getNumber();
setDrawScreenObject(graphics);
ds.drawOrderScreen(graphics, listIndex, controlPanel, user, isOrder);
}else if (this.isDeleteType)
{
setDrawScreenObject(graphics);
ds.drawDeleteOrderScreen(graphics, listIndex, controlPanel, isDelete);
}else
{
setDrawScreenObject(graphics);
ds.drawDefaultScreen(graphics, controlPanel);
}
controlPanel.drawMenuPanel(graphics);
}else if (controlPanel.isTitlePanel() && controlPanel.isLeftPanel())
{
controlPanel.drawTitlePanel(graphics);
controlPanel.drawLeftMenuPanel(graphics);
panelFont=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
graphi