Search in sources :

Example 1 with RenderletNexus

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;
}
Also used : RenderletNexus(uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus) PussycatSession(uk.ac.ebi.spot.goci.pussycat.session.PussycatSession)

Example 2 with RenderletNexus

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;
}
Also used : RenderletNexus(uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus)

Example 3 with 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");
}
Also used : RenderletNexus(uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus) Filter(uk.ac.ebi.spot.goci.pussycat.lang.Filter)

Aggregations

RenderletNexus (uk.ac.ebi.spot.goci.pussycat.renderlet.RenderletNexus)3 Filter (uk.ac.ebi.spot.goci.pussycat.lang.Filter)1 PussycatSession (uk.ac.ebi.spot.goci.pussycat.session.PussycatSession)1