/* 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.matrix.ui.manager; import java.io.OutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; 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.matrix.TargetFeatureMemoryMatrix; import org.molgenis.pheno.ObservableFeature; import org.molgenis.pheno.ObservationTarget; import org.molgenis.util.Tuple; /** * MatrixManager deprecated. Use org.molgenis.matrix.component.MatrixRenderer * screen component instead. * * @author jvelde, erikroos * */ @Deprecated public class MatrixManager extends PluginModel { private MatrixManagerModel model = new MatrixManagerModel(); public MatrixManagerModel getMyModel() { return model; } public MatrixManager(String name, ScreenController<?> parent) { super(name, parent); } // moved overlib to molgenis core // @Override // public String getCustomHtmlHeaders() // { // return // "<script src=\"res/scripts/overlib.js\" language=\"javascript\"></script>"; // // } @Override public String getViewName() { return "MatrixManager"; } @Override public String getViewTemplate() { return "org/molgenis/matrix/ui/manager/MatrixManager.ftl"; } public Show handleRequest(Database db, Tuple request, OutputStream out) { if (request.getString("__action") != null) { System.out.println("*** handleRequest __action: " + request.getString("__action")); try { if (this.model.isUploadMode()) { // if(request.getString("inputTextArea") != null){ // DON'T DO THIS: BAD FOR LARGE UPLOADS -> // this.getModel().setUploadTextAreaContent(request.getString("inputTextArea")); // } // Importer.performImport(request, // this.model.getSelectedData(), db); // set to null to force backend check/creation of browser // instance // this.model.setSelectedData(null); } else { int stepSize = request.getInt("stepSize") < 1 ? 1 : request.getInt("stepSize"); int width = request.getInt("width") < 1 ? 1 : request.getInt("width"); int height = request.getInt("height") < 1 ? 1 : request.getInt("height"); this.model.getBrowser().getModel().setStepSize(stepSize); this.model.getBrowser().getModel().setWidth(width); this.model.getBrowser().getModel().setHeight(height); RequestHandler.handle(this.model, request, new PrintWriter(out)); } this.setMessages(); } catch (Exception e) { e.printStackTrace(); this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false)); } } return Show.SHOW_MAIN; } public static Browser createBrowserInstance(Database db) throws Exception { TargetFeatureMemoryMatrix tfmm = new TargetFeatureMemoryMatrix(db); return new Browser(tfmm); } private void createOverLibText(Database db) throws Exception { // System.out.println("*** createOverLibText"); List<String> rowNames = new ArrayList<String>(); List<ObservationTarget> tmpTargetList = this.model.getBrowser().getModel().getSubMatrix().getRowNames(); for (ObservationTarget tmpTarget : tmpTargetList) { rowNames.add(tmpTarget.getName()); } List<String> colNames = new ArrayList<String>(); List<ObservableFeature> tmpFeatureList = this.model.getBrowser().getModel().getSubMatrix().getColNames(); for (ObservableFeature tmpFeature : tmpFeatureList) { colNames.add(tmpFeature.getName()); } this.model.setOverlibText(OverlibText.getOverlibText(db, rowNames, colNames)); } private void createHeaders() { this.model.setColHeader((this.model.getBrowser().getModel().getColStart() + 1) + "-" + this.model.getBrowser().getModel().getColStop() + " of " + this.model.getBrowser().getModel().getColMax()); this.model.setRowHeader((this.model.getBrowser().getModel().getRowStart() + 1) + "-" + this.model.getBrowser().getModel().getRowStop() + " of " + this.model.getBrowser().getModel().getRowMax()); } @Override public void reload(Database db) { // TODO: create refresh button // TODO: review this 'core' logic carefully :) if (this.model.getBrowser() == null) { try { logger.info("*** creating browser instance"); Browser br = createBrowserInstance(db); this.model.setBrowser(br); createOverLibText(db); } catch (Exception e) { e.printStackTrace(); this.setMessages(new ScreenMessage(e.getMessage() != null ? e.getMessage() : "null", false)); this.model.setBrowser(null); } } // Always create headers, so they remain up-to-date after paging etc. createHeaders(); } @Override public void handleRequest(Database db, Tuple request) { handleRequest(db, request, null); } }