RCP--自定义DialogCellEditor可directEdit

 

自定义DialogCellEditor可directEdit

Eclipse的DialogCellEditor是由一个Label和一个Button组成的,不能直接进行编辑,必须通过弹出对话框才能编辑和输入,于是我通过继承DialogCellEditor实现自定义控件。

1、首先重载createContents

    @Override
    protected Control createContents(final Composite cell) {
        // return the control on an edit-request
        //this.label = new Label(cell, SWT.NONE);
     //this.setValue(""+12);
     this.text=new Text(cell,SWT.NONE);
     this.text.addFocusListener(new FocusListener(){

   public void focusGained(FocusEvent e) {
    // TODO Auto-generated method stub

   }

   public void focusLost(FocusEvent e) {
    // TODO Auto-generated method stub
    doSetValue(text.getText());
   }

     });
     this.text.addKeyListener(new KeyListener(){

   public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
    if(e.keyCode==13){
     doSetValue(text.getText());
    }
   }

   public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub

   }

     });
 
        return this.text;
    }
光重载它还不能实现DirectEdit

2、重载doSetFocus()

   @Override
 protected void doSetFocus() {
  // TODO Auto-generated method stub
  if(text!=null){
   text.selectAll();
   text.setFocus();
  }
 }

通过上面步骤可以实现既可以DirectEdit又可通过点击Button弹出对话框实现输入和编辑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值