src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java
/**
     * Called by MetaContactListServiceImpl after a contact has changed its
     * status, so that ordering in the parent group is updated. The method also
     * elects the most connected contact as default contact.
     *
     * @return the new index at which the contact was added.
     */
Called by MetaContactListServiceImpl after a contact has changed its
status, so that ordering in the parent group is updated. The method also
elects the most connected contact as default contact.

@return the new index at which the contact was added.
Called by MetaContactListServiceImpl after a contact has changed its status so that ordering in the parent group is updated . The method also elects the most connected contact as default contact . @return the new index at which the contact was added .
int reevalContact()
    {
        synchronized (getParentGroupModLock())
        {
            if (parentGroup != null)
            {
                parentGroup.lightRemoveMetaContact(this);
            }
            this.contactsOnline = 0;
            int maxContactStatus = 0;
            for (Contact contact : protoContacts)
            {
                int contactStatus = contact.getPresenceStatus()
                        .getStatus();
                if(maxContactStatus < contactStatus)
                {
                    maxContactStatus = contactStatus;
                    this.defaultContact = contact;
                }
                if (contact.getPresenceStatus().isOnline())
                    contactsOnline++;
            }
            if (parentGroup != null)
            {
                return parentGroup.lightAddMetaContact(this);
            }
        }
        return -1;
    }
int reevalContact ( ) { synchronized ( getParentGroupModLock ( ) ) { if ( parentGroup != null ) { parentGroup . lightRemoveMetaContact ( this ) ; } this . contactsOnline = 0 ; int maxContactStatus = 0 ; for ( Contact contact : protoContacts ) { int contactStatus = contact . getPresenceStatus ( ) . getStatus ( ) ; if ( maxContactStatus < contactStatus ) { maxContactStatus = contactStatus ; this . defaultContact = contact ; } if ( contact . getPresenceStatus ( ) . isOnline ( ) ) contactsOnline ++ ; } if ( parentGroup != null ) { return parentGroup . lightAddMetaContact ( this ) ; } } return - 1 ; }
Called by MetaContactListServiceImpl after a contact has changed its
 status, so that ordering in the parent group is updated.
Called by MetaContactListServiceImpl after a contact has changed its status so that ordering in the parent group is updated .
//first lightremove or otherwise we won't be able to get hold of the //contact //now read it and the contact would be automatically placed //properly by the containing group