package jdepend.client.report.ui;
import java.awt.BorderLayout;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collection;
import javax.swing.JScrollPane;
import jdepend.framework.ui.dialog.CooperDialog;
import jdepend.model.JDependUnit;
import jdepend.model.JDependUnitMgr;
import jdepend.client.report.way.textui.JDependPrinter;
public class CohesionDialog extends CooperDialog {
private StringBuilder cohesionText;
public CohesionDialog(JDependUnit unit) {
super(unit.getName() + " 内聚值(正序)");
getContentPane().setLayout(new BorderLayout());
Collection<JDependUnit> units = new ArrayList<JDependUnit>();
units.add(unit);
printCohesion(units);
this.add(new JScrollPane((new XMLJDependUtil()).createResult(cohesionText)));
}
public CohesionDialog() {
super("内聚值(正序)");
getContentPane().setLayout(new BorderLayout());
printCohesion(JDependUnitMgr.getInstance().getComponents());
this.add(new JScrollPane((new XMLJDependUtil()).createResult(cohesionText)));
}
private void printCohesion(Collection<? extends JDependUnit> units) {
OutputStream info = new ByteArrayOutputStream();
JDependPrinter printer = new JDependPrinter();
printer.setStream(info);
printer.printCohesions(units);
printer.getWriter().flush();
cohesionText = new StringBuilder(info.toString());
try {
info.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}