扩展Visual Editor的控件和属性

http://tech.ddvip.com   2008年01月10日    社区交流

内容摘要:Visual Editor for Java 是基于 eclipse 的 GUI 可视化编辑插件,该插件以 Java 代码为中心,实现了所见即所得的用户界面编辑方式,广泛支持目前的 SWT、AWT、Swing 等控件包。本文通过一个完整的对 Visual Editor 的扩展示例,向读者展示扩展 Visual Editor 的控件和属性的方法。

  触发属性编辑器来编辑控件属性。

  将代码与属性编辑器相互同步。

  控件实现

  TextItem 是该控件的具体实现,读者可以参阅本文附件的源码,需要提及的是:

  TextItem 继承于 SWT 的 Composite 控件,在 Composite 中包括 Label 和 Text 两个 SWT 控件,Label 用以显示 Title,Text 用以用户输入。

  采用 TextItemModel 定义该控件的属性,该 Model 是一个 Java Bean,由 Title 和 Max Length 两个属性构成。抽象出一个模型类主要为了增加该控件的复杂度,并展示如何通过 Property Editor 编辑该模型类。设定 TextItemModel 的代码段:

  清单1:设置 TextItemModel

public void setModel(TextItemModel model){
    this.model = model;
    titleLabel.setText(model.getTitle());
    this.pack();
  }

  通过名为 beep 的布尔变量定义是否需要 beep 提醒。

  添加 Verify Listener 检测用户输入是否超出最大输入字符的限制,该部分代码如下:

  清单 2: 判断字符长度越界

contentText.addVerifyListener(new VerifyListener(){
    public void verifyText(VerifyEvent e) {
      String startStr = ((Text) e.widget).getText().substring(0, e.start);
      String endStr = ((Text) e.widget).getText().substring(e.end);
      String str = startStr + e.text + endStr;
      if ((model != null) && (str.length() > model.getMaxLength())) {
        e.doit = false;
        if (beep)
          Display.getCurrent().beep();
      }
    }
  });

来源:ibm    作者:王 浩    责编:豆豆技术应用

正在加载评论...