abstractcontentprovider.java

来自「eclipse开发笔记」· Java 代码 · 共 60 行

JAVA
60
字号
package rcpdev.contact.ui.common.provider;

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

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;

public abstract class AbstractContentProvider implements
		IStructuredContentProvider, PropertyChangeListener {

	protected Viewer viewer;

	protected Object input;

	public void dispose() {

	}

	public Viewer getViewer() {
		return viewer;
	}

	public void setViewer(Viewer viewer) {
		this.viewer = viewer;
	}

	public Object getInput() {
		return input;
	}

	public void setInput(Object input) {
		this.input = input;
	}

	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
		setViewer(viewer);
		setInput(newInput);
		if (oldInput != null && oldInput instanceof IAdaptable) {
			PropertyChangeSupport pcs = (PropertyChangeSupport) ((IAdaptable) oldInput)
					.getAdapter(PropertyChangeSupport.class);
			if (pcs != null)
				pcs.removePropertyChangeListener(this);
		}
		if (newInput != null && newInput instanceof IAdaptable) {
			PropertyChangeSupport pcs = (PropertyChangeSupport) ((IAdaptable) newInput)
					.getAdapter(PropertyChangeSupport.class);
			if (pcs != null)
				pcs.addPropertyChangeListener(this);
		}
	}

	public void propertyChange(PropertyChangeEvent evt) {
		getViewer().refresh();
	}

}

⌨️ 快捷键说明

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