55 lines
1.4 KiB
Java
55 lines
1.4 KiB
Java
package com.minres.scviewer.e4.application.parts.txTableTree;
|
|
|
|
import java.util.regex.PatternSyntaxException;
|
|
|
|
import org.eclipse.jface.viewers.Viewer;
|
|
import org.eclipse.jface.viewers.ViewerFilter;
|
|
|
|
import com.minres.scviewer.database.ITxAttribute;
|
|
|
|
/**
|
|
* The Class TxAttributeFilter.
|
|
*/
|
|
public class TxAttributeFilter extends ViewerFilter {
|
|
|
|
/** The search string. */
|
|
private String searchString;
|
|
|
|
/**
|
|
* Sets the search text.
|
|
*
|
|
* @param s the new search text
|
|
*/
|
|
public void setSearchText(String s) {
|
|
this.searchString = ".*" + s + ".*"; //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
|
|
*/
|
|
@Override
|
|
public boolean select(Viewer viewer, Object parentElement, Object element) {
|
|
|
|
if (searchString == null || searchString.length() == 0) {
|
|
return true;
|
|
}
|
|
if(element instanceof TransactionTreeNode) {
|
|
return true;
|
|
}
|
|
if(element instanceof ITxAttribute){
|
|
try {
|
|
return (((ITxAttribute) element).getName().toLowerCase().matches(searchString.toLowerCase()));
|
|
} catch (PatternSyntaxException e) {
|
|
return true;
|
|
}
|
|
}
|
|
if(element instanceof Object[]) {
|
|
try {
|
|
return (((Object[])element)[0]).toString().toLowerCase().matches(searchString.toLowerCase());
|
|
} catch (PatternSyntaxException e) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
} |