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

📄 applestatusmenu.java

📁 开源项目openfire的完整源程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    Presence.Mode.chat.equals(presence.getMode())) {                    RosterEntry entry = roster.getEntry(user);                    addEntry(entry);                }            }        });    }    public void presenceChanged(final Presence presence) {        SwingUtilities.invokeLater(new Runnable() {            public void run() {                if (Presence.Mode.chat.equals(presence.getMode())) {                    freeToChatItem.setState(NSCell.OnState);                    availableItem.setState(NSCell.OffState);                    awayItem.setState(NSCell.OffState);                    extendedAwayItem.setState(NSCell.OffState);                    doNotDisturbItem.setState(NSCell.OffState);                }                else if (Presence.Mode.available.equals(presence.getMode())) {                    freeToChatItem.setState(NSCell.OffState);                    availableItem.setState(NSCell.OnState);                    awayItem.setState(NSCell.OffState);                    extendedAwayItem.setState(NSCell.OffState);                    doNotDisturbItem.setState(NSCell.OffState);                }                else if (Presence.Mode.away.equals(presence.getMode())) {                    freeToChatItem.setState(NSCell.OffState);                    availableItem.setState(NSCell.OffState);                    awayItem.setState(NSCell.OnState);                    extendedAwayItem.setState(NSCell.OffState);                    doNotDisturbItem.setState(NSCell.OffState);                }                else if (Presence.Mode.xa.equals(presence.getMode())) {                    freeToChatItem.setState(NSCell.OffState);                    availableItem.setState(NSCell.OffState);                    awayItem.setState(NSCell.OffState);                    extendedAwayItem.setState(NSCell.OnState);                    doNotDisturbItem.setState(NSCell.OffState);                }                else if (Presence.Mode.dnd.equals(presence.getMode())) {                    freeToChatItem.setState(NSCell.OffState);                    availableItem.setState(NSCell.OffState);                    awayItem.setState(NSCell.OffState);                    extendedAwayItem.setState(NSCell.OffState);                    doNotDisturbItem.setState(NSCell.OnState);                }            }        });    }    public void createChatRoom(final NSMenuItem item) {        Runnable runnable = new Runnable() {            public void run() {                String nickname = item.title();                String jid = SparkManager.getUserManager().getJIDFromNickname(nickname);                if (jid != null) {                    String bareJID = StringUtils.parseBareAddress(jid);                    ChatManager chatManager = SparkManager.getChatManager();                    ChatRoom chatRoom = chatManager.createChatRoom(bareJID, nickname, nickname);                    chatManager.getChatContainer().activateChatRoom(chatRoom);                    ChatFrame frame = chatManager.getChatContainer().getChatFrame();                    frame.setState(Frame.NORMAL);                    frame.setVisible(true);                    frame.toFront();                    NSApplication.sharedApplication().activateIgnoringOtherApps(true);                }                else {                    Log.error("Cannot create chat room, could not find jid for nickname " + nickname);                }            }        };        SwingUtilities.invokeLater(runnable);    }    public void handleStatusChange(final NSMenuItem item) {        String status = item.title();        if (freeToChatItem.title().equals(status)) {            freeToChatItem.setState(NSCell.OnState);            availableItem.setState(NSCell.OffState);            awayItem.setState(NSCell.OffState);            extendedAwayItem.setState(NSCell.OffState);            doNotDisturbItem.setState(NSCell.OffState);            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    StatusItem si = SparkManager.getWorkspace().getStatusBar().getStatusItem("Free To Chat");                    SparkManager.getSessionManager().changePresence(si.getPresence());                }            });        }        else if (availableItem.title().equals(status)) {            freeToChatItem.setState(NSCell.OffState);            availableItem.setState(NSCell.OnState);            awayItem.setState(NSCell.OffState);            extendedAwayItem.setState(NSCell.OffState);            doNotDisturbItem.setState(NSCell.OffState);            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    StatusItem si = SparkManager.getWorkspace().getStatusBar().getStatusItem("Online");                    SparkManager.getSessionManager().changePresence(si.getPresence());                }            });        }        else if (awayItem.title().equals(status)) {            freeToChatItem.setState(NSCell.OffState);            availableItem.setState(NSCell.OffState);            awayItem.setState(NSCell.OnState);            extendedAwayItem.setState(NSCell.OffState);            doNotDisturbItem.setState(NSCell.OffState);            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    StatusItem si = SparkManager.getWorkspace().getStatusBar().getStatusItem("Away");                    SparkManager.getSessionManager().changePresence(si.getPresence());                }            });        }        else if (extendedAwayItem.title().equals(status)) {            freeToChatItem.setState(NSCell.OffState);            availableItem.setState(NSCell.OffState);            awayItem.setState(NSCell.OffState);            extendedAwayItem.setState(NSCell.OnState);            doNotDisturbItem.setState(NSCell.OffState);            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    StatusItem si = SparkManager.getWorkspace().getStatusBar().getStatusItem("Extended Away");                    SparkManager.getSessionManager().changePresence(si.getPresence());                }            });        }        else if (doNotDisturbItem.title().equals(status)) {            freeToChatItem.setState(NSCell.OffState);            availableItem.setState(NSCell.OffState);            awayItem.setState(NSCell.OffState);            extendedAwayItem.setState(NSCell.OffState);            doNotDisturbItem.setState(NSCell.OnState);            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    StatusItem si = SparkManager.getWorkspace().getStatusBar().getStatusItem("Do Not Disturb");                    SparkManager.getSessionManager().changePresence(si.getPresence());                }            });        }    }    private void populateMenu(Roster roster) {        NSMenuItem item = new NSMenuItem();        item.setTitle("Available Contacts");        item.setEnabled(false);        contactMenu.addItem(item);        for (RosterEntry entry : roster.getEntries()) {            final Presence p = roster.getPresence(entry.getUser());            if (p.isAvailable()) {                addEntry(entry);            }        }    }    private void addEntry(RosterEntry entry) {        if (entry == null) {            return;        }        String nickname = entry.getName();        if (nickname == null) {            nickname = entry.getUser();        }        // if there isn't already an entry add it        if (!entries.contains(nickname)) {            NSMenuItem menuItem = new NSMenuItem();            menuItem.setIndentationLevel(2);            menuItem.setEnabled(true);            menuItem.setTitle(nickname);            menuItem.setAction(new NSSelector("createChatRoom", new Class[]{NSMenuItem.class}));            menuItem.setTarget(this);            contactMenu.addItem(menuItem);            entries.put(nickname, menuItem);        }    }    private void removeEntry(RosterEntry entry) {        if (entry == null) {            return;        }        String nickname = entry.getName();        NSMenuItem menuItem = (NSMenuItem)entries.remove(nickname);        if (menuItem != null) {            contactMenu.removeItem(menuItem);        }    }}

⌨️ 快捷键说明

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