扩展NewWizard来定制自己的New方法

目标:在File->New->project后想添加一下自己的事情,比如在新建的工程文件夹下创建一个新的文件夹。

方法:扩展NewWizard,在performfinish方法里做一些事情。

具体步骤:

1,创建对应new按钮的Action类NewAction,仿照NewWizardAction类,完全拷过来,可能需要完成两个个性化工作:

(1),在构造函数中设置显示的文本和图片(默认显示“Other”)

(2),在run方法里面把NewWizard改为MynewWazard,这个类稍后介绍。

2,在你自己的扩展了ActionBarAdvisor类的MyActionBarAdvisor类方法里面创建1中NewAction类对象,然后在MyActionBarAdvisor的makeActions方法里面注册这个Action对象,方法:

newAction  =   new  NewAction(window);
newAction.setId(STR_ID);
register(newAction);

3,创建MyNewWizard类。

由于我们只是要在创建完项目后坐一些事情,所以我们在proformfinish方法里面做就可以了。

public   class  MyNewWizard  extends  NewWizard {
 
public   boolean  performFinish() {

  
if ((getStartingPage().getNextPage().getTitle()).equals( " Project " )){
   WizardNewProjectCreationPage npp 
=  (WizardNewProjectCreationPage)getStartingPage().getNextPage();
   String filePath
=   null ;
   
   
if ( npp.useDefaults()){
    filePath 
=  npp.getLocationPath().toString()  +   " / "   +  npp.getProjectName() +   " / " ;
   }
   
else {
    filePath 
=  npp.getLocationPath().toString()  +   " / " ;
   }

   file 
=   new  File(filePath  +   " Report " ); // 创建一个report目录
   file.mkdirs();
  }

  
return   super .performFinish();
 }

}

首先我们想知道在第一步新建中我们选择的是新建file,folder还是project。我们用getStartingPage().getNextPage().getTitle()来判断,这里getStartingPage()返回的是第一个page也就是selectionpage,getStartingPage().getNextPage()返回什么是根据我们第一步的选择而不同的,假设我们第一步选择创建工程,这一步返回的是WizardNewProjectCreationPage,我们就可以根据这个对象得到工程名字,路径,是否使用了默认路径等信息。

需要说明一点,如果我们想在创建file或folder后做点事情,那么只要判断getStartingPage().getNextPage().getTitle()是file或者folder就可以了,然后根据getStartingPage().getNextPage()返回的不同对象做一些事情。

转载于:https://www.cnblogs.com/Aimd/archive/2006/05/15/400749.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值