use of uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus in project goci by EBISPOT.
the class DefaultPussycatManager method unbindResources.
@Override
public boolean unbindResources(HttpSession session) {
boolean sessionUnbound = false;
boolean nexusUnbound = false;
if (sessionMap.containsKey(session.getId())) {
PussycatSession ps = sessionMap.remove(session.getId());
getLog().debug("PussycatSession '" + ps.getSessionID() + "' is no longer bound to " + "HttpSession '" + session.getId() + "'");
sessionUnbound = true;
} else {
getLog().debug("Cannot unbind PussycatSession for HttpSession '" + session.getId() + "' " + "- no linked PussycatSession resource");
}
if (nexusMap.containsKey(session.getId())) {
RenderletNexus rn = nexusMap.remove(session.getId());
getLog().debug("RenderletNexus '" + rn + "' is no longer bound to " + "HttpSession '" + session.getId() + "'");
nexusUnbound = true;
} else {
getLog().debug("Cannot unbind RenderletNexus for HttpSession '" + session.getId() + "' " + "- no linked RenderletNexus resource");
}
return sessionUnbound && nexusUnbound;
}
use of uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus in project goci by EBISPOT.
the class PussycatGOCIController method getRenderletNexus.
protected RenderletNexus getRenderletNexus(HttpSession session) throws PussycatSessionNotReadyException {
getLog().debug("Attempting to obtain RenderletNexus session for HttpSession '" + session.getId() + "'");
RenderletNexus renderletNexus;
if (getPussycatManager().hasAvailableRenderletNexus(session)) {
getLog().debug("RenderletNexus available for HttpSession '" + session.getId() + "'");
renderletNexus = getPussycatManager().getRenderletNexus(session);
} else {
renderletNexus = getPussycatManager().createRenderletNexus(getPussycatManager().getPussycatSession(session));
getPussycatManager().bindRenderletNexus(session, renderletNexus);
}
return renderletNexus;
}
use of uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus in project goci by EBISPOT.
the class PussycatGOCIController method saveAssociationsFile.
public void saveAssociationsFile(String pvalueMin, String pvalueMax, String dateMin, String dateMax, String outFile) throws PussycatSessionNotReadyException, NoRenderableDataException {
File outputFile = new File(outFile);
getLog().debug("Received a new rendering request - " + "putting together the query from date '" + dateMin + "' to '" + dateMax + "' and from pvalue '" + pvalueMin + "' to '" + pvalueMax + "'");
RenderletNexus renderletNexus = getPussycatManager().createRenderletNexus(pussycatSession);
getLog().debug("Created new pussycat session, id '" + pussycatSession.getSessionID() + "'");
if (pvalueMin == "") {
pvalueMin = null;
}
if (pvalueMax == "") {
pvalueMax = null;
}
if (dateMin == "") {
dateMin = null;
}
if (dateMax == "") {
dateMax = null;
}
Filter pvalueFilter = null;
Filter dateFilter = null;
if (pvalueMin != null || pvalueMax != null) {
pvalueFilter = setPvalueFilter(pvalueMin, pvalueMax);
renderletNexus.setRenderingContext(pvalueFilter);
}
if (dateMin != null || dateMax != null) {
dateFilter = setDateFilter(dateMin, dateMax);
renderletNexus.setRenderingContext(dateFilter);
}
String svg = null;
if (dateFilter == null && pvalueFilter == null) {
svg = pussycatSession.performRendering(renderletNexus);
} else if (dateFilter == null && pvalueFilter != null) {
svg = pussycatSession.performRendering(renderletNexus, pvalueFilter);
} else if (pvalueFilter == null && dateFilter != null) {
svg = pussycatSession.performRendering(renderletNexus, dateFilter);
} else {
svg = pussycatSession.performRendering(renderletNexus, dateFilter, pvalueFilter);
}
log.debug("done rendering, exporting file");
try (Writer writer = new BufferedWriter(new FileWriter(outputFile))) {
writer.write(svg);
} catch (IOException e) {
e.printStackTrace();
}
log.debug("done exporting file");
}
Aggregations