protected int doGetSize() { int size = 0; for (int i = 0; i < lists.length; i++) size += lists[i].size(); return size; }
@Override public int size() { return this.list.size(); }
public Object remove(int index) { int offset = 0; for (int i = 0; i < lists.length; i++) { if (index - offset < lists[i].size()) { return lists[i].remove(index - offset); } offset += lists[i].size(); } throw new IndexOutOfBoundsException("index: " + index + ", size: " //$NON-NLS-1$ //$NON-NLS-2$ + offset); }
public Object set(int index, Object o) { int offset = 0; for (int i = 0; i < lists.length; i++) { if (index - offset < lists[i].size()) { return lists[i].set(index - offset, o); } offset += lists[i].size(); } throw new IndexOutOfBoundsException("index: " + index + ", size: " //$NON-NLS-1$ //$NON-NLS-2$ + offset); }
public Object get(int index) { getterCalled(); int offset = 0; for (int i = 0; i < lists.length; i++) { if (index - offset < lists[i].size()) return lists[i].get(index - offset); offset += lists[i].size(); } throw new IndexOutOfBoundsException("index: " + index + ", size: " //$NON-NLS-1$ //$NON-NLS-2$ + offset); }
@Override protected int doGetSize() { getterCalled(); return masterList.size(); }
@Override protected int doGetSize() { getterCalled(); return masterList.size(); }
@Override protected int doGetSize() { getterCalled(); return masterList.size(); }
@Override protected int doGetSize() { getterCalled(); return masterList.size(); }
private MultiListListItr(int initialIndex) { iters = new ListIterator[lists.length]; int offset = 0; for (int i = 0; i < lists.length; i++) { if (offset <= initialIndex) { if (offset + lists[i].size() > initialIndex) { // current list contains initial index iters[i] = lists[i].listIterator(initialIndex - offset); iterIndex = i; } else { // current list ends before initial index iters[i] = lists[i].listIterator(lists[i].size()); } } else { // current list begins after initial index iters[i] = lists[i].listIterator(); } offset += lists[i].size(); } }
public Object[] toArray(Object[] a) { getterCalled(); Object[] result = a; if (result.length < doGetSize()) { result = (Object[]) Array.newInstance(a.getClass() .getComponentType(), doGetSize()); } int offset = 0; for (int i = 0; i < lists.length; i++) { Object[] oa = lists[i].toArray(); System.arraycopy(oa, 0, result, offset, oa.length); offset += lists[i].size(); } return result; }
public int indexOf(Object o) { getterCalled(); int offset = 0; for (int i = 0; i < lists.length; i++) { int index = lists[i].indexOf(o); if (index != -1) return offset + index; offset += lists[i].size(); } return -1; }
public boolean equals(Object o) { getterCalled(); if (o == this) return true; if (o == null) return false; if (!(o instanceof List)) return false; List that = (List) o; if (doGetSize() != that.size()) return false; int subListIndex = 0; for (int i = 0; i < lists.length; i++) { List subList = that.subList(subListIndex, subListIndex + lists[i].size()); if (!lists[i].equals(subList)) { return false; } subListIndex += lists[i].size(); } return true; }
public int lastIndexOf(Object o) { getterCalled(); int offset = size(); for (int i = 0; i < lists.length; i++) { offset -= lists[i].size(); int index = lists[i].indexOf(o); if (index != -1) return offset + index; } return -1; }
protected void doSetValue(Object value) { final Object oldValue = cachedValue; boolean wasUpdating = updating; try { updating = true; for (int i = 0; i < target.size(); i++) target.set(i, value); } finally { updating = wasUpdating; } // Fire the "dirty" event. This implementation recomputes the new // value lazily. if (hasListeners()) { fireValueChange(new ValueDiff() { public Object getOldValue() { return oldValue; } public Object getNewValue() { return getValue(); } }); } }
private void listChanged(ListChangeEvent event) { IObservableList source = event.getObservableList(); int offset = 0; for (int i = 0; i < lists.length; i++) { if (source == lists[i]) { fireListChange(offsetListDiff(offset, event.diff)); return; } offset += lists[i].size(); } Assert .isLegal( false, "MultiList received a ListChangeEvent from an observable list that is not one of its sources."); //$NON-NLS-1$ }
/** * Creates an updator for the given control. * * @param table * table to update * @param list * @since 1.2 */ public TableUpdater(Table table, IObservableList list) { this.table = table; this.list = list; Assert.isLegal((table.getStyle() & SWT.VIRTUAL) != 0, "TableUpdater requires virtual table"); //$NON-NLS-1$ table.setItemCount(list.size()); list.addListChangeListener(listChangeListener); table.addDisposeListener(privateInterface); table.addListener(SWT.SetData, privateInterface); }