⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorfieldeditor.java

📁 jfa2ce 源码帮助开发人员更好的理解运用
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation 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: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.jface.preference;import org.eclipse.jface.dialogs.IDialogConstants;import org.eclipse.jface.resource.JFaceResources;import org.eclipse.jface.util.IPropertyChangeListener;import org.eclipse.jface.util.PropertyChangeEvent;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Font;import org.eclipse.swt.graphics.GC;import org.eclipse.swt.graphics.Point;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.widgets.Button;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Control;/** * A field editor for a color type preference. */public class ColorFieldEditor extends FieldEditor {	/**	 * The color selector, or <code>null</code> if none.	 */	private ColorSelector colorSelector;	/**	 * Creates a new color field editor	 */	protected ColorFieldEditor() {		//No default behavior	}	/**	 * Creates a color field editor.	 * 	 * @param name	 *            the name of the preference this field editor works on	 * @param labelText	 *            the label text of the field editor	 * @param parent	 *            the parent of the field editor's control	 */	public ColorFieldEditor(String name, String labelText, Composite parent) {		super(name, labelText, parent);	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	protected void adjustForNumColumns(int numColumns) {		((GridData) colorSelector.getButton().getLayoutData()).horizontalSpan = numColumns - 1;	}	/**	 * Computes the size of the color image displayed on the button.	 * <p>	 * This is an internal method and should not be called by clients.	 * </p>	 * 	 * @param window	 *            the window to create a GC on for calculation.	 * @return Point The image size	 *  	 */	protected Point computeImageSize(Control window) {		// Make the image height as high as a corresponding character. This		// makes sure that the button has the same size as a "normal" text		// button.		GC gc = new GC(window);		Font f = JFaceResources.getFontRegistry().get(				JFaceResources.DEFAULT_FONT);		gc.setFont(f);		int height = gc.getFontMetrics().getHeight();		gc.dispose();		Point p = new Point(height * 3 - 6, height);		return p;	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	protected void doFillIntoGrid(Composite parent, int numColumns) {		Control control = getLabelControl(parent);		GridData gd = new GridData();		gd.horizontalSpan = numColumns - 1;		control.setLayoutData(gd);		Button colorButton = getChangeControl(parent);		gd = new GridData();		int widthHint = convertHorizontalDLUsToPixels(colorButton,				IDialogConstants.BUTTON_WIDTH);		gd.widthHint = Math.max(widthHint, colorButton.computeSize(SWT.DEFAULT,				SWT.DEFAULT, true).x);		colorButton.setLayoutData(gd);	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	protected void doLoad() {		if (colorSelector == null) {			return;		}		colorSelector.setColorValue(PreferenceConverter.getColor(				getPreferenceStore(), getPreferenceName()));	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	protected void doLoadDefault() {		if (colorSelector == null) {			return;		}		colorSelector.setColorValue(PreferenceConverter.getDefaultColor(				getPreferenceStore(), getPreferenceName()));	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	protected void doStore() {		PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),				colorSelector.getColorValue());	}	/**	 * Get the color selector used by the receiver.	 * 	 * @return ColorSelector/	 */	public ColorSelector getColorSelector() {		return colorSelector;	}	/**	 * Returns the change button for this field editor.	 * 	 * @param parent	 *            The control to create the button in if required.	 * @return the change button	 */	protected Button getChangeControl(Composite parent) {		if (colorSelector == null) {			colorSelector = new ColorSelector(parent);			colorSelector.addListener(new IPropertyChangeListener() {				// forward the property change of the color selector				public void propertyChange(PropertyChangeEvent event) {					ColorFieldEditor.this.fireValueChanged(event.getProperty(),							event.getOldValue(), event.getNewValue());					setPresentsDefaultValue(false);				}			});		} else {			checkParent(colorSelector.getButton(), parent);		}		return colorSelector.getButton();	}	/*	 * (non-Javadoc) Method declared on FieldEditor.	 */	public int getNumberOfControls() {		return 2;	}	/*	 * (non-Javadoc)	 * 	 * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean,	 *      org.eclipse.swt.widgets.Composite)	 */	public void setEnabled(boolean enabled, Composite parent) {		super.setEnabled(enabled, parent);		getChangeControl(parent).setEnabled(enabled);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -