/*
* This file is part of ADDIS (Aggregate Data Drug Information System).
* ADDIS is distributed from http://drugis.org/.
* Copyright © 2009 Gert van Valkenhoef, Tommi Tervonen.
* Copyright © 2010 Gert van Valkenhoef, Tommi Tervonen, Tijs Zwinkels,
* Maarten Jacobs, Hanno Koeslag, Florin Schimbinschi, Ahmad Kamal, Daniel
* Reid.
* Copyright © 2011 Gert van Valkenhoef, Ahmad Kamal, Daniel Reid, Florin
* Schimbinschi.
* Copyright © 2012 Gert van Valkenhoef, Daniel Reid, Joël Kuiper, Wouter
* Reckman.
* Copyright © 2013 Gert van Valkenhoef, Joël Kuiper.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.drugis.addis.gui.util;
import static org.drugis.addis.presentation.BRATTableModel.COLUMN_FOREST;
import static org.junit.Assert.assertEquals;
import java.awt.Color;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.drugis.addis.ExampleData;
import org.drugis.addis.entities.Arm;
import org.drugis.addis.entities.OutcomeMeasure;
import org.drugis.addis.entities.analysis.BenefitRiskAnalysis.AnalysisType;
import org.drugis.addis.entities.analysis.StudyBenefitRiskAnalysis;
import org.drugis.addis.gui.renderer.BRATForestCellRenderer.ForestPlotTableCell;
import org.drugis.addis.presentation.BRATTableModel;
import org.drugis.addis.presentation.BRATTableModel.BRATForest;
import org.drugis.common.gui.table.TableCopyHandler;
import org.junit.Before;
import org.junit.Test;
import com.jgoodies.binding.list.ObservableList;
public class TableCopyHandlerTest {
private BRATTableModel<Arm, StudyBenefitRiskAnalysis> d_btmStudy;
private StudyBenefitRiskAnalysis d_sba;
private Arm d_subject;
@Before
public void setUp() {
List<OutcomeMeasure> criteria = new ArrayList<OutcomeMeasure>();
criteria.add(ExampleData.buildEndpointHamd());
criteria.add(ExampleData.buildEndpointCgi());
criteria.add(ExampleData.buildAdverseEventConvulsion());
ObservableList<Arm> arms = ExampleData.buildStudyChouinard().getArms();
d_sba = new StudyBenefitRiskAnalysis("Test SBA", ExampleData.buildIndicationDepression(),
ExampleData.buildStudyChouinard(), criteria, arms, AnalysisType.SMAA);
d_subject = arms.get(1);
d_btmStudy = new BRATTableModel<Arm, StudyBenefitRiskAnalysis>(d_sba, d_subject);
}
@Test
public void testCopyForestAsPNG() throws IOException {
BRATForest forest = (BRATForest)d_btmStudy.getValueAt(1, COLUMN_FOREST);
ForestPlotTableCell forestPlotTableCell = new ForestPlotTableCell(forest, Color.WHITE, Color.BLACK);
String image = TableCopyHandler.getMimeEncodedPng(forestPlotTableCell);
assertEquals("iVBORw0KGgoAAAANSUhEUgAAAS0AAAAVCAIAAACc3y/NAAAAcElEQVR42u3VwQkAIAwEweu/aYV8fQoqcbaEM4MZ+rskRrj/Cibg0AgcikNx6AI45FAcikNxyKE4FIfikEO94nDNLByKQw7FIYcc9rtpnYlD+Q/FoTjkUByKQ+06NAKH4lAcugAOORSH4lAccigOVU3Np6o8vXYELgAAAABJRU5ErkJggg==", image);
}
}