新建一个java类文件对话框

IJavaProject jproject  = JavaCore.create(project);
try {
  IType type = jproject.findType(object.getClassName());
  if (type!=null)  {
     JavaUI.openInEditor(type); //支持打开源文件和类文件
  } else {
     NewClassWizardPage page = new NewClassWizardPage();
     page.init(new StructuredSelection(project));           

     // 其中clsName是要新建的java文件的全名(包名+类名)

     String clsName = object.getClassName();
     if (clsName.length() > 0) {
        JavaProject jProject = (JavaProject) JavaCore.create(project.getProject());             

        // 获取源代码路径
        String srcPath = project.getProject().getFullPath().toOSString() + "//src";
        IPackageFragmentRoot root = jProject.findPackageFragmentRoot(Path.fromOSString(srcPath));

        // 设置包路径
        if (clsName.lastIndexOf(".") > 0) {
           String pkgName = clsName.substring(0, clsName.lastIndexOf("."));
           page.setPackageFragment(root.getPackageFragment(pkgName), true);
        }

        // 设置文件名

        page.setTypeName(clsName.substring(clsName.lastIndexOf('.') + 1), true);
     }
     NewClassCreationWizard createJavaWizard = new NewClassCreationWizard(page, true);
     createJavaWizard.init(PlatformUI.getWorkbench(), new StructuredSelection(project));  

     WizardDialog dialog = new WizardDialog(getSite().getShell(), createJavaWizard);
     if (dialog.open() == WizardDialog.OK) {
        object.setClassName(((IType) createJavaWizard.getCreatedElement()).getFullyQualifiedName());
     }
  }

} catch (JavaModelException e1) {
   e1.printStackTrace();
} catch (PartInitException e2) {
   e2.printStackTrace();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值