public void clear() { writeLock(); try { options.clear(); } finally { writeUnlock(); } }
public void removeOption(String value) { writeLock(); try { Iterator<DropdownOption> it = options.iterator(); while (it.hasNext()) { DropdownOption o = it.next(); if (o.id().equals(value)) { it.remove(); return; } } } finally { writeUnlock(); } }
public void setOptions(Collection<DropdownOption> options) { writeLock(); try { this.options.clear(); for (DropdownOption opt: options) { try { this.options.add(opt.clone()); } catch (CloneNotSupportedException e) { /* does not occur */} } this.options.addAll(options); } finally { writeUnlock(); } }
public void selectMultipleOptions(Collection<String> selectedOptions) { writeLock(); try { Iterator<DropdownOption> it = options.iterator(); while (it.hasNext()) { DropdownOption opt = it.next(); opt.select(selectedOptions.contains(opt.id())); } } finally { writeUnlock(); } }
public void selectSingleOption(String value) { writeLock(); try { for (DropdownOption o : options) { if (o.id().equals(value)) o.select(true); break; } } finally { writeUnlock(); } }
public void addOption(String label, String value, boolean selected) { writeLock(); try { removeOption(value); options.add(new DropdownOption(label, value, selected)); } finally { writeUnlock(); } }
public void changeSelection(String value, boolean newState) { writeLock(); try { for (DropdownOption o : options) { if (o.id().equals(value)) { o.select(newState); return; } } } finally { writeUnlock(); } }
writeLock(); try { List<DropdownOption> opts = getOptions();