📄 applestatusmenu.java.svn-base
字号:
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 + -