⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mlistitem.java

📁 飞信的j2me源代码
💻 JAVA
字号:
import javax.microedition.lcdui.Graphics;

public class MListItem
{
    public static byte BUDDY_ITEM = 0;
    public static byte CHAT_SESSION_ITEM = 1;
    public byte type;
    Buddy buddy;
    ChatSession chatSession;
    boolean selected;

    public MListItem(Buddy buddy1)
    {
        type = BUDDY_ITEM;
        type = BUDDY_ITEM;
        buddy = buddy1;
        buddy.item = this;
    }

    public MListItem(ChatSession chatsession)
    {
        type = BUDDY_ITEM;
        chatSession = chatsession;
        chatSession.item = this;
        type = CHAT_SESSION_ITEM;
    }

    public void paint(int i, int j, Graphics g)
    {
        if(buddy != null)
            paintBuddy(i, j, g);
        else
            paintChatSession(i, j, g);
    }

    private void paintChatSession(int i, int j, Graphics g)
    {
        g.setColor(0);
        if(chatSession.uris == null)
            g.setColor(0x666666);
        else
        if(chatSession.uris.size() == 1)
            MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE * 4, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
        else
            MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE * 5, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
        StringBuffer stringbuffer = new StringBuffer();
        if(chatSession.unReadMessageCount > 0)
        {
            g.setColor(0xff0000);
            stringbuffer.append('[');
            stringbuffer.append(chatSession.unReadMessageCount);
            stringbuffer.append("新消息");
            stringbuffer.append(']');
        }
        if(selected)
            g.setColor(0xffffff);
        stringbuffer.append(chatSession.getTitle());
        int k = Setting.WIDTH - Setting.BUDDY_ICON_SIZE - 2;
        g.drawString(adjustDrawString(stringbuffer.toString(), k), i + Setting.BUDDY_ICON_SIZE + 1, j + 0, 20);
    }

    private String adjustDrawString(String s, int i)
    {
        int j = MMIDlet.DEFAULT_FONT.stringWidth(s);
        if(j > i)
        {
            int k = MMIDlet.DEFAULT_FONT.stringWidth("...");
            int l = s.length();
            while (j > i) 
            {
                j = k + MMIDlet.DEFAULT_FONT.stringWidth(s.substring(0, --l));
            }
            return s.substring(0, l) + "...";
        } else
        {
            return s;
        }
    }

    private void paintBuddy(int i, int j, Graphics g)
    {
        if(buddy.isOnline())
        {
            MCanvas.blt(MCanvas.img_BigIcon, 0, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
            g.setColor(0);
            if(!buddy.isActive())
                if(buddy.isBusy())
                    MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE * 11, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
                else
                    MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE * 12, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
        } else
        if(buddy.isSMSOnline())
        {
            MCanvas.blt(MCanvas.img_BigIcon, 0, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
            g.setColor(0xffbb00);
        } else
        {
            MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
            g.setColor(0x666666);
        }
        if(buddy.isCancelService())
            g.setColor(0x666666);
        if(selected)
            g.setColor(0xffffff);
        int k = Setting.WIDTH - Setting.BUDDY_ICON_SIZE - MMIDlet.DEFAULT_FONT.stringWidth(buddy.getPresenceDrawString()) - 2;
        g.drawString(adjustDrawString(buddy.getNickNameDrawString(), k), i + Setting.BUDDY_ICON_SIZE + 1, j + 0, 20);
        g.drawString(buddy.getPresenceDrawString(), Setting.WIDTH - 2, j + 0, 24);
        if(buddy.isBlock())
            MCanvas.blt(MCanvas.img_BigIcon, Setting.BUDDY_ICON_SIZE * 7, 0, Setting.BUDDY_ICON_SIZE, Setting.BUDDY_ICON_SIZE, i, j, g);
    }

    public Object getObject()
    {
        if(type == BUDDY_ITEM)
            return buddy;
        else
            return chatSession;
    }
}

⌨️ 快捷键说明

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