diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java deleted file mode 100644 index efd1df0fd..000000000 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.pagedesigner.properties.celleditors; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.jface.viewers.ComboBoxCellEditor; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.wst.sse.ui.internal.Logger; - -/** - * A simple ComboBoxCellEditor, which allow value and display string to be - * different. - * - * @author mengbo - */ -public class LabeledComboBoxCellEditor extends ComboBoxCellEditor { - private boolean _fSettingValue = false; - - private Object[] _values; - - /** - * Create LabeledComboBoxCellEditor - * @param parent - * @param valueLabelMap - * @param style - * @return LabeledComboBoxCellEditor - */ - public static LabeledComboBoxCellEditor newInstance(Composite parent, - Map valueLabelMap, int style) { - // we'll sort according to label. since that is what being show to user. - List list = new ArrayList(); - for (Iterator iter = valueLabelMap.keySet().iterator(); iter.hasNext();) { - Object key = iter.next(); - String label = (String) valueLabelMap.get(key); - list.add(new Object[] { key, label }); - } - // sort by label - Collections.sort(list, new Comparator() { - public int compare(Object o1, Object o2) { - String label1 = (String) ((Object[]) o1)[1]; - String label2 = (String) ((Object[]) o2)[1]; - return label1.compareTo(label2); - } - }); - Object[] values = new Object[list.size()]; - String[] labels = new String[list.size()]; - for (int i = 0, n = list.size(); i < n; i++) { - values[i] = ((Object[]) list.get(i))[0]; - labels[i] = (String) ((Object[]) list.get(i))[1]; - } - return new LabeledComboBoxCellEditor(parent, values, labels, style); - } - - /** - * Constructor - * - * @param parent - * @param values - * @param labels - */ - public LabeledComboBoxCellEditor(Composite parent, Object[] values, - String[] labels) { - this(parent, values, labels, SWT.NONE); - } - - /** - * Constructor - * - * @param parent - * @param values - * @param labels - * @param style - */ - public LabeledComboBoxCellEditor(Composite parent, Object[] values, - String[] labels, int style) { - super(parent, labels, style); - _values = values; - } - - protected Object doGetValue() { - // otherwise limits to set of valid values - Object index = super.doGetValue(); - int selection = -1; - if (index instanceof Integer) { - selection = ((Integer) index).intValue(); - } - if (selection >= 0) { - return _values[selection]; - } else if (getControl() instanceof CCombo) { - // retrieve the actual text as the list of valid items doesn't - // contain the value - return ((CCombo) getControl()).getText(); - } - return null; - } - - protected void doSetValue(Object value) { - if (_fSettingValue) { - return; - } - _fSettingValue = true; - if (value instanceof Integer) { - super.doSetValue(value); - } else { - String stringValue = value.toString(); - int selection = -1; - for (int i = 0; i < _values.length; i++) { - if (_values[i].equals(stringValue)) { - selection = i; - } - } - if (selection >= 0) { - super.doSetValue(new Integer(selection)); - } else { - super.doSetValue(new Integer(-1)); - if (getControl() instanceof CCombo - && !stringValue.equals(((CCombo) getControl()) - .getText())) { - // update the Text widget - ((CCombo) getControl()).setText(stringValue); - } - } - } - _fSettingValue = false; - } - - public void setItems(String[] newItems) { - if (getControl() == null || getControl().isDisposed()) { - Logger.log(Logger.ERROR, - "Attempted to update item list for disposed cell editor"); //$NON-NLS-1$ - return; - } - - // keep selection if possible - Object previousSelectedValue = getValue(); - super.setItems(newItems); - if (previousSelectedValue != null && getControl() instanceof CCombo) { - for (int i = 0; i < newItems.length; i++) { - if (newItems[i].equals(previousSelectedValue)) { - setValue(previousSelectedValue); - } - } - } - } -} |