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

📄 categorycontentprovider.java

📁 eclipse开发笔记
💻 JAVA
字号:
package rcpdev.contact.ui.editors.contact.category;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;

import rcpdev.contact.ui.editors.contact.category.CategoryBean.CategoryItem;

public class CategoryContentProvider implements IStructuredContentProvider,
		PropertyChangeListener, ICheckStateListener {

	private CheckboxTableViewer viewer;

	public Object[] getElements(Object inputElement) {
		if (inputElement instanceof CategoryBean) {
			CategoryBean bean = (CategoryBean) inputElement;
			return bean.getCategories().toArray();
		}
		return null;
	}

	public void dispose() {

	}

	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
		if (viewer instanceof CheckboxTableViewer) {
			this.viewer = ((CheckboxTableViewer) viewer);
			this.viewer.addCheckStateListener(this);
		}
		if (oldInput != null && oldInput instanceof CategoryBean)
			((CategoryBean) oldInput).removePropertyChangeListener(this);
		if (newInput != null && newInput instanceof CategoryBean)
			((CategoryBean) newInput).addPropertyChangeListener(this);
	}

	/**
	 * Change table according to the model change.
	 */
	public void propertyChange(PropertyChangeEvent evt) {
		if (CategoryBean.CHECK_ITEM.equals(evt.getPropertyName())) {
			Object item = evt.getSource();
			viewer.setChecked(item, (Boolean) evt.getNewValue());
		}
		if (CategoryBean.ADD_ITEM.equals(evt.getPropertyName())) {
			CategoryItem item = (CategoryItem) evt.getNewValue();
			viewer.add(item);
			viewer.setChecked(item, item.isSelected());
		}
		if (CategoryBean.REMOVE_ITEM.equals(evt.getPropertyName())) {
			viewer.remove(evt.getOldValue());
		}

	}

	/**
	 * Change model according to the table change.
	 */
	public void checkStateChanged(CheckStateChangedEvent event) {
		((CategoryItem) event.getElement()).setSelected(event.getChecked());
	}

}

⌨️ 快捷键说明

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