package org.societies.webapp.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import javax.validation.Valid;
import org.jfree.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.societies.api.comm.xmpp.interfaces.ICommManager;
import org.societies.api.css.FriendFilter;
import org.societies.api.internal.css.ICSSInternalManager;
import org.societies.api.internal.servicelifecycle.IServiceDiscovery;
import org.societies.api.schema.cssmanagement.CssInterfaceResult;
import org.societies.api.schema.cssmanagement.CssNode;
import org.societies.api.schema.cssmanagement.CssRecord;
import org.societies.api.schema.servicelifecycle.model.Service;
import org.societies.webapp.models.CssNodeForm;
import org.societies.webapp.models.Friendfilterform;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class FriendfilterController {
/**
* OSGI service get auto injected
*/
private static Logger LOG = LoggerFactory.getLogger(CssSuggestedFriendsController.class);
@Autowired
private ICSSInternalManager cssLocalManager;
@Autowired
private ICommManager commManager;
@Autowired
private IServiceDiscovery sdService;
private CssSuggestedFriendsController friendcontroller;
public CssSuggestedFriendsController getfriendcontroller(){
return friendcontroller;
}
public void setfriendcontroller(){
this.friendcontroller = friendcontroller;
}
public IServiceDiscovery getSDService() {
return sdService;
}
public void getSDService(IServiceDiscovery sdService) {
this.sdService = sdService;
}
public ICSSInternalManager getCssLocalManager() {
return cssLocalManager;
}
public void setCssLocalManager(ICSSInternalManager cssLocalManager) {
this.cssLocalManager = cssLocalManager;
}
@RequestMapping(value = "/friendfilter1.html", method = RequestMethod.GET)
public ModelAndView cssManager() {
//CREATE A HASHMAP OF ALL OBJECTS REQUIRED TO PROCESS THIS PAGE
Map<String, Object> model = new HashMap<String, Object>();
model.put("message", "Please input values and submit");
//ADD THE BEAN THAT CONTAINS ALL THE FORM DATA FOR THIS PAGE
Friendfilterform ffForm = new Friendfilterform();
model.put("ffForm", ffForm);
//ADD ALL THE SELECT BOX VALUES USED ON THE FORM
Map<String, String> filters = new LinkedHashMap<String, String>();
filters.put("facebook", "show facebook friends");
filters.put("twitter", "show twitter friends");
filters.put("linkedin", "show linkedin friends");
filters.put("foursquare", "show foursquare friends");
filters.put("googleplus", "show googleplus friends");
filters.put("CISMember", "show CIS Members friends");
filters.put("all", "show all friends");
model.put("filters", filters);
model.put("friendsfilterresult", "friends filter Mgmt Result :");
return new ModelAndView("friendfilter1", model);
}
@SuppressWarnings("unchecked")
@RequestMapping(value = "/friendfilter1.html", method = RequestMethod.POST)
public ModelAndView cssManager(@Valid Friendfilterform ffForm,
BindingResult result, Map model) {
if (result.hasErrors()) {
model.put("result", "friends filter manager form error");
return new ModelAndView("friendfilter1", model);
}
if (getCssLocalManager() == null) {
model.put("errormsg", "CSS Manager reference not available");
return new ModelAndView("error", model);
}
int facebook = 0x0000000001;
int twitter = 0x0000000010;
int linkedin = 0x0000000100;
int foursquare = 0x0000001000;
int googleplus = 0x0000010000;
int all = 0x0000011111;
int CISMemeber = 0x0000100000;
int filterType = 0;
FriendFilter filter = new FriendFilter();
filter.setFilterFlag(facebook);
String filters = ffForm.getfilters();
String res = null;
try {
filter = new FriendFilter();
if (filters.equalsIgnoreCase("facebook")) {
filterType = facebook;
filter.setFilterFlag(facebook);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("twitter")) {
filterType = twitter;
filter.setFilterFlag(twitter);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("linkedin")) {
filterType = linkedin;
filter.setFilterFlag(linkedin);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("foursquare")) {
filterType = foursquare;
filter.setFilterFlag(foursquare);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("googleplus")) {
filterType = googleplus;
filter.setFilterFlag(googleplus);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("all")) {
filterType = all;
filter.setFilterFlag(all);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
if (filters.equalsIgnoreCase("CISMember")) {
filterType = CISMemeber;
filter.setFilterFlag(CISMemeber);
LOG.info("setting friend filter with filterflag as : " +filter.getFilterFlag());
cssLocalManager.setFriendfilter(filter);
}
res="friends filter Result ";
model.put("filters", filters);
model.put("result", res);
}
catch (Exception ex)
{
res = "Oops!!!! <br/>";
};
return new ModelAndView("friendsfilterresult", model);
}
}