package edu.asu.spring.quadriga.web.sites;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import edu.asu.spring.quadriga.domain.network.INetwork;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.service.network.IJsonCreator;
import edu.asu.spring.quadriga.service.network.INetworkManager;
import edu.asu.spring.quadriga.service.network.INetworkTransformationManager;
import edu.asu.spring.quadriga.service.network.domain.ITransformedNetwork;
@Controller
public class PublicNetworkController {
@Autowired
private INetworkManager networkManager;
@Autowired
private INetworkTransformationManager transformationManager;
@Autowired
private IJsonCreator jsonCreator;
/**
* This method loads all the public networks and navigates to the public
* networks page to display the graph
*
* @param model
* @return
* @throws QuadrigaStorageException
*/
@RequestMapping(value = "sites/network", method = RequestMethod.GET)
public String showPublicNetworks(Model model) throws QuadrigaStorageException {
List<INetwork> networkList = networkManager.getApprovedNetworkList();
ITransformedNetwork transformedNetwork = transformationManager.getTransformedApprovedNetworks(networkList);
String json = null;
if (transformedNetwork != null) {
json = jsonCreator.getJson(transformedNetwork.getNodes(), transformedNetwork.getLinks());
}
if (transformedNetwork == null || transformedNetwork.getNodes().size() == 0) {
model.addAttribute("isNetworkEmpty", true);
}
model.addAttribute("jsonstring", json);
return "sites/network";
}
}