/** * Sets the list button's list data. * * @param listData * The list data to be presented by the list button. */ @SuppressWarnings("unchecked") public void setListData(List<?> listData) { if (listData == null) { throw new IllegalArgumentException("listData is null."); } List<?> previousListData = this.listData; if (previousListData != listData) { int previousSelectedIndex = selectedIndex; if (previousListData != null) { // Clear any existing selection selectedIndex = -1; ((List<Object>)previousListData).getListListeners().remove(listDataListener); } ((List<Object>)listData).getListListeners().add(listDataListener); // Update the list data and fire change event this.listData = listData; listButtonListeners.listDataChanged(this, previousListData); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(this, null); } } }
/** * Sets the list button's list data. * * @param listData * The list data to be presented by the list button. */ @SuppressWarnings("unchecked") public void setListData(List<?> listData) { if (listData == null) { throw new IllegalArgumentException("listData is null."); } List<?> previousListData = this.listData; if (previousListData != listData) { int previousSelectedIndex = selectedIndex; if (previousListData != null) { // Clear any existing selection selectedIndex = -1; ((List<Object>)previousListData).getListListeners().remove(listDataListener); } ((List<Object>)listData).getListListeners().add(listDataListener); // Update the list data and fire change event this.listData = listData; listButtonListeners.listDataChanged(this, previousListData); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(this, null); } } }
@Override public void itemsRemoved(List<Object> list, int index, Sequence<Object> items) { int count = items.getLength(); int previousSelectedIndex = selectedIndex; if (selectedIndex >= index) { if (selectedIndex < index + count) { selectedIndex = -1; } else { selectedIndex -= count; } } listButtonItemListeners.itemsRemoved(ListButton.this, index, count); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); if (selectedIndex == -1) { listButtonSelectionListeners.selectedItemChanged(ListButton.this, null); } } }
@Override public void itemsRemoved(List<Object> list, int index, Sequence<Object> items) { int count = items.getLength(); int previousSelectedIndex = selectedIndex; if (selectedIndex >= index) { if (selectedIndex < index + count) { selectedIndex = -1; } else { selectedIndex -= count; } } listButtonItemListeners.itemsRemoved(ListButton.this, index, count); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); if (selectedIndex == -1) { listButtonSelectionListeners.selectedItemChanged(ListButton.this, null); } } }
/** * Sets the selection. * * @param selectedIndex * The index of the list item to select, or <tt>-1</tt> to clear the * selection. */ public void setSelectedIndex(int selectedIndex) { indexBoundsCheck("selectedIndex", selectedIndex, -1, listData.getLength() - 1); int previousSelectedIndex = this.selectedIndex; if (previousSelectedIndex != selectedIndex) { this.selectedIndex = selectedIndex; listButtonSelectionListeners.selectedIndexChanged(this, previousSelectedIndex); listButtonSelectionListeners.selectedItemChanged(this, (previousSelectedIndex == -1) ? null : listData.get(previousSelectedIndex)); } }
/** * Sets the selection. * * @param selectedIndex * The index of the list item to select, or <tt>-1</tt> to clear the * selection. */ public void setSelectedIndex(int selectedIndex) { indexBoundsCheck("selectedIndex", selectedIndex, -1, listData.getLength() - 1); int previousSelectedIndex = this.selectedIndex; if (previousSelectedIndex != selectedIndex) { this.selectedIndex = selectedIndex; listButtonSelectionListeners.selectedIndexChanged(this, previousSelectedIndex); listButtonSelectionListeners.selectedItemChanged(this, (previousSelectedIndex == -1) ? null : listData.get(previousSelectedIndex)); } }
@Override public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) { if (list.getComparator() != null) { int previousSelectedIndex = selectedIndex; selectedIndex = -1; listButtonItemListeners.itemsSorted(ListButton.this); if (previousSelectedIndex != selectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(ListButton.this, getSelectedItem()); } } } };
@Override public void comparatorChanged(List<Object> list, Comparator<Object> previousComparator) { if (list.getComparator() != null) { int previousSelectedIndex = selectedIndex; selectedIndex = -1; listButtonItemListeners.itemsSorted(ListButton.this); if (previousSelectedIndex != selectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(ListButton.this, getSelectedItem()); } } } };
@Override public void listCleared(List<Object> list) { int previousSelectedIndex = selectedIndex; selectedIndex = -1; listButtonItemListeners.itemsCleared(ListButton.this); if (previousSelectedIndex != selectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(ListButton.this, getSelectedItem()); } }
@Override public void listCleared(List<Object> list) { int previousSelectedIndex = selectedIndex; selectedIndex = -1; listButtonItemListeners.itemsCleared(ListButton.this); if (previousSelectedIndex != selectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); listButtonSelectionListeners.selectedItemChanged(ListButton.this, getSelectedItem()); } }
@Override public void itemInserted(List<Object> list, int index) { int previousSelectedIndex = selectedIndex; if (index <= selectedIndex) { selectedIndex++; } listButtonItemListeners.itemInserted(ListButton.this, index); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); } }
@Override public void itemInserted(List<Object> list, int index) { int previousSelectedIndex = selectedIndex; if (index <= selectedIndex) { selectedIndex++; } listButtonItemListeners.itemInserted(ListButton.this, index); if (selectedIndex != previousSelectedIndex) { listButtonSelectionListeners.selectedIndexChanged(ListButton.this, selectedIndex); } }