📄 search3action.java
字号:
/*
* Created on 2003-4-10
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package net.sf.pim.contract.search;
import java.util.List;
import net.sf.component.table.BindedTableViewer;
import net.sf.pim.UiUtil;
import net.sf.pim.action.UiAction;
import net.sf.pim.contract.Contract;
import net.sf.util.StringUtil;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.widgets.Display;
/**
* 查找联系人
* @author lzhang
*/
public class Search3Action extends UiAction {
public Search3Action() {
super();
name = "查找...";
gif = "search3.gif";
}
public void run() {
if (UiUtil.getActiveTableEditor().getName().equals("联系人")) {
parent=UiUtil.getInstance();
parent.checkSave();
final InputDialog input=new InputDialog(parent.getTv().getControl().getShell(),"搜索联系人","请输入关键词","",null);
if(input.open() == Dialog.OK ){
resetResult();
if(StringUtil.isNotNull(input.getValue())){
final String key=input.getValue();
BusyIndicator.showWhile(parent.getTv().getControl().getShell().getDisplay(), new Runnable() {
public void run(){
showResult(key);
}
});
}
}
}
}
private void showResult(final String key) {
BindedTableViewer btv = UiUtil.getActiveTableEditor().getViewer();
//开始过滤集合,搜中设前景色
List rows = btv.getModel().getRows();
int first=-1,count=0;
for(int i=0;i<rows.size();i++){
Contract o=(Contract) rows.get(i);
if(o.toString().indexOf(key) != -1){
if(first == -1)first=i; //记住第一个
count++;
o.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
}
}
btv.refresh(true);
if(first != -1)
btv.getTable().setSelection(first);
UiUtil.setStatus("联系人 共"+rows.size()+"人 搜中"+count+"人");
}
private void resetResult() {
BindedTableViewer btv = UiUtil.getActiveTableEditor().getViewer();
List rows = btv.getModel().getRows();
//清除底色
boolean update=false;
for(Object o:rows){
Contract c=(Contract) o;
if(c.getForeground(c)!= null){
if(!update)update=true;
c.setForeground(null);
}
}
if(update)
btv.refresh(true);
UiUtil.setStatus("联系人 共"+rows.size()+"人");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -