diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java | 398 |
1 files changed, 0 insertions, 398 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java deleted file mode 100644 index 93c93320b..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java +++ /dev/null @@ -1,398 +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.jsf.common.ui.internal.dialogfield; - -import java.util.Map; -import java.util.TreeMap; -import java.util.Map.Entry; - -import org.eclipse.jst.jsf.common.ui.internal.utils.StyleCombo; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.FocusAdapter; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.forms.FormColors; -import org.eclipse.ui.forms.widgets.FormToolkit; - -/** - * A dialog field for style combos - * - */ -public class StyleComboDialogField extends DialogFieldBase implements - ISupportTextValue { - final static private int WIDTH_HINT = 10; - - private String _text; - - private int _selectionIndex; - - private String[] _items; - - private StyleCombo _comboControl; - - private ModifyListener _modifyListener; - - private int _flags; - - private boolean _pending = false; - - private Map _entryMap; - - private String _defaultValue; - - - /** - * @param defaultValue - */ - public void setDefaultValue(String defaultValue) { - this._defaultValue = defaultValue; - if (_comboControl != null && ! _comboControl.isDisposed()) - _comboControl.setDefaultValue(_defaultValue); - } - - /** - * @param flags - */ - public StyleComboDialogField(int flags) { - super(); - _text = ""; //$NON-NLS-1$ - _items = new String[0]; - _flags = flags; - _selectionIndex = -1; - } - - // ------- layout helpers - - - /* - * @see DialogField#doFillIntoGrid - */ - public Control[] doFillIntoGrid(FormToolkit toolkit, Composite parent, - int nColumns) { - assertEnoughColumns(nColumns); - - Control requiredLabel = getRequiredLabelControl(toolkit, parent); - requiredLabel.setLayoutData(gridDataForLabel(1)); - - Control label = getLabelControl(toolkit, parent); - label.setLayoutData(gridDataForLabel(1)); - - StyleCombo combo = getComboControl(toolkit, parent); - combo.setLayoutData(gridDataForCombo(nColumns - 2)); - - return new Control[] { requiredLabel, label, combo }; - } - - /* - * @see DialogField#getNumberOfControls - */ - public int getNumberOfControls() { - return 3; - } - - /** - * @param span - * @return the grid data for the combo - */ - protected static GridData gridDataForCombo(int span) { - GridData gd = new GridData(); - gd.horizontalAlignment = GridData.FILL; - gd.grabExcessHorizontalSpace = false; - gd.horizontalSpan = span; - gd.widthHint = WIDTH_HINT; - return gd; - } - - // ------- focus methods - - /* - * @see DialogField#setFocus - */ - public boolean setFocus() { - if (isOkToUse(_comboControl)) { - _comboControl.setFocus(); - } - return true; - } - - // ------- ui creation - - /** - * Creates or returns the created combo control. - * @param toolkit - * - * @param parent - * The parent composite or <code>null</code> when the widget - * has already been created. - * @return the combo control - */ - public StyleCombo getComboControl(FormToolkit toolkit, - final Composite parent) { - if (_comboControl == null || _comboControl.isDisposed()) { - assertCompositeNotNull(parent); - _modifyListener = new ModifyListener() { - public void modifyText(ModifyEvent e) { - doModifyText(e); - } - }; - SelectionListener selectionListener = new SelectionListener() { - public void widgetSelected(SelectionEvent e) { - doSelectionChanged(e); - } - - public void widgetDefaultSelected(SelectionEvent e) { - handleDefaultSelection(e); - } - }; - - if (toolkit != null) { - _comboControl = new StyleCombo(parent, _flags); - final FormColors colors = new FormColors(parent.getDisplay()); - parent.addPaintListener(new PaintListener() { - - public void paintControl(PaintEvent event) { - Composite composite = (Composite) event.widget; - Control[] children = composite.getChildren(); - for (int i = 0; i < children.length; i++) { - Control c = children[i]; - if (!(c instanceof StyleCombo) || !c.isVisible()) { - continue; - } - Rectangle b = c.getBounds(); - GC gc = event.gc; - gc.setForeground(colors.getBorderColor()); - gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1, - b.height + 1); - } - } - }); - - // when the parent is disposed, the colors should no - // no longer be needed. - parent.addDisposeListener(new DisposeListener() - { - public void widgetDisposed(DisposeEvent e) { - colors.dispose(); - } - } - ); - toolkit.adapt(_comboControl); - } else { - _comboControl = new StyleCombo(parent, _flags | SWT.BORDER); - _comboControl.setBackground(Display.getCurrent() - .getSystemColor(SWT.COLOR_LIST_BACKGROUND)); - } - - // moved up due to 1GEUNW2 - _comboControl.setItems(_items); - _comboControl.setDefaultValue(_defaultValue); - if (_selectionIndex != -1) { - _comboControl.select(_selectionIndex); - } else { - _comboControl.setText(_text); - } - _comboControl.setFont(parent.getFont()); - _comboControl.addModifyListener(_modifyListener); - _comboControl.addSelectionListener(selectionListener); - _comboControl.addFocusListener(new FocusAdapter() { - public void focusLost(FocusEvent e) { - doFocusLost(e); - } - }); - _comboControl.setEnabled(isEnabled()); - _comboControl.setToolTipText(getToolTip()); - } - return _comboControl; - } - - /** - * @param e - */ - protected void handleDefaultSelection(SelectionEvent e) { - // commit value - if (_pending) { - _pending = false; - dialogFieldApplied(); - } - } - - /** - * @param e - */ - protected void doFocusLost(FocusEvent e) { - if (_pending) { - _pending = false; - dialogFieldApplied(); - } - } - - private void doModifyText(ModifyEvent e) { - if (isOkToUse(_comboControl)) { - _text = getEntryKey(_comboControl.getText()); - _selectionIndex = _comboControl.getSelectionIndex(); - } - _pending = true; - dialogFieldChanged(); - } - - private void doSelectionChanged(SelectionEvent e) { - if (isOkToUse(_comboControl)) { - _items = _comboControl.getItems(); - _text = getEntryKey(_comboControl.getText()); - _selectionIndex = _comboControl.getSelectionIndex(); - } - _pending = false; - dialogFieldChangedAndApplied(); - } - - // ------ enable / disable management - - /* - * @see DialogField#updateEnableState - */ - protected void updateEnableState() { - super.updateEnableState(); - if (isOkToUse(_comboControl)) { - _comboControl.setEnabled(isEnabled()); - } - } - - // ------ text access - - /** - * Sets the combo items. Triggers a dialog-changed event. - * @param items - */ - public void setItems(String[] items) { - _items = items; - if (isOkToUse(_comboControl)) { - _comboControl.setItems(items); - } - _pending = false; - // dialogFieldChangedAndApplied(); - } - - /** - * @param map - */ - public void setEntryMap(Map map) { - this._entryMap = map; - if (_entryMap == null) { - _entryMap = new TreeMap(); - } - Entry[] entries = (Entry[]) _entryMap.entrySet().toArray(new Entry[0]); - String[] items = new String[entries.length]; - for (int i = 0; i < entries.length; i++) { - items[i] = entries[i].getValue().toString(); - } - setItems(items); - } - - /** - * Gets the text. - */ - public String getText() { - return _text; - } - - /** - * Sets the text. Triggers a dialog-changed event. - */ - public void setText(String text) { - setTextWithoutUpdate(text); - _pending = false; - dialogFieldChangedAndApplied(); - } - - /** - * Selects an item. - * @param index - */ - public void selectItem(int index) { - if (isOkToUse(_comboControl)) { - _comboControl.select(index); - } else { - if (index >= 0 && index < _items.length) { - _text = getEntryKey(_items[index]); - _selectionIndex = index; - } - } - dialogFieldChangedAndApplied(); - } - - /** - * @return the selection index - */ - public int getSelectionIndex() { - return _selectionIndex; - } - - /** - * Sets the text without triggering a dialog-changed event. - */ - public void setTextWithoutUpdate(String text) { - _pending = false; - if (text == null) { - text = "";//$NON-NLS-1$ - } - _text = text; - if (isOkToUse(_comboControl)) { - _comboControl.removeModifyListener(_modifyListener); - _comboControl.setText(getEntryValue(text)); - _comboControl.addModifyListener(_modifyListener); - } - } - - private String getEntryValue(String key) { - if (_entryMap == null || !_entryMap.containsKey(key)) { - return key; - } - return _entryMap.get(key).toString(); - } - - private String getEntryKey(String value) { - if (_entryMap == null || !_entryMap.containsValue(value)) { - return value; - } - - Entry[] entries = (Entry[]) _entryMap.entrySet().toArray(new Entry[0]); - for (int i = 0; i < entries.length; i++) { - if (entries[i].getValue() == value - || (value != null && value.equals(entries[i].getValue()))) { - return entries[i].getKey().toString(); - } - } - return value; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField#handleGrabHorizontal() - */ - public void handleGrabHorizontal() { - LayoutUtil.setGrabHorizontal(_comboControl, true); - } -} |