论坛首页 Java企业应用论坛

SWT/Jface 启用Properties view :PropertySheet

浏览 2439 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-10  

1. Perspective添加Properties view:ID=org.eclipse.ui.views.PropertySheet;

2. 实现ISelectionProvider接口(Viewer,Editor已经实现);

3. 打开界面时可以先激活一下properties view:

      PlatformUI.getWorkbench().getActiveWorkbench().getActivePage().active(ID);

4. 如果一个面板有多个View时,切换属性显示是:

 // 切换展示属性的Viewer
  importVariableTreeViewer.getTree().addFocusListener(new FocusAdapter() {
     @Override
     public void focusGained(FocusEvent e) {
         if (getSite().getSelectionProvider()!=importVariableTreeViewer) {
              getSite().setSelectionProvider(importVariableTreeViewer);
             PlatformUI.getWorkbench().getActiveWorkbench().getView(ID).setFocus();
        }
     }
  });
  exportVariableTreeViewer.getTree().addFocusListener(new FocusAdapter() {
      @Override
      public void focusGained(FocusEvent e) {
          if (getSite().getSelectionProvider()!=exportVariableTreeViewer) {
              getSite().setSelectionProvider(exportVariableTreeViewer);
              PlatformUI.getWorkbench().getActiveWorkbench().getView(ID).setFocus();
          }
      }
  });

// 数据提供Po的实现有两种方式,一种是Po直接implements IPropertySource,另一种是Po implements IPropertySource;前者对序列化对象时会有一定的影响,而且耦合度高,推荐后者;

// 以下是后一种实现方式:

5. 点击时,所关联的Po应 implements IAdaptable,重写getAdapter(),如下:

    @Override
    public Object getAdapter(Class adapter) {
        if (IPropertySource.class == adapter) {
               return new PoPropertySource(this);
        }
        return null;
    }

6. PoPropertySource implements IPropertySource,主要实现方法:

    // 返回Descriptor

    @Override
    public IPropertyDescriptor[] getPropertyDescriptors() {
        if (!Utils.isEmpty(descriptors)) return descriptors.toArray(new IPropertyDescriptor[0]);
        descriptors.add(new PropertyDescriptor(P_CLASS_REF, P_CLASS_REF));
        return descriptors.toArray(new IPropertyDescriptor[0]);
    }

    // 返回数值

   @Override
     public Object getPropertyValue(Object id) {
         return value

     }
   如果有多级属性,将下级返回对象即可; 

   发表时间:2011-03-30  
写的非常笼统,不适合初学者
0 请登录后投票
   发表时间:2011-04-01  
谢谢,后面会改进
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics