package jetbrains.mps.build.mps.pluginSolution.plugin; /*Generated by MPS */ import javax.swing.JPanel; import javax.swing.tree.TreeCellRenderer; import javax.swing.JCheckBox; import javax.swing.JLabel; import java.awt.FlowLayout; import com.intellij.util.ui.UIUtil; import java.awt.Component; import javax.swing.JTree; import java.awt.Dimension; public class CheckBoxCellRenderrer extends JPanel implements TreeCellRenderer { private final JCheckBox myCheckBox; private final JLabel myLabel; public CheckBoxCellRenderrer() { super(new FlowLayout()); this.myCheckBox = new JCheckBox(); this.myCheckBox.setBackground(UIUtil.getTreeBackground()); this.myLabel = new JLabel(); this.add(this.myCheckBox); this.add(this.myLabel); } @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus) { CheckBoxNode node = ((CheckBoxNode) value); this.myLabel.setText(node.getNodeText()); this.myLabel.setIcon(node.getIconNonFinal(expanded)); this.myCheckBox.setSelected(node.isChecked()); return this; } @Override public Dimension getPreferredSize() { Dimension checkBoxDim = this.myCheckBox.getPreferredSize(); Dimension labelDim = this.myLabel.getPreferredSize(); return new Dimension(checkBoxDim.width + labelDim.width, Math.max(checkBoxDim.height, labelDim.height)); } @Override public void doLayout() { Dimension checkBoxDim = this.myCheckBox.getPreferredSize(); Dimension labelDim = this.myLabel.getPreferredSize(); int baseline = Math.max(labelDim.height, checkBoxDim.height) / 2; this.myCheckBox.setLocation(0, baseline - checkBoxDim.height / 2); this.myCheckBox.setSize(checkBoxDim.width, checkBoxDim.height); this.myLabel.setLocation(checkBoxDim.width, baseline - labelDim.height / 2); this.myLabel.setSize(labelDim.width, labelDim.height); } }