From 45f27a3a994afe0a735ea3708e58725a6c0bf302 Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov Date: Tue, 29 Sep 2009 19:51:44 +0000 Subject: [PATCH] Reduces the shallow runtime size of PresenceStatusMenu used to display and set the status of an account which supports presence. --- .../communicator/impl/gui/main/MainFrame.java | 12 ++--- .../impl/gui/main/login/LoginManager.java | 4 +- .../presence/GlobalStatusSelectorBox.java | 11 ++--- .../gui/main/presence/PresenceStatusMenu.java | 49 +++++++++---------- 4 files changed, 35 insertions(+), 41 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index d9df04e7e..c4cd63397 100755 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -546,15 +546,16 @@ public String getAccount(ProtocolProviderService protocolProvider) * presence operation set is searched. * @return the presence operation set for the given protocol provider. */ - public OperationSetPresence getProtocolPresenceOpSet( + public static OperationSetPresence getProtocolPresenceOpSet( ProtocolProviderService protocolProvider) { OperationSet opSet = protocolProvider.getOperationSet(OperationSetPresence.class); - return (opSet instanceof OperationSetPresence) - ? (OperationSetPresence) opSet - : null; + return + (opSet instanceof OperationSetPresence) + ? (OperationSetPresence) opSet + : null; } /** @@ -875,8 +876,7 @@ public Object getProtocolProviderLastStatus( ProtocolProviderService protocolProvider) { if(getProtocolPresenceOpSet(protocolProvider) != null) - return accountStatusPanel - .getLastPresenceStatus(protocolProvider); + return accountStatusPanel.getLastPresenceStatus(protocolProvider); else return accountStatusPanel.getLastStatusString(protocolProvider); } diff --git a/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java b/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java index ae142d2aa..819cab93d 100644 --- a/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/login/LoginManager.java @@ -137,8 +137,8 @@ public void registrationStateChanged(RegistrationStateChangeEvent evt) if (newState.equals(RegistrationState.REGISTERED)) { - OperationSetPresence presence = mainFrame - .getProtocolPresenceOpSet(protocolProvider); + OperationSetPresence presence + = MainFrame.getProtocolPresenceOpSet(protocolProvider); OperationSetMultiUserChat multiUserChat = mainFrame.getMultiUserChatOpSet(protocolProvider); diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java index 203b14922..8bf39315e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/GlobalStatusSelectorBox.java @@ -154,7 +154,7 @@ public void addAccount(ProtocolProviderService protocolProvider) protocolProvider.getOperationSet(OperationSetPresence.class); StatusSelectorMenu statusSelectorMenu = (presenceOpSet != null) - ? new PresenceStatusMenu(mainFrame, protocolProvider) + ? new PresenceStatusMenu(protocolProvider) : new SimpleStatusMenu(protocolProvider); this.add(statusSelectorMenu); @@ -436,7 +436,7 @@ public void updateStatus(ProtocolProviderService protocolProvider) } public void updateStatus(ProtocolProviderService protocolProvider, - PresenceStatus presenceStatus) + PresenceStatus presenceStatus) { StatusSelectorMenu accountMenu = accountMenus.get(protocolProvider); @@ -444,12 +444,7 @@ public void updateStatus(ProtocolProviderService protocolProvider, return; if (accountMenu instanceof PresenceStatusMenu) - { - PresenceStatusMenu presenceStatusMenu - = (PresenceStatusMenu) accountMenu; - - presenceStatusMenu.updateStatus(presenceStatus); - } + ((PresenceStatusMenu) accountMenu).updateStatus(presenceStatus); this.updateGlobalStatus(); } diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusMenu.java b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusMenu.java index bb9ab97be..2727a8d54 100644 --- a/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/presence/PresenceStatusMenu.java @@ -32,10 +32,13 @@ public class PresenceStatusMenu extends StatusSelectorMenu implements ActionListener { - private final Logger logger = - Logger.getLogger(PresenceStatusMenu.class); + private final Logger logger = Logger.getLogger(PresenceStatusMenu.class); - private ProtocolProviderService protocolProvider; + /** + * The ProtocolProviderService which has its presence status + * depicted and changed by this instance. + */ + private final ProtocolProviderService protocolProvider; private Iterator statusIterator; @@ -49,25 +52,21 @@ public class PresenceStatusMenu private JLabel titleLabel; - private MainFrame mainFrame; - /** - * Creates an instance of StatusSelectorBox and initializes the - * selector box with data. + * Initializes a new PresenceStatusMenu instance which is to + * depict and change the presence status of a specific + * ProtocolProviderService. * - * @param mainFrame The main application window. - * @param protocolProvider The protocol provider. + * @param protocolProvider the ProtocolProviderService which is to + * have its presence status depicted and changed by the new instance */ - public PresenceStatusMenu( MainFrame mainFrame, - ProtocolProviderService protocolProvider) + public PresenceStatusMenu(ProtocolProviderService protocolProvider) { super(protocolProvider.getAccountID().getDisplayName(), ImageLoader.getAccountStatusImage(protocolProvider)); this.protocolProvider = protocolProvider; - this.mainFrame = mainFrame; - this.presence = (OperationSetPresence) protocolProvider .getOperationSet(OperationSetPresence.class); @@ -191,26 +190,26 @@ else if (!status.isOnline() } /** - * Stops the timer that manages the connecting animated icon. + * Selects a specific PresenceStatus in this instance and the + * ProtocolProviderService it depicts. + * + * @param presenceStatus the PresenceStatus to be selected in this + * instance and the ProtocolProviderService it depicts */ - public void updateStatus(Object presenceStatus) + public void updateStatus(PresenceStatus presenceStatus) { - PresenceStatus status = (PresenceStatus) presenceStatus; - - OperationSetPresence presence = - mainFrame.getProtocolPresenceOpSet(protocolProvider); + OperationSetPresence presence + = MainFrame.getProtocolPresenceOpSet(protocolProvider); logger.trace("Update status for provider: " + protocolProvider.getAccountID().getAccountAddress() - + ". The new status will be: " + status.getStatusName()); + + ". The new status will be: " + presenceStatus.getStatusName()); - this.setSelectedStatus(status); + this.setSelectedStatus(presenceStatus); if (protocolProvider.isRegistered() - && !presence.getPresenceStatus().equals(status)) - { - new PublishPresenceStatusThread(status).start(); - } + && !presence.getPresenceStatus().equals(presenceStatus)) + new PublishPresenceStatusThread(presenceStatus).start(); } /**