package org.t4f.msc.managedbeans;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ComponentSystemEvent;
import org.t4f.msc.model.Destination;
import org.t4f.msc.model.Message;
import org.t4f.msc.model.Subscriber;
import org.t4f.msc.model.SubscribersGroup;
import org.t4f.msc.services.MessageServices;
import org.t4f.msc.services.SubscriberServices;
import org.t4f.msc.services.SubscribersGroupServices;
@ManagedBean
@ViewScoped
public class SendMessage extends ManagedBeanCommon implements Serializable{
private static final long serialVersionUID = 5141235849033388971L;
private final static Logger LOGGER = Logger.getLogger("POCSAG-MSC");
private transient List<SubscribersGroup> subscribersGroupList;
private transient List<Subscriber> subscriberList;
private Subscriber subscriberFilter = new Subscriber();
private Message message = new Message();
public List<SubscribersGroup> getSubscribersGroupList() {
return subscribersGroupList;
}
public void setSubscribersGroupList(List<SubscribersGroup> subscribersGroupList) {
this.subscribersGroupList = subscribersGroupList;
}
public List<Subscriber> getSubscriberList() {
return subscriberList;
}
public void setSubscriberList(List<Subscriber> subscriberList) {
this.subscriberList = subscriberList;
}
public Subscriber getSubscriberFilter() {
return subscriberFilter;
}
public void setSubscriberFilter(Subscriber subscriberFilter) {
this.subscriberFilter = subscriberFilter;
}
public Message getMessage() {
return message;
}
public void setMessage(Message message) {
this.message = message;
}
public String loadSubscribersGroups() {
SubscribersGroupServices subscribersGroupServices = new SubscribersGroupServices();
subscribersGroupList = subscribersGroupServices.findAll();
return null;
}
public String loadSubscribers() {
SubscriberServices subscriberServices = new SubscriberServices();
subscriberList = subscriberServices.find(subscriberFilter);
return null;
}
public String addSubscribersGroupToDestinationList() {
SubscribersGroupServices subscribersGroupServices = new SubscribersGroupServices();
int id = Integer.parseInt(getParameter("id"));
SubscribersGroup group = subscribersGroupServices.read(id);
if (!message.getDestinationList().contains(group))
message.getDestinationList().add(group);
return null;
}
public String addSubscriberToDestinationList() {
SubscriberServices subscriberServices = new SubscriberServices();
int id = Integer.parseInt(getParameter("id"));
Subscriber subscriber = subscriberServices.read(id);
if (!message.getDestinationList().contains(subscriber))
message.getDestinationList().add(subscriber);
return null;
}
public String deleteDestination() {
SubscribersGroupServices subscribersGroupServices = new SubscribersGroupServices();
SubscriberServices subscriberServices = new SubscriberServices();
Destination destination;
int id = Integer.parseInt(getParameter("id"));
String type = getParameter("type");
if (type.equals("Group"))
destination = subscribersGroupServices.read(id);
else
destination = subscriberServices.read(id);
message.getDestinationList().remove(destination);
return null;
}
public String send() {
MessageServices messageServices = new MessageServices();
messageServices.sendMessage(message);
addMessage("message", "Message queued to send.");
return null;
}
public void load(ComponentSystemEvent event) {
String type = getParameter("preload");
if (type == null) {
return;
}
if (type.equals("subscriber")) {
addSubscriberToDestinationList();
} else if (type.equals("group")) {
addSubscribersGroupToDestinationList();
}
}
}