@SuppressWarnings("unchecked") @Override public BindableProxy<?> getBindableProxy(final Object model) { return new BindableListWrapper<Object>((List<Object>) model); }
@Override public boolean containsAll(Collection<?> c) { boolean b = true; for (Object item : c) { if (!contains(item)) { b = false; break; } } return b; }
@Override public M set(int index, M element) { final List<M> oldValue = new ArrayList<M>(list); element = (M) convertToProxy(element); M m = list.set(index, element); for (BindableListChangeHandler<M> handler : handlers) { handler.onItemChanged(oldValue, index, element); } removeElementChangeHandler(m); return m; }
private void initializeHandlers() { for (final HandlerRegistration reg : registrations) { reg.removeHandler(); } registrations.clear(); for (final BindableListChangeHandler<M> handler : handlers) { registrations.add(this.items.addChangeHandler(handler)); } }
@Override public int indexOf(Object o) { return list.indexOf(convertToProxy(o)); }
private void removeElementChangeHandlers() { List<BindableProxyAgent<?>> agents = new ArrayList<BindableProxyAgent<?>>(elementChangeHandlers.keySet()); for (BindableProxyAgent<?> agent : agents) { removeElementChangeHandler(agent); } }
@Override public void onItemChanged(List<M> oldList, int index, M item) { if (oldList.get(index) == item) return; for (int i = index; i < items.size(); i++) { addAndReplaceWidget(index, i); } }
private void addAndReplaceWidget(final int startIndex, final int index) { if (index < panel.getWidgetCount()) { panel.remove(startIndex); } addWidget(items.get(index)); }
/** * Returns the component currently displaying the provided model. * * @param model * the model displayed by the widget * * @return the widget displaying the provided model instance, null if no * widget was found for the model. */ public C getComponent(M model) { int index = items.indexOf(model); return getComponent(index); }
@Override public void clear() { final List<M> oldValue = new ArrayList<M>(list); list.clear(); for (BindableListChangeHandler<M> handler : handlers) { handler.onItemsCleared(oldValue); } removeElementChangeHandlers(); }
public void refreshSelectorOptions(List<OPTION> options) { if (options instanceof BindableListWrapper) { options = ((BindableListWrapper) options).deepUnwrap(); } Map<TYPE, String> optionsValues = new HashMap<>(); for (OPTION option : options) { optionsValues.put(option.getValue(), option.getText()); } refreshInput(optionsValues, field.getDefaultValue()); }
private void initializeHandlers() { for (final HandlerRegistration reg : registrations) { reg.removeHandler(); } registrations.clear(); for (final BindableListChangeHandler<M> handler : handlers) { registrations.add(this.items.addChangeHandler(handler)); } }
@Override public boolean contains(Object o) { return list.contains(convertToProxy(o)); }
private void removeElementChangeHandlers() { List<BindableProxyAgent<?>> agents = new ArrayList<BindableProxyAgent<?>>(elementChangeHandlers.keySet()); for (BindableProxyAgent<?> agent : agents) { removeElementChangeHandler(agent); } }
@Override public void onItemChanged(List<M> oldList, int index, M item) { if (oldList.get(index) == item) return; for (int i = index; i < items.size(); i++) { addAndReplaceWidget(index, i); } }
private void addAndReplaceWidget(final int startIndex, final int index) { if (index < panel.getWidgetCount()) { panel.remove(startIndex); } addWidget(items.get(index)); }
/** * Returns the component currently displaying the provided model. * * @param model * the model displayed by the widget * * @return the widget displaying the provided model instance, null if no * widget was found for the model. */ public C getComponent(M model) { int index = items.indexOf(model); return getComponent(index); }
@Override public void clear() { final List<M> oldValue = new ArrayList<M>(list); list.clear(); for (BindableListChangeHandler<M> handler : handlers) { handler.onItemsCleared(oldValue); } removeElementChangeHandlers(); }