final Set set= new HashSet(Arrays.asList(fCandidateTypes)); set.removeAll(fTypesToExtract); if (!set.isEmpty()) {
final LinkedList list= new LinkedList(Arrays.asList(fCandidateTypes)); for (final Iterator outer= list.iterator(); outer.hasNext();) { final IType first= (IType) outer.next(); for (final Iterator inner= fTypesToExtract.iterator(); inner.hasNext();) { final IType second= (IType) inner.next(); if (second.getFullyQualifiedName().equals(first.getFullyQualifiedName())) outer.remove(); } } if (!list.isEmpty()) {
			public void widgetSelected(final SelectionEvent event) {				final Set set= new HashSet(Arrays.asList(fCandidateTypes));				set.removeAll(fTypesToExtract);				if (!set.isEmpty()) {					final SupertypeSelectionDialog dialog= new SupertypeSelectionDialog(getShell());					dialog.create();					dialog.setInput(set.toArray());					final int result= dialog.open();					if (result == Window.OK) {						final Object[] objects= dialog.getResult();						for (int index= 0; index < objects.length; index++) {							fTypesToExtract.add(objects[index]);						}						fTableViewer.setInput(fTypesToExtract.toArray());						addButton.setEnabled(isAddTypeEnabled());						handleTypesChanged();					}				}			}