diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java | 184 |
1 files changed, 92 insertions, 92 deletions
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java index ce8940908c..9f3fde7eb2 100644 --- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java +++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/ComboAutoCompleter.java @@ -1,92 +1,92 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.ui;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-
-/**
- * @author Eike Stepper
- */
-public class ComboAutoCompleter implements ModifyListener
-{
- private ComboViewer viewer;
-
- public ComboAutoCompleter(ComboViewer viewer)
- {
- this.viewer = viewer;
- }
-
- public final ComboViewer getViewer()
- {
- return viewer;
- }
-
- public final void modifyText(ModifyEvent e)
- {
- String text = getText();
- Object foundElement = findShortestLabel(text);
- if (foundElement != null)
- {
- setSelection(new StructuredSelection(foundElement));
- }
- else
- {
- // setSelection(StructuredSelection.EMPTY);
- }
- }
-
- protected void setSelection(StructuredSelection selection)
- {
- viewer.setSelection(selection);
- }
-
- private Object findShortestLabel(String prefix)
- {
- Object foundElement = null;
- String shortestLabel = null;
- ILabelProvider labelProvider = (ILabelProvider)viewer.getLabelProvider();
- IStructuredContentProvider contentProvider = (IStructuredContentProvider)viewer.getContentProvider();
- for (Object element : contentProvider.getElements(viewer.getInput()))
- {
- String label = labelProvider.getText(element);
- if (label.startsWith(prefix))
- {
- if (shortestLabel == null || label.length() < shortestLabel.length())
- {
- shortestLabel = label;
- foundElement = element;
- }
- }
- }
-
- return foundElement;
- }
-
- private String getText()
- {
- return viewer.getCombo().getText();
- }
-
- public static void attach(ComboViewer viewer, ComboAutoCompleter completer)
- {
- viewer.getCombo().addModifyListener(completer);
- }
-
- public static void attach(ComboViewer viewer)
- {
- viewer.getCombo().addModifyListener(new ComboAutoCompleter(viewer));
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.net4j.util.ui; + +import org.eclipse.jface.viewers.ComboViewer; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; + +/** + * @author Eike Stepper + */ +public class ComboAutoCompleter implements ModifyListener +{ + private ComboViewer viewer; + + public ComboAutoCompleter(ComboViewer viewer) + { + this.viewer = viewer; + } + + public final ComboViewer getViewer() + { + return viewer; + } + + public final void modifyText(ModifyEvent e) + { + String text = getText(); + Object foundElement = findShortestLabel(text); + if (foundElement != null) + { + setSelection(new StructuredSelection(foundElement)); + } + else + { + // setSelection(StructuredSelection.EMPTY); + } + } + + protected void setSelection(StructuredSelection selection) + { + viewer.setSelection(selection); + } + + private Object findShortestLabel(String prefix) + { + Object foundElement = null; + String shortestLabel = null; + ILabelProvider labelProvider = (ILabelProvider)viewer.getLabelProvider(); + IStructuredContentProvider contentProvider = (IStructuredContentProvider)viewer.getContentProvider(); + for (Object element : contentProvider.getElements(viewer.getInput())) + { + String label = labelProvider.getText(element); + if (label.startsWith(prefix)) + { + if (shortestLabel == null || label.length() < shortestLabel.length()) + { + shortestLabel = label; + foundElement = element; + } + } + } + + return foundElement; + } + + private String getText() + { + return viewer.getCombo().getText(); + } + + public static void attach(ComboViewer viewer, ComboAutoCompleter completer) + { + viewer.getCombo().addModifyListener(completer); + } + + public static void attach(ComboViewer viewer) + { + viewer.getCombo().addModifyListener(new ComboAutoCompleter(viewer)); + } +} |