combofactory.java

来自「利用 java SWT 实现MVC功能」· Java 代码 · 共 70 行

JAVA
70
字号
package ExampleViewer.common;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;

import ExampleViewer.form.FieldMode;



/**
 * @author 
 *
 * 
 */
public class ComboFactory {
	/**
	 * @param parent
	 * @param mode
	 * @param layoutData	
	 */
	static public Control create(Composite 	parent, 
								int 		style,
								boolean 	bAllowValuesNotInList,
								Object 		layoutData) {
		boolean	bReadOnly = ((style & SWT.READ_ONLY) != 0 ? true : false);

		if (!bReadOnly) {
			if (bAllowValuesNotInList)
				style &= ~SWT.READ_ONLY;
			else
				style |= SWT.READ_ONLY;
				
			Combo	combo = new Combo(parent, style);
			if (bReadOnly)
				combo.setBackground(parent.getBackground());
			combo.setEnabled(!bReadOnly);
			
			if (layoutData != null) combo.setLayoutData(layoutData);
			return combo;
		} else {			
			return TextFactory.create(parent, style, layoutData,FieldMode.Read);
		}
	}

	/**
	 * @param values
	 */
	public static void setItems(Control control, String[] values) {
		if (control instanceof Combo) {
			Combo	combo = (Combo )control;
			combo.setItems(values);

			
		}
	}
		
	public static void selectItem(Control control, String value) {
		if (control instanceof Combo) {
			Combo combo = (Combo )control;
			int	  index = combo.indexOf(value);
				
			if (index >= 0) {
				combo.select(index);
			}
		} 
	}
}

⌨️ 快捷键说明

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