package jdepend.client.report.ui;
import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import jdepend.framework.ui.component.TextViewer;
import jdepend.framework.ui.dialog.CooperDialog;
import jdepend.framework.util.MetricsFormat;
import jdepend.model.GroupCouplingItem;
import jdepend.model.SubJDependUnit;
public final class BalanceSubJDependUnitDialog extends CooperDialog {
public BalanceSubJDependUnitDialog(SubJDependUnit subUnit) {
super(subUnit.getName() + "内聚性指数明细");
getContentPane().setLayout(new BorderLayout());
TextViewer balance = new TextViewer();
balance.setText(getBalance(subUnit));
balance.setCaretPosition(0);
this.add(new JScrollPane(balance));
}
private String getBalance(SubJDependUnit subUnit) {
StringBuilder info = new StringBuilder();
info.append("内聚性指数(");
info.append(MetricsFormat.toFormattedMetrics(subUnit.getBalance()));
info.append(")=内聚值(");
info.append(MetricsFormat.toFormattedMetrics(subUnit.getCohesion()));
info.append(")/内聚值(");
info.append(MetricsFormat.toFormattedMetrics(subUnit.getCohesion()));
info.append(")+分组耦合顺序差值均值(");
info.append(MetricsFormat.toFormattedMetrics(subUnit.getGroupCouplingInfo().getAverageDifference()));
info.append(");\n");
info.append("分组耦合顺序值为:\n");
for (GroupCouplingItem groupCouplingInfo : subUnit.getGroupCouplingInfo().getGroupCouplingItems()) {
info.append(groupCouplingInfo);
info.append("\n");
}
info.append("分组耦合顺序差值为:\n");
for (Float difference : subUnit.getGroupCouplingInfo().getDifferences()) {
info.append(MetricsFormat.toFormattedMetrics(difference));
info.append("\n");
}
info.append("分组耦合顺序差值均值为:");
info.append(MetricsFormat.toFormattedMetrics(subUnit.getGroupCouplingInfo().getAverageDifference()));
return info.toString();
}
}