package jdepend.statistics.action;
import java.awt.event.ActionEvent;
import javax.swing.JScrollPane;
import jdepend.core.score.ScoreInfo;
import jdepend.framework.exception.JDependException;
import jdepend.framework.log.LogUtil;
import jdepend.framework.ui.graph.CooperTable;
import jdepend.framework.ui.graph.model.TableData;
import jdepend.model.result.AnalysisResult;
import jdepend.statistics.StaticsFrame;
public class RelationComponentScaleAction extends ScoreListAction {
public RelationComponentScaleAction(StaticsFrame frame) {
super(frame, "关系组件个数比例分析");
}
@Override
protected void analyse(ActionEvent e) throws JDependException {
AnalysisResult result;
String group;
String command;
TableData tableData = new TableData();
for (ScoreInfo scoreInfo : scoreCollection.getScoreInfos()) {
result = scoreCollection.getTheResult(scoreInfo);
if (result.getComponents().size() != 0) {
group = result.getRunningContext().getGroup();
command = result.getRunningContext().getCommand();
tableData.setData("组名", group);
tableData.setData("命令名", command);
tableData.setData("组件个数", result.getComponents().size());
tableData.setData("关系个数", result.getRelations().size());
tableData.setData("关系组件比例", result.calRelationComponentScale());
tableData.setData("关系合理性得分", result.getRelationRationality());
tableData.setData("封装性得分", result.getEncapsulation());
tableData.setData("总分", result.getScore());
tableData.setData("关系数量*关系合理性得分", result.getRelations().size() * result.getRelationRationality());
tableData.setData("关系组件比例*总分", result.calRelationComponentScale() * result.getScore());
this.progress();
LogUtil.getInstance(RelationComponentScaleAction.class).systemLog(
"分析了[" + group + "][" + command + "]的ClassLineCount");
}
}
this.addResult("关系组件个数比例表", new JScrollPane(new CooperTable(tableData)));
}
}