package org.chartsy.chatsy.chat.ui; import org.chartsy.chatsy.chat.component.tabbedPane.ChatsyTab; import org.chartsy.chatsy.chat.ui.rooms.ChatRoomImpl; import org.chartsy.chatsy.chat.PresenceManager; import org.jivesoftware.smack.packet.Presence; import java.awt.Component; import java.awt.Color; public abstract class ChatsyTabHandler { public abstract boolean isTabHandled(ChatsyTab tab, Component component, boolean isSelectedTab, boolean chatFrameFocused); protected void decorateStaleTab(ChatsyTab tab, ChatRoom chatRoom) { tab.setTitleColor(Color.gray); tab.setTabFont(tab.getDefaultFont()); String jid = ((ChatRoomImpl)chatRoom).getParticipantJID(); Presence presence = PresenceManager.getPresence(jid); if (presence.isAvailable()) { Presence.Mode mode = presence.getMode(); if (mode == Presence.Mode.available || mode == null) tab.setIcon(PresenceManager.getIconFromPresence(PresenceManager.AVAILABLE)); else if (mode == Presence.Mode.away) tab.setIcon(PresenceManager.getIconFromPresence(PresenceManager.AWAY)); else if (mode == Presence.Mode.dnd) tab.setIcon(PresenceManager.getIconFromPresence(PresenceManager.BUSY)); else if (mode == Presence.Mode.xa) tab.setIcon(PresenceManager.getIconFromPresence(PresenceManager.INVISIBLE)); } tab.validateTab(); } }