19 package org.sleuthkit.autopsy.guiutils;
21 import java.awt.BorderLayout;
22 import java.awt.Component;
23 import java.awt.event.MouseAdapter;
24 import java.awt.event.MouseEvent;
25 import javax.swing.Icon;
26 import javax.swing.JCheckBox;
27 import javax.swing.JLabel;
28 import javax.swing.JList;
29 import javax.swing.JPanel;
30 import javax.swing.ListCellRenderer;
31 import javax.swing.ListSelectionModel;
96 CellRenderer cellRenderer =
new CellRenderer();
98 setCellRenderer(cellRenderer);
99 addMouseListener(
new MouseAdapter() {
101 public void mousePressed(MouseEvent e) {
102 int index = locationToIndex(e.getPoint());
110 setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
116 class CellRenderer
extends JPanel implements ListCellRenderer<CheckBoxJList.CheckboxListItem> {
118 private static final long serialVersionUID = 1L;
120 private final JCheckBox checkbox =
new JCheckBox();
121 private final JLabel label =
new JLabel();
124 setLayout(
new BorderLayout(2, 0));
125 add(checkbox, BorderLayout.WEST);
126 add(label, BorderLayout.CENTER);
130 public Component getListCellRendererComponent(
131 JList<? extends CheckBoxJList.CheckboxListItem> list,
CheckBoxJList.CheckboxListItem value,
int index,
132 boolean isSelected,
boolean cellHasFocus) {
134 setBackground(list.getBackground());
136 checkbox.setSelected(value.isChecked());
137 checkbox.setBackground(list.getBackground());
138 checkbox.setEnabled(list.isEnabled());
139 checkbox.setOpaque(list.isOpaque());
140 label.setText(value.getDisplayName());
141 label.setEnabled(list.isEnabled());
142 label.setOpaque(list.isOpaque());
143 label.setBackground(list.getBackground());
144 if (value.hasIcon()) {
145 label.setIcon(value.getIcon());
148 setOpaque(list.isOpaque());
149 setEnabled(list.isEnabled());
void setChecked(boolean checked)
static final long serialVersionUID