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.JavaClassUnit; import jdepend.model.JavaClassWrapper; import jdepend.model.result.AnalysisResult; import jdepend.statistics.StaticsFrame; public class ClassInvokeCountAction extends ScoreListAction { public ClassInvokeCountAction(StaticsFrame frame) { super(frame, "调用类个数排名"); } @Override protected void analyse(ActionEvent e) throws JDependException { AnalysisResult result; TableData tableData; String title; for (ScoreInfo scoreInfo : scoreCollection.getScoreInfos()) { result = scoreCollection.getTheResult(scoreInfo); tableData = new TableData(); for (JavaClassUnit javaClass : result.getClasses()) { tableData.setData("类名", javaClass.getName()); tableData.setData("调用类数量", new JavaClassWrapper(javaClass).getInvokeClasses().size()); } this.progress(); title = result.getRunningContext().getGroup() + result.getRunningContext().getCommand(); this.addResult(title, new JScrollPane(new CooperTable(tableData))); LogUtil.getInstance(ClassInvokeCountAction.class).systemLog("分析了[" + title + "]的调用类数量"); } } }