
private Enumeration GetMembers() throws WTException {

	WorkItem workitem=getWorkItem();
	
	WfActivity wfactivity = (workitem.getSource().getObject() instanceof WfActivity) ? (WfActivity)workitem.getSource().getObject() : null;
	ContainerTeamManaged containerteammanaged = (ContainerTeamManaged)wfactivity.getContainer();
	

	Enumeration enumeration = ((ContainerTeam)containerteammanaged.getContainerTeamReference().getObject()).getMembers().elements();
	ArrayList arraylist = new ArrayList();
	Object obj = null;
	

	while(enumeration.hasMoreElements()) {
		WTPrincipalReference wtprincipalreference =(WTPrincipalReference)enumeration.nextElement();
		WTPrincipal wtprincipal =(WTPrincipal)wtprincipalreference.getObject();
		
		if(wtprincipal instanceof WTUser) {
			WTUser wtuser = (WTUser)wtprincipal;
			arraylist.add(wtuser);
		}
		else {
			explodeGroupToMembers(wtprincipal, arraylist,containerteammanaged);
		}
	}
	
	Collections.sort(arraylist, new Comparator() {
		public int compare(Object obj1, Object obj2) {
			String s = ((WTUser)obj1).getFullName();
			if(s == null)
				s = "";
			String s1 = ((WTUser)obj2).getFullName();
			if(s1 == null)
				s1 = "";
			return s.compareToIgnoreCase(s1);
		}

	});
	Vector vector = new Vector(arraylist);
	return convertEnumToSerializableEnum(vector.elements());
}

private Enumeration convertEnumToSerializableEnum(Enumerationenumeration) throws WTException {
	ObjectVector objectvector = new ObjectVector();
	Object obj;
	
	for(; enumeration.hasMoreElements();objectvector.addElement(obj))
		obj = enumeration.nextElement();

	return new QueryResult(objectvector);
}

public String principalSelector(String s, WTPrincipal wtprincipal,String s1) throws WTException {
	Vector vector = new Vector();
	Vector vector1 = new Vector();

	if(s.equals("wt.org.WTPrincipal") || s.equals("wt.org.WTUser")) {
		WTUser wtuser;
		for(
			SortedEnumeration sortedenumeration = new SortedEnumeration(goodrichGetMembers(), 
			new CollationKeyFactory(WTContext.getContext().getLocale())
		);

		sortedenumeration.hasMoreElements();
		
		vector1.addElement(wtuser.getFullName())) {
			wtuser = (WTUser)sortedenumeration.nextElement();
			vector.addElement(wtuser.getName());
		}
	}
	if(s.equals("wt.org.WTPrincipal") || s.equals("wt.org.WTGroup")) {
		WTGroup wtgroup;
		for(
			SortedEnumeration sortedenumeration1 = new SortedEnumeration(OrganizationServicesMgr.allGroups(), 
			new CollationKeyFactory(WTContext.getContext().getLocale())
		);

		sortedenumeration1.hasMoreElements();
		
		vector1.addElement(wtgroup.getName())) {
			wtgroup = (WTGroup)sortedenumeration1.nextElement();
			vector.addElement(wtgroup.getName());
		}

	}
	int i = wtprincipal != null ? vector.indexOf(wtprincipal.getName()) + 1 : 0;
	return HtmlUtil.createSelectHTML(s1, null, vector, vector1,true, i);
}
