csvwizard.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 88 行
JAVA
88 行
package net.sf.pim.contract.wizard;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
import net.sf.component.table.BindedTableViewer;
import net.sf.pim.UiUtil;
import net.sf.pim.contract.Contract;
import net.sf.util.StringUtil;
import org.eclipse.jface.wizard.Wizard;
/**
* 生成导入csv的向导
* @author Administrator
*/
public class CSVWizard extends Wizard {
private String fileName;
private Map<String,Integer> associations;
private boolean skipFirstLine;
//初始化
public void init(){
associations=new HashMap<String,Integer>();
setNeedsProgressMonitor(true);
}
@Override
public boolean performFinish() {
//将文件按行写入联系人的tableviewer
try {
BufferedReader br=new BufferedReader(new FileReader(fileName));
//跳过首行
br.readLine();
BindedTableViewer btv = UiUtil.getActiveTableEditor().getViewer();
for(String[] ss=StringUtil.toArray(br.readLine());ss.length !=0 ;ss=StringUtil.toArray(br.readLine())){
//一行失败,继续进行下一行,如数组越界之类
try{
Contract contract=new Contract();
for(String key:associations.keySet()){
if(associations.get(key) >0 )
contract.setProperty(key,ss[associations.get(key) -1]);
}
btv.getModel().addRow(contract);
}catch(Exception re){
re.printStackTrace();
}
}
btv.getModel().setDirty(true);
btv.refresh(false);
btv.getTable().setSelection(btv.getModel().getItemCount()-1);
btv.getTableCursor().setSelection(btv.getModel().getItemCount()-1, btv.getTableCursor().getColumn());
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
@Override
public void addPages() {
SelectFileWizardPage page1=new SelectFileWizardPage("");
MakeAssociationsWizardPage page2=new MakeAssociationsWizardPage("");
addPage(page1);
addPage(page2);
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public boolean isSkipFirstLine() {
return skipFirstLine;
}
public void setSkipFirstLine(boolean skipFirstLine) {
this.skipFirstLine = skipFirstLine;
}
public Map<String, Integer> getAssociations() {
return associations;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?