19 package org.sleuthkit.autopsy.guiutils;
21 import java.util.ArrayList;
22 import java.util.Enumeration;
23 import java.util.List;
24 import java.util.Objects;
25 import javax.swing.DefaultListModel;
26 import javax.swing.Icon;
35 private final DefaultListModel<ObjectCheckBox<T>>
model =
new DefaultListModel<>();
44 checkboxList =
new CheckBoxJList<>();
45 checkboxList.setModel(model);
56 public void addElement(String displayName, Icon icon, T obj) {
57 ObjectCheckBox<T> newCheckBox =
new ObjectCheckBox<>(displayName, icon,
true, obj);
59 if(!model.contains(newCheckBox)) {
60 model.addElement(newCheckBox);
68 model.removeAllElements();
72 return model.isEmpty();
77 checkboxList.setEnabled(enabled);
80 checkboxList.setEnabled(enabled);
89 List<T> selectedElements =
new ArrayList<>();
90 Enumeration<ObjectCheckBox<T>> elements = model.elements();
92 while (elements.hasMoreElements()) {
93 ObjectCheckBox<T> element = elements.nextElement();
94 if (element.isChecked()) {
95 selectedElements.add(element.getObject());
99 return selectedElements;
108 Enumeration<ObjectCheckBox<T>> enumeration = model.elements();
109 while (enumeration.hasMoreElements()) {
110 ObjectCheckBox<T> element = enumeration.nextElement();
111 element.setChecked(selected);
112 checkboxList.repaint();
113 checkboxList.revalidate();
141 @SuppressWarnings(
"unchecked")
144 java.awt.GridBagConstraints gridBagConstraints;
151 setLayout(
new java.awt.GridBagLayout());
154 gridBagConstraints =
new java.awt.GridBagConstraints();
155 gridBagConstraints.gridx = 0;
156 gridBagConstraints.gridy = 0;
157 gridBagConstraints.gridwidth = 3;
158 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
162 uncheckButton.addActionListener(
new java.awt.event.ActionListener() {
163 public void actionPerformed(java.awt.event.ActionEvent evt) {
167 gridBagConstraints =
new java.awt.GridBagConstraints();
168 gridBagConstraints.gridx = 1;
169 gridBagConstraints.gridy = 2;
170 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
171 gridBagConstraints.weightx = 1.0;
172 gridBagConstraints.insets =
new java.awt.Insets(0, 0, 0, 9);
176 checkButton.addActionListener(
new java.awt.event.ActionListener() {
177 public void actionPerformed(java.awt.event.ActionEvent evt) {
181 gridBagConstraints =
new java.awt.GridBagConstraints();
182 gridBagConstraints.gridx = 2;
183 gridBagConstraints.gridy = 2;
184 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST;
186 gridBagConstraints =
new java.awt.GridBagConstraints();
187 gridBagConstraints.gridx = 0;
188 gridBagConstraints.gridy = 1;
189 gridBagConstraints.gridwidth = 3;
190 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
191 gridBagConstraints.weightx = 1.0;
192 gridBagConstraints.weighty = 1.0;
193 gridBagConstraints.insets =
new java.awt.Insets(5, 0, 9, 0);
218 final class ObjectCheckBox<T>
implements CheckBoxJList.CheckboxListItem {
220 private static final long serialVersionUID = 1L;
222 private final T object;
223 private final String displayName;
224 private final Icon icon;
225 private boolean checked;
235 ObjectCheckBox(String displayName, Icon icon,
boolean initialState, T
object) {
236 this.displayName = displayName;
238 this.
object = object;
239 this.checked = initialState;
247 public boolean isChecked() {
252 public void setChecked(
boolean checked) {
253 this.checked = checked;
257 public String getDisplayName() {
262 public boolean hasIcon() {
267 public Icon getIcon() {
272 public boolean equals(Object obj) {
273 if(obj instanceof ObjectCheckBox) {
274 return object.equals(((ObjectCheckBox)obj).
object);
280 public int hashCode() {
282 hash = 31 * hash + Objects.hashCode(this.
object);
javax.swing.JButton checkButton
javax.swing.JScrollPane scrollPane
final CheckBoxJList< ObjectCheckBox< T > > checkboxList
void checkButtonActionPerformed(java.awt.event.ActionEvent evt)
javax.swing.JLabel titleLabel
void addElement(String displayName, Icon icon, T obj)
javax.swing.JButton uncheckButton
void uncheckButtonActionPerformed(java.awt.event.ActionEvent evt)
void setEnabled(boolean enabled)
void setSetAllSelected(boolean selected)
void setPanelTitleIcon(Icon icon)
List< T > getSelectedElements()
final DefaultListModel< ObjectCheckBox< T > > model
static final long serialVersionUID
void setPanelTitle(String title)