select是根据Viewer的input数据来进行筛选的,并且会循环的获取每个元素的子节点。但是一个陷阱在于:如果筛选的时候父节点被筛选掉了(返回值为false),则子节点就不会再被筛选了。因此,有时候为了正确的进行筛选,必须对父节点进行递归调用,看是否子节点中有可以显示的项。如果子节点可被显示,则父节点也应被显示(返回true值),否则返回false。
不过这里我有两点担心:1.当父节点底下确实没有符合的数据时这样做时间花费是值得的。
2.但是,如果父节点下子节点有部分数据符合,那么对子节点过滤时时是否会与原来的父节点中已经进行的操作进行了重复操作,造成性能上的损失和不必要?
对于第二点,没有读过Eclipse对应的这部分源代码,有时间要看一下。
不过这里我有两点担心:1.当父节点底下确实没有符合的数据时这样做时间花费是值得的。
2.但是,如果父节点下子节点有部分数据符合,那么对子节点过滤时时是否会与原来的父节点中已经进行的操作进行了重复操作,造成性能上的损失和不必要?
对于第二点,没有读过Eclipse对应的这部分源代码,有时间要看一下。