package jdepend.client.ui.result.panel;
import java.util.Map;
import javax.swing.JComponent;
import jdepend.framework.exception.JDependException;
import jdepend.model.JDependUnitMgr;
import jdepend.model.result.AnalysisResult;
import jdepend.client.ui.result.framework.ResultPanel;
public class ResultPanelWrapper {
private ResultPanel resultPanel;
public ResultPanelWrapper(ResultPanel resultPanel) {
this.resultPanel = resultPanel;
}
/**
* 显示内存中JDependUnitMgr中的结果
*/
public void showResults(boolean isRefreshTodoList) {
resultPanel.removeAll();
Map<String, ? extends JComponent> results = null;
try {
// 得到内存分析结果
AnalysisResult result = JDependUnitMgr.getInstance().getResult();
// 构造报告生成器
JDependReport jdependReport = new JDependReport(result.getRunningContext().getGroup(), result
.getRunningContext().getCommand());
jdependReport.setFrame(resultPanel.getFrame());
jdependReport.addReportListener(resultPanel.getFrame());
// 创建图形化结果
results = jdependReport.createReport(result);
// 显示结果
resultPanel.showResults(results);
} catch (Exception ex) {
ex.printStackTrace();
resultPanel.showError(ex);
}
resultPanel.getFrame().getPropertyPanel().getClassPanel().clearClassList();
if (isRefreshTodoList) {
// 刷新TODOList
new Thread() {
@Override
public void run() {
try {
resultPanel.getFrame().getPropertyPanel().getToDoListPanel().refresh();
} catch (JDependException e) {
e.printStackTrace();
resultPanel.getFrame().getResultPanel().showError(e);
}
}
}.start();
}
}
/**
* 显示内存操作后的结果(保持原位置)
*/
public void refreshResults() {
int defaultOneIndex = resultPanel.getOneIndex();
int defaultTwoIndex = resultPanel.getTwoIndex();
this.showResults(false);
if (defaultOneIndex != -1 && defaultTwoIndex != -1) {
resultPanel.setDefaultTab(defaultOneIndex, defaultTwoIndex);
}
}
}