/** * Returns true if the diff contains no added, removed, moved or replaced * elements. * * @return true if the diff contains no added, removed, moved or replaced * elements. * @since 1.2 */ public boolean isEmpty() { return getDifferences().length == 0; }
public ListDiffEntry[] getDifferences() { if (lazyDiff == null) { lazyDiff = Diffs.computeListDiff(oldList, newList); } return lazyDiff.getDifferences(); } };
public ListDiffEntry[] getDifferences() { if (differences == null) differences = Diffs.computeListDiff(oldList, getList()) .getDifferences(); return differences; } });
/** * @see java.lang.Object#toString() */ public String toString() { ListDiffEntry[] differences = getDifferences(); StringBuffer buffer = new StringBuffer(); buffer.append(getClass().getName()); if (differences == null || differences.length == 0) { buffer.append("{}"); //$NON-NLS-1$ } else { buffer.append("{"); //$NON-NLS-1$ for (int i = 0; i < differences.length; i++) { if (i > 0) buffer.append(", "); //$NON-NLS-1$ buffer.append("difference[") //$NON-NLS-1$ .append(i).append("] [") //$NON-NLS-1$ .append( differences[i] != null ? differences[i] .toString() : "null") //$NON-NLS-1$ .append("]"); //$NON-NLS-1$ } buffer.append("}"); //$NON-NLS-1$ } return buffer.toString(); } }
private ListDiff offsetListDiff(int offset, ListDiff diff) { return Diffs.createListDiff(offsetListDiffEntries(offset, diff .getDifferences())); }
public void handleListChange(ListChangeEvent event) { Set added = new HashSet(); Set removed = new HashSet(); ListDiffEntry[] differences = event.diff.getDifferences(); for (int i = 0; i < differences.length; i++) { ListDiffEntry entry = differences[i]; Object element = entry.getElement(); if (entry.isAddition()) { if (wrappedSet.add(element)) { if (!removed.remove(element)) added.add(element); } } else { if (wrappedSet.remove(element)) { removed.add(element); added.remove(element); } } } fireSetChange(Diffs.createSetDiff(added, removed)); } };
@SuppressWarnings("unchecked") @Override public void handleListChange(ListChangeEvent event) { final ListDiffEntry[] differences = event.diff.getDifferences();
private ListDiff<T> convertDiff(ListDiff<? extends M> diff) { // Convert diff to detail value ListDiffEntry<? extends M>[] masterEntries = diff.getDifferences(); List<ListDiffEntry<T>> detailEntries = new ArrayList<>(masterEntries.length); for (ListDiffEntry<? extends M> masterDifference : masterEntries) { int index = masterDifference.getPosition(); boolean addition = masterDifference.isAddition(); M masterElement = masterDifference.getElement(); T elementDetailValue = detailProperty.getValue(masterElement); detailEntries.add(Diffs.createListDiffEntry(index, addition, elementDetailValue)); } return Diffs.createListDiff(detailEntries); } };
private ListDiff<E> convertDiff(ListDiff<? extends T> diff) { // Convert diff to detail value ListDiffEntry<? extends T>[] masterEntries = diff.getDifferences(); List<ListDiffEntry<E>> detailEntries = new ArrayList<>(masterEntries.length); for (ListDiffEntry<? extends T> masterDifference : masterEntries) { int index = masterDifference.getPosition(); boolean addition = masterDifference.isAddition(); T masterElement = masterDifference.getElement(); E detailValue = cache.get(masterElement); detailEntries.add(Diffs.createListDiffEntry(index, addition, detailValue)); } return Diffs.createListDiff(detailEntries); } };
private ListDiff<T> convertDiff(ListDiff<? extends M> diff) { // Convert diff to detail value ListDiffEntry<? extends M>[] masterEntries = diff.getDifferences(); List<ListDiffEntry<T>> detailEntries = new ArrayList<>(masterEntries.length); for (ListDiffEntry<? extends M> masterDifference : masterEntries) { int index = masterDifference.getPosition(); boolean addition = masterDifference.isAddition(); M masterElement = masterDifference.getElement(); T elementDetailValue = detailProperty.getValue(masterElement); detailEntries.add(Diffs.createListDiffEntry(index, addition, elementDetailValue)); } return Diffs.createListDiff(detailEntries); } };
private ListDiff<E> convertDiff(ListDiff<? extends T> diff) { // Convert diff to detail value ListDiffEntry<? extends T>[] masterEntries = diff.getDifferences(); List<ListDiffEntry<E>> detailEntries = new ArrayList<>(masterEntries.length); for (ListDiffEntry<? extends T> masterDifference : masterEntries) { int index = masterDifference.getPosition(); boolean addition = masterDifference.isAddition(); T masterElement = masterDifference.getElement(); E detailValue = cache.get(masterElement); detailEntries.add(Diffs.createListDiffEntry(index, addition, detailValue)); } return Diffs.createListDiff(detailEntries); } };
@Override public void handleListChange(ListChangeEvent event) { ListDiff diff = event.diff; for (ListDiffEntry listDiffEntry : diff.getDifferences()) { IObservable target = (IObservable) listDiffEntry.getElement(); if (listDiffEntry.isAddition()) { target.addChangeListener(uiChangeListener); } else { target.removeChangeListener(uiChangeListener); } } } };
@Override public void handleListChange(ListChangeEvent event) { ListDiff diff = event.diff; for (ListDiffEntry listDiffEntry : diff.getDifferences()) { IObservable target = (IObservable) listDiffEntry.getElement(); if (listDiffEntry.isAddition()) { target.addChangeListener(uiChangeListener); } else { target.removeChangeListener(uiChangeListener); } } } };
@Override public void handleListChange(ListChangeEvent event) { ListDiff diff = event.diff; for (ListDiffEntry listDiffEntry : diff.getDifferences()) { ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) listDiffEntry .getElement(); IObservableList targets = validationStatusProvider.getTargets(); if (listDiffEntry.isAddition()) { targets.addListChangeListener(validationStatusProviderTargetsListener); for (Iterator it = targets.iterator(); it.hasNext();) { ((IObservable) it.next()).addChangeListener(uiChangeListener); } } else { targets.removeListChangeListener(validationStatusProviderTargetsListener); for (Iterator it = targets.iterator(); it.hasNext();) { ((IObservable) it.next()).removeChangeListener(uiChangeListener); } } } } };
@Override public void handleListChange(ListChangeEvent event) { ListDiff diff = event.diff; for (ListDiffEntry listDiffEntry : diff.getDifferences()) { ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) listDiffEntry .getElement(); IObservableList targets = validationStatusProvider.getTargets(); if (listDiffEntry.isAddition()) { targets .addListChangeListener(validationStatusProviderTargetsListener); for (Iterator it = targets.iterator(); it.hasNext();) { ((IObservable) it.next()) .addChangeListener(uiChangeListener); } } else { targets .removeListChangeListener(validationStatusProviderTargetsListener); for (Iterator it = targets.iterator(); it.hasNext();) { ((IObservable) it.next()) .removeChangeListener(uiChangeListener); } } } } };
@Override public void handleListChange(ListChangeEvent event) { ListDiffEntry[] diffs = event.diff.getDifferences(); for (ListDiffEntry listDiffEntry : diffs) { if (listDiffEntry.isAddition()) { createChild(listDiffEntry.getElement(), listDiffEntry .getPosition()); } else { disposeWidget(listDiffEntry.getPosition()); } } theComposite.layout(); }
@Override public void handleListChange(ListChangeEvent event) { ListDiffEntry[] differences = event.diff.getDifferences(); for (ListDiffEntry entry : differences) { if (entry.isAddition()) { TableItem item = new TableItem(table, SWT.NONE, entry .getPosition()); UpdateRunnable updateRunnable = new UpdateRunnable(item, entry.getElement()); item.setData(updateRunnable); updateRunnable.makeDirty(); } else { table.getItem(entry.getPosition()).dispose(); } } } };
private void handleMasterListChange(ListDiff masterListDiff) { boolean wasStale = isStale(); boolean hasListeners = hasListeners(); ListDiffEntry[] masterEntries = masterListDiff.getDifferences(); ListDiffEntry[] detailEntries = new ListDiffEntry[masterEntries.length]; for (int i = 0; i < masterEntries.length; i++) { ListDiffEntry masterEntry = masterEntries[i]; int index = masterEntry.getPosition(); Object masterElement = masterEntry.getElement(); Object detailValue; if (masterEntry.isAddition()) { detailValue = addDetailObservable(masterElement, index); } else { detailValue = removeDetailObservable(masterElement, index); } if (hasListeners) { // Create the corresponding diff for the detail list. detailEntries[i] = Diffs.createListDiffEntry(index, masterEntry.isAddition(), detailValue); } } if (hasListeners) { if (!wasStale && isStale()) { fireStale(); } // Fire a list change event with the adapted diff. fireListChange(Diffs.createListDiff(detailEntries)); } }
ListDiffEntry[] differences = getDifferences(); for (int i = 0; i < differences.length; i++) { ListDiffEntry entry = differences[i];