SWT/Jface 启用Properties view :PropertySheet

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

}
如果有多级属性,将下级返回对象即可;
[url]http://www.imilo.cn/[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值