package com.isti.xmax.gui; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.border.EtchedBorder; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.JTree; import javax.swing.JScrollPane; import java.awt.Dimension; import java.awt.FlowLayout; /** * Side-panel for quality control issues * * @author Max Kokoulin */ public class QCPanel extends JPanel { private static final long serialVersionUID = 1L; private JTree qcTree = null; private JScrollPane scrollPane = null; /** * This method initializes QCpanel */ public QCPanel() { super(); initialize(); } /** * This method initializes this QCpanel */ private void initialize() { FlowLayout flowLayout = new FlowLayout(); flowLayout.setHgap(0); flowLayout.setVgap(0); this.setLayout(flowLayout); setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); this.add(getScrollPane(), null); } /** * This method initializes qcTree * * @return javax.swing.JTree */ private JTree getQcTree() { if (qcTree == null) { DefaultMutableTreeNode top = new DefaultMutableTreeNode("Quality Control"); qcTree = new JTree(top); qcTree.setBackground(getBackground()); createNodes(top); } return qcTree; } /** * This method initializes scrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getScrollPane() { if (scrollPane == null) { scrollPane = new JScrollPane(); scrollPane.setPreferredSize(new Dimension(150, 32767)); scrollPane.setViewportView(getQcTree()); } return scrollPane; } private void createNodes(DefaultMutableTreeNode top) { DefaultMutableTreeNode issue = null; issue = new DefaultMutableTreeNode("Flatlined trace"); top.add(issue); issue = new DefaultMutableTreeNode("Spikey trace"); top.add(issue); issue = new DefaultMutableTreeNode("Timing problem likely"); top.add(issue); } }