/**
*
*/
package net.agef.jobexchange.pages.administration;
import java.util.Collection;
import java.util.List;
import net.agef.jobexchange.application.JobWorker;
import net.agef.jobexchange.application.LoginUserWorker;
import net.agef.jobexchange.application.UserWorker;
import net.agef.jobexchange.domain.JobImpl;
import net.agef.jobexchange.domain.LoginUser;
import net.agef.jobexchange.domain.OrganisationRoleData;
import net.agef.jobexchange.domain.User;
import net.agef.jobexchange.exceptions.LoginUserNotFoundException;
import net.agef.jobexchange.exceptions.ObjectNotDeletedException;
import net.agef.jobexchange.exceptions.PassedAttributeIsNullException;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Grid;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.BeanModelSource;
import org.slf4j.Logger;
/**
* @author AGEF
*
*/
@SuppressWarnings("unused")
public class ManageOrganisationsPage {
@Inject
private Logger logger;
@Inject
private UserWorker uw;
@Inject
private JobWorker jw;
@Inject
private LoginUserWorker luw;
@Inject
private BeanModelSource beanModelSource;
@Inject
private Messages messages;
@Persist("Flash")
private LoginUser loginUser;
@Component
@Property
private Grid organisationUserGrid;
@Persist("Flash")
@Property
private OrganisationRoleData organisationUserData;
@SuppressWarnings("unchecked")
private final BeanModel organisationUserGridModel;
{
organisationUserGridModel = beanModelSource.createDisplayModel(OrganisationRoleData.class, messages);
organisationUserGridModel.include("organisationName");
organisationUserGridModel.add("industrySector", null);
organisationUserGridModel.add("jobs", null);
organisationUserGridModel.add("jobsOnline", null);
organisationUserGridModel.add("modify", null);
organisationUserGridModel.add("delete", null);
}
public List<OrganisationRoleData> getOrganisationUserDataList() {
if(luw.isLoggedInUser()){
try {
this.loginUser = luw.getLoggedInUser();
} catch (LoginUserNotFoundException e) {
logger.error("ManageOrgForm -- Login User Name could not be found in DB.");
luw.logoutUser();
}
}
List<OrganisationRoleData> userList = null;
try {
userList = uw.getOrganisationUserDataByLoginUser(this.loginUser);
} catch (PassedAttributeIsNullException e) {
e.printStackTrace();
logger.error("ManageOrgForm -- Login User Name could not be found in DB.");
luw.logoutUser();
}
return userList;
}
Object onActionFromDelete(long orgUserId)
{
try {
uw.deleteUser(orgUserId);
} catch (ObjectNotDeletedException e) {
e.printStackTrace();
} catch (PassedAttributeIsNullException e) {
e.printStackTrace();
}
return ManageOrganisationsPage.class;
}
Object onActionFromModify(long orgUserId)
{
return ManageOrganisationsPage.class;
}
/**
* @return the _model
*/
@SuppressWarnings("unchecked")
public BeanModel getOrganisationUserGridModel() {
return organisationUserGridModel;
}
public int getOrganisationUserJobOffers(){
return organisationUserData.getOwner().getMyJobOffers().size();
}
public int getOrganisationUserOnlineJobOffers(){
return jw.getOnlineJobOffersByUser(organisationUserData.getOwner().getId());
}
}