/* Date: February 2, 2010
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.2-testing
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package org.molgenis.omicsconnect.plugins.ontocat;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.util.Entity;
import org.molgenis.util.Tuple;
import uk.ac.ebi.ontocat.Ontology;
import uk.ac.ebi.ontocat.OntologyService;
import uk.ac.ebi.ontocat.OntologyService.SearchOptions;
import uk.ac.ebi.ontocat.OntologyServiceException;
import uk.ac.ebi.ontocat.OntologyTerm;
import uk.ac.ebi.ontocat.bioportal.BioportalOntologyService;
/**
* Shows table of experiment information for WormQTL
*/
public class OntoCat extends PluginModel<Entity>
{
private static final long serialVersionUID = 1L;
private OntologyService os;
private OntoCatModel model = new OntoCatModel();
public OntoCatModel getMyModel()
{
return model;
}
public OntoCat(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "OntoCatTest";
}
@Override
public String getViewTemplate()
{
return "org/molgenis/omicsconnect/plugins/OntoCat/OntoCat.ftl";
}
@SuppressWarnings("unchecked")
public void handleRequest(Database db, Tuple request)
{
if (request.getString("__action") != null)
{
String action = request.getString("__action");
try
{
if (action.equals("query"))
{
this.setMessages(new ScreenMessage("performed lookup", true));
// String select_ont = request.getString("ontology");
// <OntologyTerm> results = os.getRootTerms(select_ont);
// model.setResults(results);
OntologyService os = new BioportalOntologyService();
List<Ontology> results = os.getOntologies();
JSONArray jsonarray = new JSONArray();
// outer.addAll(results);
for (Ontology o : results)
{
JSONObject inner = new JSONObject();
// System.out.println(o.getDescription());
// System.out.println(o.getOntologyAccession() + " " +
// o.getLabel());
String acc = o.getOntologyAccession();
String label = o.getLabel();
// inner.put(acc, label);
inner.put("value", acc);
inner.put("label", label);
jsonarray.put(inner);
}
model.setJsonarray(jsonarray);
String jsonString = jsonarray.toString();
model.setJsonstring(jsonString);
model.setOntologies(results);
}
}
catch (Exception e)
{
e.printStackTrace();
this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false));
}
}
if (request.getString("__action") != null)
{
String action = request.getString("__action");
OntologyService os = new BioportalOntologyService();
if (action.equals("ontoQuery"))
{
String ontologySubmitted = request.getString("Ontology");
List<OntologyTerm> ontoresults = null;
try
{
ontoresults = os.searchOntology(ontologySubmitted, "diabetes", SearchOptions.INCLUDE_PROPERTIES);
}
catch (OntologyServiceException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
model.setOntoresults(ontoresults);
for (OntologyTerm o : ontoresults)
{
// System.out.println(o.);
}
}
}
}
@Override
public void reload(Database db)
{
// if (model.getOntologies() == null) {
// this.os = new BioportalOntologyService();
//
// // List all available ontologies
// try {
// // for (Ontology o : os.getOntologies()) {
// // System.out.println(o.toString());
//
// // }
//
// model.setOntologies(os.getOntologies());
//
// this.setMessages(new ScreenMessage("Loaded ontologies", true));
//
// } catch (OntologyServiceException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// this.setMessages(new ScreenMessage(e.getMessage() != null ? e
// .getMessage() : "null", false));
//
// }
//
// }
}
}