package org.eclipse.dltk.validators.internal.externalchecker.ui; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.Vector; import org.eclipse.dltk.validators.internal.externalchecker.core.CustomWildcard; public class CustomWildcardsList { private Vector<CustomWildcard> wcards = new Vector<>(); private Set<IWildcardListViewer> changeListeners = new HashSet<>(); public void addWcard() { CustomWildcard r = new CustomWildcard("x", Messages.CustomWildcardsList_enterPattern, //$NON-NLS-1$ Messages.CustomWildcardsList_enterDescription); wcards.add(r); Iterator<IWildcardListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) { iterator.next().addWildcard(r); } } public void removeChangeListener(IWildcardListViewer viewer) { changeListeners.remove(viewer); } public void addChangeListener(IWildcardListViewer viewer) { changeListeners.add(viewer); } public Vector<CustomWildcard> getWcards() { return wcards; } public void wcardChanged(CustomWildcard r) { Iterator<IWildcardListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().updateWildcard(r); } public void addWcard(CustomWildcard r) { wcards.add(r); Iterator<IWildcardListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) { iterator.next().addWildcard(r); } } public void removeWcard(CustomWildcard task) { wcards.remove(task); Iterator<IWildcardListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().removeWildcard(task); } public void removeAll() { for (int i = 0; i < this.wcards.size(); i++) { CustomWildcard task = wcards.get(i); Iterator<IWildcardListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()) iterator.next().removeWildcard(task); } wcards.clear(); } public CustomWildcard[] getWildcards() { return this.wcards.toArray(new CustomWildcard[this.wcards.size()]); } }