Bug 29805 Resolve end symbol problem in Open Type dialog
Build I20030115 Here is the proposal we want to implement (it is pretty much what Randy Hudson proposed): The user must explicitly disable the adding of the wildcard by using a special end symbol. But instead of using the '.' JDT proposes to use the % character. Here are the reasons: - '.' is used in fully qualified name as a separator. The open type dialog already supports entering qualified names (e.g. junit.framework.* shows all types in the framework package). So it will be confusing if we use it as the end symbol as well. - '$' is used by various Unix tools (grep, ...) to denote the end symbol, but it is as legal character inside a Java identifier. Some generated classes inside rt.jar contain a $ character. - so we have to use a character that is not a legal character for Java identifiers. We tried several operators and we decide to go for the % since it is easy to recognize and easy to type. I have opened the bug to further track this issue. Please add comments to this bug instead of replying to this post since bugs are easier trackable.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/TypeSelectionDialog.java
*/
package org.eclipse.jdt.internal.ui.dialogs;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.util.Assert;
import org.eclipse.ui.dialogs.FilteredList;
import org.eclipse.ui.dialogs.TwoPaneElementSelector;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.search.IJavaSearchScope;
import org.eclipse.jdt.internal.corext.util.AllTypesCache;
import org.eclipse.jdt.internal.corext.util.Strings;
import org.eclipse.jdt.internal.corext.util.TypeInfo;
import org.eclipse.jdt.internal.ui.JavaUIMessages;
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
import org.eclipse.jdt.internal.ui.util.StringMatcher;
import org.eclipse.jdt.internal.ui.util.TypeInfoLabelProvider;
/**
 * A dialog to select a type from a list of types.
 */
public class TypeSelectionDialog extends TwoPaneElementSelector {