/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.impl.gui.main.presence; import net.java.sip.communicator.service.protocol.*; import javax.swing.*; /** * All the entries represented in the global status menu for protocol providers. * Currently the following implemented types are available: * - menu with option to change several statuses * - menu with only online and offline, for protocols that do not support * presence operation set * - readonly menu item, just showing current status * * @author Damian Minkov */ public interface StatusEntry { /** * Returns the protocol provider associated with this status menu. * @return the protocol provider associated with this status menu */ public ProtocolProviderService getProtocolProvider(); /** * The component of this entry. * @return the component used to add to global status */ public JMenuItem getEntryComponent(); /** * Clears resources. */ public void dispose(); /** * Starts the connecting. */ public void startConnecting(); /** * Stops the connecting. */ public void stopConnecting(); /** * Returns true if the entry is currently selected (highlighted). * * @return true if the entry is selected, else false */ public boolean isSelected(); /** * To repaint component. */ public void repaint(); /** * Returns the Offline status in this selector box. * * @return the Offline status in this selector box */ public PresenceStatus getOfflineStatus(); /** * Returns the Online status in this selector box. * * @return the Online status in this selector box */ public PresenceStatus getOnlineStatus(); /** * Selects a specific <tt>PresenceStatus</tt> in this instance and the * <tt>ProtocolProviderService</tt> it depicts. If presence is supported. * * @param presenceStatus the <tt>PresenceStatus</tt> to be selected in this * instance and the <tt>ProtocolProviderService</tt> it depicts */ public void updateStatus(PresenceStatus presenceStatus); }