package jdepend.statistics.action; import java.awt.event.ActionEvent; import java.util.LinkedHashMap; import java.util.Map; import jdepend.core.score.ScoreInfo; import jdepend.framework.exception.JDependException; import jdepend.framework.ui.graph.GraphUtil; import jdepend.framework.ui.graph.model.GraphData; import jdepend.framework.ui.graph.model.GraphDataItem; import jdepend.model.result.AnalysisResult; import jdepend.statistics.StaticsFrame; public class ScaleScoreItemAction extends ScoreListAction { public ScaleScoreItemAction(StaticsFrame frame) { super(frame, "分数分项分析"); } @Override public void analyse(ActionEvent e) throws JDependException { Map<Object, Object> scoreItems = new LinkedHashMap<Object, Object>(); scoreItems.put("抽象程度合理性", 0F); scoreItems.put("内聚性", 0F); scoreItems.put("封装性", 0F); scoreItems.put("关系合理性", 0F); if (this.scoreCollection.getScoreInfos().size() > 0) { for (ScoreInfo info : this.scoreCollection.getScoreInfos()) { scoreItems.put("抽象程度合理性", (Float) scoreItems.get("抽象程度合理性") + info.distance); scoreItems.put("内聚性", (Float) scoreItems.get("内聚性") + info.balance); scoreItems.put("封装性", (Float) scoreItems.get("封装性") + info.encapsulation); scoreItems.put("关系合理性", (Float) scoreItems.get("关系合理性") + info.relation); } // scoreItems.put("抽象程度合理性", (Float) scoreItems.get("抽象程度合理性") / this.scoreCollection.getScoreInfos().size() / AnalysisResult.Distance); // scoreItems.put("内聚性", (Float) scoreItems.get("内聚性") / this.scoreCollection.getScoreInfos().size() / AnalysisResult.Balance); // scoreItems.put("封装性", (Float) scoreItems.get("封装性") / this.scoreCollection.getScoreInfos().size() / AnalysisResult.Encapsulation); // scoreItems.put("关系合理性", (Float) scoreItems.get("关系合理性") / this.scoreCollection.getScoreInfos().size() // / AnalysisResult.RelationRationality); } GraphData data = new GraphData(); data.setColCount(1); GraphDataItem item = new GraphDataItem(); item.setTitle("按分数分项比例"); item.setGroup("Graph"); item.setType(GraphDataItem.BAR); item.setLineXName("分项名称"); item.setLineYName("得分比例"); item.setDatas(scoreItems); data.addItem(item); this.addResult("分数分项比例柱状图", GraphUtil.createGraph(data)); } }