最近eclipse plugin开发总结

对于combo来说,在添加的selectionListener的要取得当前选中的内容,不能使用SelectionEvent的text,而必须通过调用Combo的getText()方法来取得

对于IContentProvider的getElements方法一般直接调用getChildren方法

对于内部类来说,使用clazz.newInstance()会抛出异常,我碰到这种情况,感觉很奇怪

一个双击展开的监听器写法:

java 代码
  1. new IDoubleClickListener() {   
  2.  public void doubleClick(DoubleClickEvent event) {   
  3.   TreeSelection selection = (TreeSelection) event.getSelection();   
  4.   Object element = selection.getFirstElement();   
  5.   // If it is not OK or if double click does not   
  6.   // select then expand   
  7.   if (element instanceof File) {   
  8.    if (viewer.getExpandedState(element)) {   
  9.     viewer.collapseToLevel(element, 1);   
  10.    } else {   
  11.     viewer.expandToLevel(element, 1);   
  12.    }   
  13.   }else {   
  14.    result = (ModuleEntry) element;   
  15.    okPressed();   
  16.   }   
  17.   
  18.  }   
  19. };   
  20.   

 

对于dialog来说,在初始化的时候千万别调用具体的控件,因此控件都是在createContent创建的,初始化的时候createContent()还没有被调用,这时会抛出空指针的异常,正确的做法是复写create方法,然后在里面执行需要调用控件的语句,在点击ok按钮关闭dialog时同样也存在这样的情况,不能调用控件的方法,因此控件都已经被销毁了,正确的做法是复写okPress()方法,然后在里面把需要的数据取出来保存到对应的属性中,然后在ok完了之后,调用相应的get方法得到所需要的数据


使用SashForm的时候,默认情况下, 放在SashForm中的控件将平均分割整个SashForm,为了指定每个控件在SashForm中所占的比例,需要使用SashForm.setWeights(int[]);方法, 参数指定每一部分占整个SashForm的比例,还要注意的就是该方法要在所有控件创建完成之后调用,否则会报错

你可能感兴趣的:(eclipse)