usertreecontentprovider.java
来自「eclipse开发笔记」· Java 代码 · 共 57 行
JAVA
57 行
package book.ch7.tree;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Vector;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
public class UserTreeContentProvider implements ITreeContentProvider,
PropertyChangeListener {
public Object[] getChildren(Object parentElement) {
return ((User) parentElement).getUnderlings().toArray();
}
public Object getParent(Object element) {
return ((User) element).getManager();
}
public boolean hasChildren(Object element) {
Vector underlings = ((User) element).getUnderlings();
return !(underlings == null || underlings.size() == 0);
}
public Object[] getElements(Object inputElement) {
if (inputElement instanceof UserStructure)
return new Object[] { ((UserStructure) inputElement).getPresident() };
return new Object[0];
}
private TreeViewer viewer;
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
this.viewer = (TreeViewer) viewer;
if (oldInput != null)
((UserStructure) oldInput).removePropertyChangeListener(this);
if (newInput != null)
((UserStructure) newInput).addPropertyChangeListener(this);
}
public void propertyChange(PropertyChangeEvent evt) {
if (UserStructure.ADD_USER.equals(evt.getPropertyName())) {
Object[] values = (Object[])evt.getNewValue();
viewer.add(values[0], values[1]);
}
if (UserStructure.REMOVE_USER.equals(evt.getPropertyName())) {
viewer.remove(evt.getNewValue());
}
}
public void dispose() {
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?