/**
* Դ�������ƣ�ColumnViewerPatternFilter.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.ui
* ����˵����JRES Studio�Ľ���չ�ֻ�����ܺͱ༭��ع���
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.ui.editor.viewers;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.dialogs.PatternFilter;
/**
* @author gongyf
*
*/
public class ColumnViewerPatternFilter extends PatternFilter {
public ColumnViewerPatternFilter(){
//TASK #9491 ���б��ɸѡ���У�Ĭ��֧��ͨ���*
setIncludeLeadingWildcard(true);
}
protected boolean isLeafMatch(Viewer viewer, Object element){
int columnCount = 0;
Control control = viewer.getControl();
if (control instanceof Tree) {
columnCount = ((Tree) control).getColumnCount();
} else if (control instanceof Table) {
columnCount = ((Table) control).getColumnCount();
}
for (int i = 0; i < columnCount; i++) {
CellLabelProvider labelProvider = ((ColumnViewer) viewer).getLabelProvider(i);
if (labelProvider != null && labelProvider instanceof ColumnLabelProvider) {
if (wordMatches( ((ColumnLabelProvider)labelProvider).getText(element))) {
return true;
}
}
}
return false;
}
}