All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.cmu.tetradapp.editor.TabularComparisonEditor Maven / Gradle / Ivy

The newest version!
package edu.cmu.tetradapp.editor;

import edu.cmu.tetrad.data.DataSet;
import edu.cmu.tetrad.util.TextTable;
import edu.cmu.tetradapp.model.GraphWrapper;
import edu.cmu.tetradapp.model.TabularComparison;

import javax.swing.*;
import java.awt.*;
import java.io.Serial;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Map;

/**
 * 

TabularComparisonEditor class.

* * @author josephramsey * @version $Id: $Id */ public class TabularComparisonEditor extends JPanel { @Serial private static final long serialVersionUID = 8455624852328328919L; /** * The comparison being edited. */ private final TabularComparison comparison; /** *

Constructor for TabularComparisonEditor.

* * @param comparison a {@link edu.cmu.tetradapp.model.TabularComparison} object */ public TabularComparisonEditor(TabularComparison comparison) { this.comparison = comparison; setup(); } private void setup() { JTabbedPane pane = new JTabbedPane(SwingConstants.TOP); pane.addTab("Comparison", getTableDisplay()); JTabbedPane pane2 = new JTabbedPane(SwingConstants.LEFT); JTabbedPane pane3 = new JTabbedPane(SwingConstants.TOP); GraphEditor graphEditor = new GraphEditor(new GraphWrapper(this.comparison.getTargetGraph())); graphEditor.setEnableEditing(false); pane3.add("Target Graph", graphEditor.getWorkbench()); graphEditor = new GraphEditor(new GraphWrapper(this.comparison.getReferenceGraph())); graphEditor.setEnableEditing(false); pane3.add("True Graph", graphEditor.getWorkbench()); pane2.add("Reference Graph", pane3); pane.addTab("Graphs", pane2); add(pane); } private Box getTableDisplay() { DataSet dataSet = this.comparison.getDataSet(); TextTable table = getTextTable(dataSet, new DecimalFormat("0.00")); StringBuilder b0 = new StringBuilder(); String trueGraphAndTarget = "Target graphs from " + this.comparison.getTargetName() + "\nTrue graphs from " + this.comparison.getReferenceName(); b0.append(trueGraphAndTarget).append("\n\n"); b0.append(table); Map allParamsSettings = this.comparison.getAllParamSettings(); if (allParamsSettings != null) { for (String key : allParamsSettings.keySet()) { b0.append(key).append(" = ").append(allParamsSettings.get(key)).append("\n"); } } JTextArea area = new JTextArea( b0.toString() ); area.setFont(new Font(Font.MONOSPACED, Font.BOLD, 12)); // area.setPreferredSize(area.getMaximumSize()); JScrollPane pane = new JScrollPane(area); pane.setPreferredSize(new Dimension(700, 400)); Box b = Box.createVerticalBox(); Box b1 = Box.createHorizontalBox(); b1.add(new JLabel("Tabular Comparison\b")); b.add(b1); b.add(Box.createVerticalStrut(10)); Box b3 = Box.createHorizontalBox(); b3.add(pane); b.add(b3); // setPreferredSize(new Dimension(700,400)); return b; } private TextTable getTextTable(DataSet dataSet, NumberFormat nf) { TextTable table = new TextTable(dataSet.getNumRows() + 2, dataSet.getNumColumns() + 1); table.setDelimiter(TextTable.Delimiter.TAB); table.setToken(0, 0, "Run"); for (int j = 0; j < dataSet.getNumColumns(); j++) { table.setToken(0, j + 1, dataSet.getVariable(j).getName()); } for (int i = 0; i < dataSet.getNumRows(); i++) { table.setToken(i + 1, 0, Integer.toString(i + 1)); } for (int i = 0; i < dataSet.getNumRows(); i++) { for (int j = 0; j < dataSet.getNumColumns(); j++) { double d = dataSet.getDouble(i, j); if (Double.isNaN(d)) { table.setToken(i + 1, j + 1, "*"); } else { table.setToken(i + 1, j + 1, nf.format(d)); } } } NumberFormat nf2 = new DecimalFormat("0.00"); for (int j = 0; j < dataSet.getNumColumns(); j++) { double sum = 0.0; int count = 0; for (int i = 0; i < dataSet.getNumRows(); i++) { double d = dataSet.getDouble(i, j); if (!Double.isNaN(d)) { sum += d; count++; } } double avg = sum / count; if (Double.isNaN(avg)) { table.setToken(dataSet.getNumRows() + 2 - 1, j + 1, "*"); } else { table.setToken(dataSet.getNumRows() + 2 - 1, j + 1, nf2.format(avg)); } } table.setToken(dataSet.getNumRows() + 2 - 1, 0, "Avg"); return table; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy