/*******************************************************************************
* Copyright 2014 Virginia Polytechnic Institute and State University
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package edu.vt.vbi.patric.portlets;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.UnavailableException;
import edu.vt.vbi.patric.common.SiteHelper;
import edu.vt.vbi.patric.dao.DBSummary;
import edu.vt.vbi.patric.dao.ResultType;
public class PhylogeneticTree extends GenericPortlet {
/*
* (non-Javadoc)
*
* @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
*/
@Override
public void init() throws PortletException {
super.init();
// update genome-id mapping cache
try {
HashMap<String, String> key = new HashMap<String, String>();
key.put("ncbi_taxon_id", "2");
key.put("data_source", "");
DBSummary conn = new DBSummary();
ArrayList<ResultType> list = conn.getGenomeListByTaxon(key, null, 0, -1);
StringBuilder sb = new StringBuilder();
sb.append("var genomeMap = new Array();\n");
for (int i = 0; i < list.size(); i++) {
sb.append("genomeMap[\"" + list.get(i).get("genome_name").replaceAll("[\\s\\(\\)\\:\\[\\],]+", "_") + "\"] = "
+ list.get(i).get("genome_info_id") + ";\n");
}
PrintWriter out = new PrintWriter(new FileWriter(getPortletContext().getRealPath("/js/genomeMaps.js")));
out.println(sb.toString());
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException, UnavailableException {
response.setContentType("text/html");
new SiteHelper().setHtmlMetaElements(request, response, "Phylogeny");
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/index.jsp");
prd.include(request, response);
}
}