📄 codegenwizard.java
字号:
package com.cownew.studio.modelDev.wizards;
import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.Set;
import org.dom4j.DocumentException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import com.cownew.studio.modelDev.codeGen.CodeGenException;
import com.cownew.studio.modelDev.codeGen.IEntityModelCodeGenerator;
import com.cownew.studio.modelDev.common.CommonUtils;
import com.cownew.studio.modelDev.common.EntityModelBean;
import com.cownew.studio.modelDev.common.EntityModelFileHandler;
import com.cownew.studio.modelDev.common.ModeValidateException;
import com.cownew.studio.modelDev.common.MsgBox;
public class CodeGenWizard extends Wizard
{
private IStructuredSelection structSelect;
private CodeGenOptionWizardPage codeGenOptionPage;
private IPackageFragmentRoot targetSrcFolder;
private boolean isOverrieExistsFile;
private IEntityModelCodeGenerator codeGen;
public CodeGenWizard(IStructuredSelection structSelect)
{
super();
this.structSelect = structSelect;
}
@Override
public void addPages()
{
super.addPages();
codeGenOptionPage = new CodeGenOptionWizardPage(
"Select new file container", structSelect);
addPage(codeGenOptionPage);
}
@Override
public boolean performFinish()
{
targetSrcFolder = codeGenOptionPage.getPackageFragmentRoot();
isOverrieExistsFile = codeGenOptionPage.isOverrideExistsFile();
codeGen = codeGenOptionPage.getCodeGenerator();
try
{
processFiles();
} catch (CoreException e)
{
CommonUtils.handleException(e);
return false;
} catch (InvocationTargetException e)
{
CommonUtils.handleException(e);
return false;
} catch (InterruptedException e)
{
CommonUtils.handleException(e);
return false;
}
codeGenOptionPage.saveConfig();
return true;
}
private void processFiles() throws CoreException,
InvocationTargetException, InterruptedException
{
final Set<IFile> allFiles = CommonUtils
.getAllFiles(structSelect, "emf");
IRunnableWithProgress op = new IRunnableWithProgress() {
public void run(IProgressMonitor monitor)
throws InvocationTargetException
{
try
{
doFinish(allFiles, monitor);
} catch (DocumentException e)
{
CommonUtils.handleExceptionAndAbort(e);
} catch (CodeGenException e)
{
CommonUtils.handleExceptionAndAbort(e);
} finally
{
monitor.done();
}
}
};
getContainer().run(true, true, op);
}
protected void doFinish(Set<IFile> allFiles, IProgressMonitor monitor)
throws CodeGenException, DocumentException
{
monitor.beginTask("generate code", allFiles.size());
codeGen.setIsOverrieExistsFile(isOverrieExistsFile);
codeGen.setTargetSourceFolder(targetSrcFolder);
Iterator<IFile> iterator = allFiles.iterator();
int i = 0;
while (iterator.hasNext())
{
IFile file = iterator.next();
EntityModelBean bean = EntityModelFileHandler.xmlToBean(file);
try
{
codeGen.generateCode(bean);
} catch (ModeValidateException e)
{
MsgBox.showError(getShell(), e.getMessage());
return;
}
monitor.worked(++i);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -