/* Date: July 24, 2009
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.screen.PluginScreenJavaTemplateGen 3.3.0-testing
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package plugins.keggplugin;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.util.Entity;
import org.molgenis.util.Tuple;
import plugins.kegg.KEGGGene;
public class KeggToolsPlugin extends PluginModel<Entity>
{
private static final long serialVersionUID = 4365180891730331426L;
public KeggToolsPlugin(String name, ScreenController<?> parent)
{
super(name, parent);
}
public String sourceOrganism;
public String targetOrganism;
public String input;
public String outputSimple = "";
public String outputAdvanced = "";
public String getSourceOrganism()
{
return sourceOrganism;
}
public void setSourceOrganism(String sourceOrganism)
{
this.sourceOrganism = sourceOrganism;
}
public String getTargetOrganism()
{
return targetOrganism;
}
public void setTargetOrganism(String targetOrganism)
{
this.targetOrganism = targetOrganism;
}
public String getInput()
{
return input;
}
public void setInput(String input)
{
this.input = input;
}
public String getOutputSimple()
{
return outputSimple;
}
public void setOutputSimple(String outputSimple)
{
this.outputSimple = outputSimple;
}
public String getOutputAdvanced()
{
return outputAdvanced;
}
public void setOutputAdvanced(String outputAdvanced)
{
this.outputAdvanced = outputAdvanced;
}
@Override
public String getViewName()
{
return "plugins_keggplugin_KeggToolsPlugin";
}
@Override
public String getViewTemplate()
{
return "plugins/keggplugin/KeggToolsPlugin.ftl";
}
@Override
public void handleRequest(Database db, Tuple request)
{
String sourceOrganism = request.getString("sourceOrganism");
String targetOrganism = request.getString("targetOrganism");
this.setSourceOrganism(sourceOrganism);
this.setTargetOrganism(targetOrganism);
this.setInput(input);
String action = request.getString("__action");
if (action.equals("example"))
{
this.setSourceOrganism("sce");
this.setTargetOrganism("hsa");
this.setInput("PMR1\nIME2\nCCC1");
}
if (action.equals("doAnnotation"))
{
String outputSimple = "source" + "\t" + "entry" + "\n";
String outputAdvanced = "source" + "\t" + KEGGGene.toStringMediumHeader("\t");
String input = request.getString("inputIdList");
if (input == null)
{
// shoudl throw/display exception
return;
}
input = input.replace(" ", "");
String[] ids = input.split("\\r?\\n");
for (String s : ids)
{
String id = s.replace("\r", "");
try
{
// KEGGGene sourceGene =
// KEGGTools.getKeggGene(sourceOrganism + ":" + id);
// outputSimple += id + "\t" + sourceGene.getEntry() + "\n";
// outputAdvanced += id + "\t" +
// sourceGene.toStringMedium("\t");
}
catch (Exception e)
{
e.printStackTrace();
}
}
this.setOutputSimple(outputSimple);
this.setOutputAdvanced(outputAdvanced);
}
if (action.equals("doOrthology"))
{
String outputSimple = "source" + "\t" + "entry" + "\n";
String outputAdvanced = "source" + "\t" + KEGGGene.toStringMediumHeader("\t");
String input = request.getString("inputIdList");
if (input == null)
{
// shoudl throw/display exception
return;
}
input = input.replace(" ", "");
String[] ids = input.split("\\r?\\n");
for (String s : ids)
{
String id = s.replace("\r", "");
try
{
// KEGGGene sourceGene =
// KEGGTools.getKeggGene(sourceOrganism + ":" + id);
// KEGGOrthologue orthology =
// KEGGTools.getClosestOrthologue(sourceGene.getEntry(),
// targetOrganism);
// KEGGGene targetGene =
// KEGGTools.getKeggGene(orthology.getTargetEntry());
// outputSimple += id + "\t" + orthology.getTargetEntry() +
// "\n";
// outputAdvanced += id + "\t" +
// targetGene.toStringMedium("\t");
}
catch (Exception e)
{
e.printStackTrace();
}
}
this.setOutputSimple(outputSimple);
this.setOutputAdvanced(outputAdvanced);
}
}
@Override
public void reload(Database db)
{
// try
// {
// Database db = this.getDatabase();
// Query q = db.query(Experiment.class);
// q.like("name", "test");
// List<Experiment> recentExperiments = q.find();
//
// //do something
// }
// catch(Exception e)
// {
// //...
// }
}
}