001: package org.theospi.portfolio.presentation.tool;
002:
003: import org.sakaiproject.metaobj.shared.model.Agent;
004: import org.sakaiproject.user.api.UserNotDefinedException;
005: import org.sakaiproject.user.cover.UserDirectoryService;
006: import org.theospi.portfolio.security.tool.AudienceTool;
007:
008: import java.util.List;
009:
010: /**
011: * Created by IntelliJ IDEA.
012: * User: John Ellis
013: * Date: Nov 16, 2005
014: * Time: 3:56:31 PM
015: * To change this template use File | Settings | File Templates.
016: */
017: public class DecoratedViewer {
018:
019: private Agent base;
020: private AudienceTool parent;
021: private boolean selected = false;
022:
023: public DecoratedViewer(Agent base) {
024: this .base = base;
025: }
026:
027: public String getDisplayName() {
028: //String baseName = base.getEid().getValue();
029: if (isRole()) {
030: return base.getDisplayName() + (" (Role)");
031: } else {
032: if (base.getDisplayName() != null
033: && base.getDisplayName().length() > 0) {
034: return base.getDisplayName();
035: } else {
036: try {
037: return UserDirectoryService.getUserByEid(
038: base.getEid().toString()).getEmail();
039: }
040:
041: catch (UserNotDefinedException e) {
042: return "";
043: }
044: }
045:
046: }
047: }
048:
049: public boolean isRole() {
050: return base.isRole();
051: }
052:
053: public String getEmail() {
054: if (base.isRole()) {
055: return "ROLE" + "." + base.getDisplayName();
056: } else {
057: try {
058: return UserDirectoryService.getUserByEid(
059: base.getEid().toString()).getEmail();
060: }
061:
062: catch (UserNotDefinedException e) {
063: return "";
064: }
065: }
066:
067: }
068:
069: public boolean isSelected() {
070: return selected;
071: }
072:
073: public void setSelected(boolean selected) {
074: this .selected = selected;
075: }
076:
077: public Agent getBase() {
078: return base;
079: }
080:
081: public void setBase(Agent base) {
082: this .base = base;
083: }
084:
085: public AudienceTool getParent() {
086: return parent;
087: }
088:
089: public void setParent(AudienceTool parent) {
090: this .parent = parent;
091: }
092:
093: public Agent getRole() {
094: List roles = getBase().getWorksiteRoles(
095: getParent().getSite().getId());
096: if (roles.size() > 0) {
097: return (Agent) roles.get(0);
098: }
099: return null;
100: }
101:
102: public boolean equals(Object o) {
103: if (this == o) {
104: return true;
105: }
106: if (!(o instanceof DecoratedViewer)) {
107: return false;
108: }
109:
110: final DecoratedViewer decoratedMember = (DecoratedViewer) o;
111:
112: if (!base.equals(decoratedMember.base)) {
113: return false;
114: }
115:
116: return true;
117: }
118:
119: public int hashCode() {
120: return base.hashCode();
121: }
122: }
|