Issue #2751 fixed blocked icon for roster entries

previous refactor broke type check for blocked icon logic
moved blocked icon logic to subclass that handles roster tree labels


Former-commit-id: a94b366e26 [formerly 7f3a2f5e631176426ece6384719f3b1c9b00105a]
Former-commit-id: 3307f5ea5e
This commit is contained in:
Brian Clements 2014-02-17 17:11:36 -06:00
parent 96014c806d
commit 476d0c3257
2 changed files with 34 additions and 6 deletions

View file

@ -36,7 +36,6 @@ import org.jivesoftware.smack.packet.RosterPacket.ItemType;
import com.raytheon.uf.viz.collaboration.comm.identity.info.SiteConfigInformation;
import com.raytheon.uf.viz.collaboration.comm.identity.user.IUser;
import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConnection;
import com.raytheon.uf.viz.collaboration.comm.provider.user.ContactsManager;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
/**
@ -52,6 +51,7 @@ import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
* Jan 27, 2014 2700 bclement added roster entry support
* Feb 13, 2014 2751 bclement made generic for IUsers
* Feb 13, 2014 2751 njensen Extracted getImageName() to allow overrides
* Feb 17, 2014 2751 bclement moved block image logic to roster specific code
*
* </pre>
*
@ -214,11 +214,6 @@ public abstract class AbstractUserLabelProvider<T extends IUser> extends
} else {
key = "contact_disabled";
}
if (user instanceof RosterEntry) {
if (ContactsManager.isBlocked((RosterEntry) user)) {
key = "blocked";
}
}
return key;
}

View file

@ -39,6 +39,7 @@ import org.jivesoftware.smack.packet.Presence;
import com.raytheon.uf.viz.collaboration.comm.identity.IVenueSession;
import com.raytheon.uf.viz.collaboration.comm.identity.info.IVenue;
import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConnection;
import com.raytheon.uf.viz.collaboration.comm.provider.user.ContactsManager;
import com.raytheon.uf.viz.collaboration.comm.provider.user.IDConverter;
import com.raytheon.uf.viz.collaboration.comm.provider.user.SharedGroup;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
@ -60,6 +61,7 @@ import com.raytheon.uf.viz.collaboration.ui.data.SessionGroupContainer;
* Jan 27, 2014 2700 bclement pass roster entries directly to userLabelProvider
* Jan 28, 2014 2698 bclement removed venue info
* Feb 13, 2014 2751 bclement made AbstractUsersLabelProvider generic
* Feb 17, 2014 2751 bclement added block image logic to userLabelProvider
*
* </pre>
*
@ -95,6 +97,37 @@ public class UsersTreeLabelProvider extends ColumnLabelProvider {
}
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.viz.collaboration.ui.AbstractUserLabelProvider#
* getImageName
* (com.raytheon.uf.viz.collaboration.comm.identity.user.IUser)
*/
@Override
protected String getImageName(UserId user) {
return isBlocked(user) ? "blocked" : super.getImageName(user);
}
/**
* @param user
* @return true if we are blocked from seeing updates from user
*/
private boolean isBlocked(UserId user) {
boolean rval = false;
CollaborationConnection conn = CollaborationConnection
.getConnection();
UserId account = conn.getUser();
if (!account.isSameUser(user)) {
ContactsManager cm = conn.getContactsManager();
RosterEntry entry = cm.getRosterEntry(user);
if (ContactsManager.isBlocked(entry)) {
rval = true;
}
}
return rval;
}
};
private List<ILabelProviderListener> listeners;