protected void toggleSelections() { int[] indices = _list.getSelectedIndices(); CheckBoxListSelectionModel selectionModel = _list.getCheckBoxListSelectionModel(); selectionModel.removeListSelectionListener(this); selectionModel.setValueIsAdjusting(true); try { if (indices.length > 0) { boolean selected = selectionModel.isSelectedIndex(indices[0]); for (int index : indices) { if (!_list.isCheckBoxEnabled(index)) { continue; } if (selected && selectionModel.isSelectedIndex(index)) { selectionModel.removeSelectionInterval(index, index); } else if (!selected && !selectionModel.isSelectedIndex(index)) { selectionModel.addSelectionInterval(index, index); } } } } finally { selectionModel.setValueIsAdjusting(false); selectionModel.addListSelectionListener(this); _list.repaint(); } }
public void intervalRemoved(ListDataEvent e) { /* Sync the SelectionModel with the DataModel. */ ListSelectionModel listSelectionModel = _list.getCheckBoxListSelectionModel(); if (listSelectionModel != null) { listSelectionModel.removeIndexInterval(e.getIndex0(), e.getIndex1()); } }
public void propertyChange(PropertyChangeEvent evt) { if (evt.getOldValue() instanceof ListModel) { ((ListModel) evt.getOldValue()).removeListDataListener(this); } if (evt.getNewValue() instanceof ListModel) { _list.getCheckBoxListSelectionModel().setModel((ListModel) evt.getNewValue()); ((ListModel) evt.getNewValue()).addListDataListener(this); } }
public void intervalAdded(ListDataEvent e) { int minIndex = Math.min(e.getIndex0(), e.getIndex1()); int maxIndex = Math.max(e.getIndex0(), e.getIndex1()); /* Sync the SelectionModel with the DataModel. */ ListSelectionModel listSelectionModel = _list.getCheckBoxListSelectionModel(); if (listSelectionModel != null) { listSelectionModel.insertIndexInterval(minIndex, maxIndex - minIndex + 1, true); } }
protected void toggleSelection(int index) { if (!_list.isEnabled() || !_list.isCheckBoxEnabled(index)) { return; } CheckBoxListSelectionModel selectionModel = _list.getCheckBoxListSelectionModel(); boolean selected = selectionModel.isSelectedIndex(index); selectionModel.removeListSelectionListener(this); try { if (selected) selectionModel.removeSelectionInterval(index, index); else selectionModel.addSelectionInterval(index, index); } finally { selectionModel.addListSelectionListener(this); _list.repaint(); } }