/* * Created on 13.10.2003 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package se.idega.idegaweb.commune.message.presentation; import java.rmi.RemoteException; import java.text.DateFormat; import java.util.Collection; import javax.ejb.FinderException; import se.idega.idegaweb.commune.school.business.SchoolChoiceBusiness; import se.idega.idegaweb.commune.school.data.SchoolChoice; import com.idega.block.process.message.data.Message; import com.idega.block.school.data.School; import com.idega.business.IBOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; /** * @author Roar * In addition to being a regular MessageBox, AdminMessageBox views messages handled by * the groups the user is member of and shows the school provider the message is sent to, if any. * */ public class AdminMessageBox extends MessageBox { private Collection _groups; /** * @see MessageBox */ Collection getMessages(IWContext iwc, User user, int numberOfEntries, int startingEntry) throws Exception{ return getMessageBusiness(iwc).findMessages(user, _groups, numberOfEntries, startingEntry); } int getNumberOfMessages(IWContext iwc, User user) { try { UserBusiness userBusiness = (UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class); _groups = userBusiness.getUserGroups(user); return getMessageBusiness(iwc).getNumberOfMessages(user, _groups); } catch (Exception e) { return 0; } } /** * @see MessageBox */ void addTableHeader(Table messageTable, int row) { super.addTableHeader(messageTable, row); messageTable.add(getSmallHeader(localize("message.provider", "Provider")), getDateColumn() + 1, row); } /** * @see MessageBox */ void addMessageToTable(IWContext iwc, Table messageTable, Message msg, int row, DateFormat dateFormat, int messageNumber) throws Exception{ super.addMessageToTable(iwc, messageTable, msg, row, dateFormat, messageNumber); SchoolChoice sc = null; try{ sc = getSchoolChoiceBusiness().getSchoolChoice(msg.getNodeID()); } catch (FinderException ex){ //ignore } if (sc != null){ School provider = sc.getChosenSchool(); messageTable.add(provider.getName(), getDateColumn() + 1, row); } } public SchoolChoiceBusiness getSchoolChoiceBusiness() throws RemoteException { return (SchoolChoiceBusiness) IBOLookup.getServiceInstance(getIWApplicationContext(), SchoolChoiceBusiness.class); } /** * @see MessageBox */ int getDeleteColumn(){ return super.getDeleteColumn() + 1; } }