package jdepend.client.report.way.mapui; import java.awt.BorderLayout; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JSplitPane; import jdepend.framework.ui.component.JDependFrame; import jdepend.metadata.tree.JavaPackageNode; import jdepend.model.result.AnalysisResult; import jdepend.client.report.util.TreeGraphUtil; import jdepend.client.report.util.TreePanel; public final class GraphPrinter extends JPanel { private GraphPanel graphPanel; private JPanel treePanel; private JSplitPane splitPane; private TreePanel treeCompoennt; private JavaPackageNode javaPackageTree; private JDependFrame frame; private String group; private String command; public GraphPrinter(JDependFrame frame, AnalysisResult result) { this.setLayout(new BorderLayout()); this.frame = frame; this.group = result.getRunningContext().getGroup(); this.command = result.getRunningContext().getCommand(); this.javaPackageTree = result.getJavaPackageTree(); graphPanel = new GraphPanel(this, result.getRelations()); treePanel = new JPanel(); treePanel.setLayout(new BorderLayout()); splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, graphPanel, treePanel); treeCompoennt = null; hiddenPackageTree(); this.add(splitPane); } void showPackageTree() { // 创建packageTree if (treeCompoennt == null) { treeCompoennt = (new TreeGraphUtil()).createTree(this.javaPackageTree); treeCompoennt.setSize(150, 400); this.setPackageTree(treeCompoennt); } splitPane.setDividerLocation(0.6D); treePanel.setVisible(true); } void hiddenPackageTree() { splitPane.setDividerLocation(Integer.MAX_VALUE); treePanel.setVisible(false); } private void setPackageTree(JComponent treeCompoennt) { treePanel.removeAll(); treePanel.add(treeCompoennt); } boolean isPackageTreeVisible() { return treePanel.isVisible(); } void setPackageTreeFocus(String focus) { treeCompoennt.setFocus(focus); } JDependFrame getFrame() { return frame; } String getGroup() { return group; } String getCommand() { return command; } }